v_sdirx: xv_sdirx.c File Reference

| v_sdirx Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Functions
xv_sdirx.c File Reference

## Overview

This is the main file for Xilinx SDI RX core.

Please see xv_sdirx.h for more details of the driver.

      MODIFICATION HISTORY:

#

      Ver   Who        Date         Changes

      1.0   jsr    07/17/17 Initial release.

    vve    10/03/18 Add support for ST352 in C-Stream

## Functions
int | XV_SdiRx_CfgInitialize (XV_SdiRx *InstancePtr, XV_SdiRx_Config *CfgPtr, UINTPTR EffectiveAddr)
| This function initializes the SDI RX core. More...
void | XV_SdiRx_ResetStream (XV_SdiRx *InstancePtr)
| This function clears the SDI RX stream variables and sets them to the defaults. More...
void | XV_SdiRx_DebugInfo (XV_SdiRx *InstancePtr, XV_SdiRx_DebugSelId SelId)
| This function prints debug information of Stream 0 on STDIO/Uart console. More...
int | XV_SdiRx_Stop (XV_SdiRx *InstancePtr)
| This function stops SDI RX core's modes detection. More...
void | XV_SdiRx_FramerEnable (XV_SdiRx *InstancePtr)
| This function enables the framer function. More...
void | XV_SdiRx_FramerDisable (XV_SdiRx *InstancePtr)
| This function disables the framer function. More...
void | XV_SdiRx_Start (XV_SdiRx *InstancePtr, XV_SdiRx_SearchMode Mode)
| This function enables SDI RX core's modes detection function. More...
u32 | XV_SdiRx_ReportDetectedError (XV_SdiRx *InstancePtr)
| This function reports detected CRC or EDH errors count. More...
void | XV_SdiRx_SetYCbCr444_RGB_10bit (XV_SdiRx *InstancePtr)
| This function enables 10bit YUV444 and RGB color format support for SDI Rx. More...
void | XV_SdiRx_ClearYCbCr444_RGB_10bit (XV_SdiRx *InstancePtr)
| This function disables 10bit YUV444 and RGB color format support for SDI Rx. More...
void | XV_SdiRx_VidBridgeEnable (XV_SdiRx *InstancePtr)
| This function enables the video bridge. More...
void | XV_SdiRx_VidBridgeDisable (XV_SdiRx *InstancePtr)
| This function disables the video bridge. More...
void | XV_SdiRx_Axi4sBridgeEnable (XV_SdiRx *InstancePtr)
| This function enable the AXI4S Bridge. More...
void | XV_SdiRx_Axi4sBridgeDisable (XV_SdiRx *InstancePtr)
| This function disables the AXI4S Bridge. More...
u32 | XV_SdiRx_GetPayloadId (XV_SdiRx *InstancePtr, u8 DataStream)
| This function returns incoming stream's incoming SDI payload ID. More...
u32 | XV_SdiRx_WaitforPayLoad (XV_SdiRx *InstancePtr)
| This function is used to wait for the payload valid bit to be set. More...
u32 | XV_SdiRx_GetSdiMode (XV_SdiRx *InstancePtr)
| This function returns the current SDI transport mode detected. More...
void | XV_SdiRx_SetVidLckWindow (XV_SdiRx *InstancePtr, u32 Data)
| This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered. More...
void | XV_SdiRx_SetEdhErrCntTrigger (XV_SdiRx *InstancePtr, u32 Enable)
| This function sets the type of EDH errors which will trigger the error count. More...
void | XV_SdiRx_EnableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes SupportModes)
| This function enables the modes which the SDI RX core will try to lock on. More...
void | XV_SdiRx_DisableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes RemoveModes)
| This function disables the modes which the SDI RX core will try to lock on. More...

## Function Documentation

void XV_SdiRx_Axi4sBridgeDisable | ( | XV_SdiRx * | InstancePtr | ) |

This function disables the AXI4S Bridge.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

void XV_SdiRx_Axi4sBridgeEnable | ( | XV_SdiRx * | InstancePtr | ) |

This function enable the AXI4S Bridge.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

int XV_SdiRx_CfgInitialize | ( | XV_SdiRx * | InstancePtr,
|  | XV_SdiRx_Config * | CfgPtr,
|  | UINTPTR | EffectiveAddr
| ) |  |

This function initializes the SDI RX core.

This function must be called prior to using the SDI RX core. Initialization of the SDI RX includes setting up the instance data, and ensuring the hardware is in a quiescent state.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  CfgPtr | points to the configuration structure associated with the SDI RX core.
  EffectiveAddr | is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.

Returns
  - XST_SUCCESS if XV_SdiRx_CfgInitialize was successful.
  - XST_FAILURE if XV_SdiRx_CfgInitialize was unsuccessful.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx::IsReady, XV_SdiRx::OverFlowCallback, XV_SdiRx::StreamDownCallback, XV_SdiRx::StreamUpCallback, XV_SdiRx::UnderFlowCallback, XV_SdiRx_EnableMode(), XV_SdiRx_FramerEnable(), XV_SdiRx_IntrDisable(), XV_SdiRx_ResetStream(), XV_SdiRx_SetEdhErrCntTrigger(), XV_SdiRx_SetVidLckWindow(), XV_SdiRx_Start(), XV_SdiRx_Stop(), and XV_SdiRx_WriteReg.

Referenced by XV_SdiRxSelfTestExample().

void XV_SdiRx_ClearYCbCr444_RGB_10bit | ( | XV_SdiRx * | InstancePtr | ) |

This function disables 10bit YUV444 and RGB color format support for SDI Rx.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

void XV_SdiRx_DebugInfo | ( | XV_SdiRx * | InstancePtr,
|  | XV_SdiRx_DebugSelId | SelId
| ) |  |

This function prints debug information of Stream 0 on STDIO/Uart console.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  SelId | specifies which debug information to be printed out

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx::Stream, XV_SdiRx_Stream::Video, and XV_SdiRx_ReadReg.

void XV_SdiRx_DisableMode | ( | XV_SdiRx * | InstancePtr,
|  | XV_SdiRx_SupportedModes | RemoveModes
| ) |  |

This function disables the modes which the SDI RX core will try to lock on.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  RemoveModes | specifies which SDI mode is to be removed from SDI mode detection logic.

Returns
  None.

Note
  None.

void XV_SdiRx_EnableMode | ( | XV_SdiRx * | InstancePtr,
|  | XV_SdiRx_SupportedModes | SupportModes
| ) |  |

This function enables the modes which the SDI RX core will try to lock on.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  SupportModes | specifies which SDI mode is to be supported from SDI mode detection logic.

Returns
  None.

Note
  XV_SDIRX_MULTISEARCHMODE must be selected in the XV_SdiRx_Start function.

References XV_SdiRx::Config, XV_SDIRX_SUPPORT_12GF, XV_SDIRX_SUPPORT_12GI, and XV_SDIRX_SUPPORT_6G.

Referenced by XV_SdiRx_CfgInitialize().

void XV_SdiRx_FramerDisable | ( | XV_SdiRx * | InstancePtr | ) |

This function disables the framer function.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

void XV_SdiRx_FramerEnable | ( | XV_SdiRx * | InstancePtr | ) |

This function enables the framer function.

When enabled, the framer automatically readjusts the output word alignment to match the alignment of each timing reference signal (TRS).

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

Referenced by XV_SdiRx_CfgInitialize().

u32 XV_SdiRx_GetPayloadId | ( | XV_SdiRx * | InstancePtr,
|  | u8 | DataStream
| ) |  |

This function returns incoming stream's incoming SDI payload ID.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  DataStream | specifies which payload ID is to be returned.

Returns
  SDI payload ID

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

Referenced by XV_SdiRx_WaitforPayLoad().

u32 XV_SdiRx_GetSdiMode | ( | XV_SdiRx * | InstancePtr | ) |

This function returns the current SDI transport mode detected.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  SDI transport mode

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

Referenced by XV_SdiRx_ReportDetectedError().

u32 XV_SdiRx_ReportDetectedError | ( | XV_SdiRx * | InstancePtr | ) |

This function reports detected CRC or EDH errors count.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  CRC/EDH Error count

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_GetSdiMode(), and XV_SdiRx_ReadReg.

void XV_SdiRx_ResetStream | ( | XV_SdiRx * | InstancePtr | ) |

This function clears the SDI RX stream variables and sets them to the defaults.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  This is required after a reset or init.

References XV_SdiRx_Stream::CAssignment, XV_SdiRx::Stream, and XV_SdiRx_Stream::Video.

Referenced by XV_SdiRx_CfgInitialize().

void XV_SdiRx_SetEdhErrCntTrigger | ( | XV_SdiRx * | InstancePtr,
|  | u32 | Enable
| ) |  |

This function sets the type of EDH errors which will trigger the error count.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  Enable | specifies the type of EDH errors to be allowed to increment the error counter. Bit 0 = ANC EDH error Bit 1 = ANC EDA error Bit 2 = ANC IDH error Bit 3 = ANC IDA error Bit 4 = ANC UES error Bit 5 = FF EDH error Bit 6 = FF EDA error Bit 7 = FF IDH error Bit 8 = FF IDA error Bit 9 = FF UES error Bit 10 = AP EDH error Bit 11 = AP EDA error Bit 12 = AP IDH error Bit 13 = AP IDA error Bit 14 = AP UES error Bit 15 = EDH packet checksum-error

Returns
  None.

Note
  None.

References XV_SdiRx_WriteReg.

Referenced by XV_SdiRx_CfgInitialize().

void XV_SdiRx_SetVidLckWindow | ( | XV_SdiRx * | InstancePtr,
|  | u32 | Data
| ) |  |

This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  Data | specifies the clock period.

Returns
  None.

Note
  None.

References XV_SdiRx_WriteReg.

Referenced by XV_SdiRx_CfgInitialize().

void XV_SdiRx_SetYCbCr444_RGB_10bit | ( | XV_SdiRx * | InstancePtr | ) |

This function enables 10bit YUV444 and RGB color format support for SDI Rx.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

void XV_SdiRx_Start | ( | XV_SdiRx * | InstancePtr,
|  | XV_SdiRx_SearchMode | Mode
| ) |  |

This function enables SDI RX core's modes detection function.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.
  Mode | specifies the mode of SDI modes searching operation. 0 = XV_SDIRX_SINGLESEARCHMODE_HD 1 = XV_SDIRX_SINGLESEARCHMODE_SD 2 = XV_SDIRX_SINGLESEARCHMODE_3G 4 = XV_SDIRX_SINGLESEARCHMODE_6G 5 = XV_SDIRX_SINGLESEARCHMODE_12GI 6 = XV_SDIRX_SINGLESEARCHMODE_12GF 10 = XV_SDIRX_MULTISEARCHMODE where the supported modes will be enabled by XV_SdiRx_EnableMode function

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

Referenced by XV_SdiRx_CfgInitialize().

int XV_SdiRx_Stop | ( | XV_SdiRx * | InstancePtr | ) |

This function stops SDI RX core's modes detection.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  - XST_SUCCESS if SDI Rx stop is successful.
  - XST_FAILURE if SDI Rx stop is unsuccessful

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

Referenced by XV_SdiRx_CfgInitialize(), and XV_SdiRx_SelfTest().

void XV_SdiRx_VidBridgeDisable | ( | XV_SdiRx * | InstancePtr | ) |

This function disables the video bridge.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

void XV_SdiRx_VidBridgeEnable | ( | XV_SdiRx * | InstancePtr | ) |

This function enables the video bridge.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  None.

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_ReadReg, and XV_SdiRx_WriteReg.

u32 XV_SdiRx_WaitforPayLoad | ( | XV_SdiRx * | InstancePtr | ) |

This function is used to wait for the payload valid bit to be set.

This has to be called from application based on the callback indication of the video lock interrupt handler. Without this function being called, it may be guaranteed that payload bits are valid after video lock interrupt occured.

Parameters

  InstancePtr | is a pointer to the XV_SdiRx core instance.

Returns
  - XST_FAILURE if the payload valid bits are not set.
  - XST_SUCCESS if ST352 registers are read and loaded to Rx structures

Note
  None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx::Stream, XV_SdiRx_GetPayloadId(), and XV_SdiRx_ReadReg.