This module contains APIs to program and use the FSI RX module.
Files | |
file | fsi_rx.h |
Header file containing various enumerations, structure definitions and function declarations for the FSI RX IP. | |
Functions | |
int32_t | FSI_enableRxInternalLoopback (uint32_t base) |
This API enables internal loopback where mux will select internal pins coming from RX module instead of what comes from pins. More... | |
int32_t | FSI_disableRxInternalLoopback (uint32_t base) |
This API disables internal loopback where mux will not use internal pins coming from RX module. More... | |
int32_t | FSI_enableRxSPIPairing (uint32_t base) |
This API enables SPI clock paring, receive clock is selected from the internal port coming from RX module. More... | |
int32_t | FSI_disableRxSPIPairing (uint32_t base) |
This API disables SPI clock paring, selects regular receive clock coming from the pins. More... | |
int32_t | FSI_setRxDataWidth (uint32_t base, FSI_DataWidth dataWidth) |
This API selects number of data lines used for receiving. More... | |
int32_t | FSI_enableRxSPIMode (uint32_t base) |
This API enables SPI compatible mode in FSI RX. More... | |
int32_t | FSI_disableRxSPIMode (uint32_t base) |
This API disables SPI compatible mode in FSI RX. More... | |
int32_t | FSI_setRxSoftwareFrameSize (uint32_t base, uint16_t nWords) |
This API sets the RX frame size if frame type is user/software defined frame. More... | |
int32_t | FSI_setRxECCComputeWidth (uint32_t base, FSI_ECCComputeWidth eccComputeWidth) |
This API select between 16-bit and 32-bit ECC computation for FSI RX. More... | |
int32_t | FSI_setRxPingTimeoutMode (uint32_t base, FSI_PingTimeoutMode pingTimeoutMode) |
This API sets HW/SW initiated RX ping timeout mode. More... | |
int32_t | FSI_getRxFrameType (uint32_t base, FSI_FrameType *pFrameType) |
This API gets frame type received in the last successful frame. More... | |
int32_t | FSI_getRxFrameTag (uint32_t base, uint16_t *pFrameTag) |
This API gets frame tag received for the last successful frame. More... | |
int32_t | FSI_getRxUserDefinedData (uint32_t base, uint16_t *pUserData) |
This API gets User-Data (8-bit) field for received data frame. More... | |
int32_t | FSI_getRxEventStatus (uint32_t base, uint16_t *pEvtFlags) |
This API gets current status of all the event/error flags. More... | |
int32_t | FSI_forceRxEvents (uint32_t base, uint16_t evtFlags) |
This API enables user to set RX event/error flags. More... | |
int32_t | FSI_clearRxEvents (uint32_t base, uint16_t evtFlags) |
This API enables user to clear RX event/error flags. More... | |
int32_t | FSI_getRxReceivedCRC (uint32_t base, uint16_t *pCrcVal) |
This API gets CRC value received in data frame/frame. More... | |
int32_t | FSI_getRxComputedCRC (uint32_t base, uint16_t *pCrcVal) |
This API gets CRC value computed for data received. More... | |
int32_t | FSI_setRxBufferPtr (uint32_t base, uint16_t bufPtrOff) |
This API sets the value for receive buffer pointer at desired location. More... | |
int32_t | FSI_getRxBufferPtr (uint32_t base, uint16_t *pBufPtrLoc) |
This API gets current buffer pointer location. More... | |
int32_t | FSI_getRxWordCount (uint32_t base, uint16_t *pWordCnt) |
This API gets valid number of data words present in buffer which have not been read out yet. More... | |
int32_t | FSI_enableRxFrameWatchdog (uint32_t base, uint32_t wdRef) |
This API enables the frame watchdog counter logic to count every time it start to receive a frame. More... | |
int32_t | FSI_disableRxFrameWatchdog (uint32_t base) |
This API disables the frame watchdog counter logic. More... | |
int32_t | FSI_getRxFrameWatchdogCounter (uint32_t base, uint32_t *pWdCnt) |
This API gets current value of frame watchdog counter. More... | |
int32_t | FSI_enableRxPingWatchdog (uint32_t base, uint32_t wdRef) |
This API enables the ping watchdog counter logic and once the set time elapses it will indicate ping watchdog time-out has occurred. More... | |
int32_t | FSI_disableRxPingWatchdog (uint32_t base) |
This API disables the ping watchdog counter logic. More... | |
int32_t | FSI_getRxPingWatchdogCounter (uint32_t base, uint32_t *pWdCnt) |
This API gets current value of ping watchdog counter. More... | |
int32_t | FSI_getRxPingTag (uint32_t base, uint16_t *pPingTag) |
This API gets the value of tag received for last ping frame. More... | |
int32_t | FSI_lockRxCtrl (uint32_t base) |
This API locks the control of all receive control registers, once locked further writes will not take effect until system reset occurs. More... | |
int32_t | FSI_setRxECCData (uint32_t base, uint32_t rxECCdata) |
This API sets RX ECC data on which ECC (SEC-DED) computaion logic runs. More... | |
int32_t | FSI_setRxReceivedECCValue (uint32_t base, uint16_t rxECCvalue) |
This API sets received ECC value on which ECC (SEC-DED) computaion logic runs. More... | |
int32_t | FSI_getRxECCCorrectedData (uint32_t base, uint32_t *pEccData) |
This API gets ECC corrected data. More... | |
int32_t | FSI_getRxECCLog (uint32_t base, uint16_t *pEccLog) |
This API gets ECC Log details. More... | |
int32_t | FSI_enableRxInterrupt (uint32_t base, FSI_InterruptNum intNum, uint16_t intFlags) |
This API enables user to generate interrupt on occurrence of RX events. More... | |
int32_t | FSI_disableRxInterrupt (uint32_t base, FSI_InterruptNum intNum, uint16_t intFlags) |
This API enables user to disable interrupt generation on RX events. More... | |
int32_t | FSI_getRxBufferAddress (uint32_t base, uint32_t *pAddr) |
This API gets address of RX data buffer. More... | |
int32_t | FSI_resetRxModule (uint32_t base, FSI_RxSubmoduleInReset submodule) |
This API resets frame watchdog, ping watchdog or entire RX module. More... | |
int32_t | FSI_clearRxModuleReset (uint32_t base, FSI_RxSubmoduleInReset submodule) |
This API clears resets on frame watchdog, ping watchdog or entire RX module. More... | |
int32_t | FSI_readRxBuffer (uint32_t base, uint16_t *pArray, uint16_t length, uint16_t bufOffset) |
This API reads data from FSI RX buffer. More... | |
int32_t | FSI_configRxDelayLine (uint32_t base, FSI_RxDelayTapType delayTapType, uint16_t tapValue) |
This API adds delay for selected RX tap line. More... | |
int32_t | FSI_performRxInitialization (uint32_t base) |
This API initializes FSI RX module. More... | |
FSI RX Enum type | |
typedef uint32_t | FSI_RxEnumType |
This enumerator defines the types of possible FSI RX events. More... | |
#define | FSI_RX_EVT_PING_WD_TIMEOUT ((uint16_t)0x0001U) |
#define | FSI_RX_EVT_FRAME_WD_TIMEOUT ((uint16_t)0x0002U) |
#define | FSI_RX_EVT_CRC_ERR ((uint16_t)0x0004U) |
#define | FSI_RX_EVT_TYPE_ERR ((uint16_t)0x0008U) |
#define | FSI_RX_EVT_EOF_ERR ((uint16_t)0x0010U) |
#define | FSI_RX_EVT_OVERRUN ((uint16_t)0x0020U) |
#define | FSI_RX_EVT_FRAME_DONE ((uint16_t)0x0040U) |
#define | FSI_RX_EVT_UNDERRUN ((uint16_t)0x0080U) |
#define | FSI_RX_EVT_ERR_FRAME ((uint16_t)0x0100U) |
#define | FSI_RX_EVT_PING_FRAME ((uint16_t)0x0200U) |
#define | FSI_RX_EVT_FRAME_OVERRUN ((uint16_t)0x0400U) |
#define | FSI_RX_EVT_DATA_FRAME ((uint16_t)0x0800U) |
#define | FSI_RX_EVTMASK ((uint16_t)0x0FFFU) |
Mask of all RX Events, ORing all event defines. More... | |
#define | FSI_RX_MAX_DELAY_LINE_VAL ((uint16_t)0x001FU) |
Maximum value in RX delay line tap control. More... | |
FSI RX submodues that can be reset | |
typedef uint32_t | FSI_RxSubmoduleInReset |
List of RX modules that can be reset, can be used with reset APIs. More... | |
#define | FSI_RX_MAIN_CORE_RESET ((uint32_t)0x0U) |
#define | FSI_RX_FRAME_WD_CNT_RESET ((uint32_t)0x1U) |
#define | FSI_RX_PING_WD_CNT_RESET ((uint32_t)0x2U) |
FSI RX delay tap type | |
typedef uint32_t | FSI_RxDelayTapType |
Available RX lines for delay tap selection. More... | |
#define | FSI_RX_DELAY_CLK ((uint32_t)0x0U) |
#define | FSI_RX_DELAY_D0 ((uint32_t)0x1U) |
#define | FSI_RX_DELAY_D1 ((uint32_t)0x2U) |
FSI external frame trigger source | |
typedef uint32_t | FSI_ExtFrameTriggerSrc |
Indexes of available EPWM SOC triggers. More... | |
#define | FSI_EXT_TRIGSRC_EPWM1_SOCA ((uint32_t)0x08U) |
#define | FSI_EXT_TRIGSRC_EPWM1_SOCB ((uint32_t)0x09U) |
#define | FSI_EXT_TRIGSRC_EPWM2_SOCA ((uint32_t)0x0AU) |
#define | FSI_EXT_TRIGSRC_EPWM2_SOCB ((uint32_t)0x0BU) |
#define | FSI_EXT_TRIGSRC_EPWM3_SOCA ((uint32_t)0x0CU) |
#define | FSI_EXT_TRIGSRC_EPWM3_SOCB ((uint32_t)0x0DU) |
#define | FSI_EXT_TRIGSRC_EPWM4_SOCA ((uint32_t)0x0EU) |
#define | FSI_EXT_TRIGSRC_EPWM4_SOCB ((uint32_t)0x0FU) |
#define | FSI_EXT_TRIGSRC_EPWM5_SOCA ((uint32_t)0x10U) |
#define | FSI_EXT_TRIGSRC_EPWM5_SOCB ((uint32_t)0x11U) |
#define | FSI_EXT_TRIGSRC_EPWM6_SOCA ((uint32_t)0x12U) |
#define | FSI_EXT_TRIGSRC_EPWM6_SOCB ((uint32_t)0x13U) |
#define | FSI_EXT_TRIGSRC_EPWM7_SOCA ((uint32_t)0x14U) |
#define | FSI_EXT_TRIGSRC_EPWM7_SOCB ((uint32_t)0x15U) |
#define | FSI_EXT_TRIGSRC_EPWM8_SOCA ((uint32_t)0x16U) |
#define | FSI_EXT_TRIGSRC_EPWM8_SOCB ((uint32_t)0x17U) |
#define FSI_RX_EVT_PING_WD_TIMEOUT ((uint16_t)0x0001U) |
#define FSI_RX_EVT_FRAME_WD_TIMEOUT ((uint16_t)0x0002U) |
RX ping watchdog times out event
#define FSI_RX_EVT_CRC_ERR ((uint16_t)0x0004U) |
RX frame watchdog times out event
#define FSI_RX_EVT_TYPE_ERR ((uint16_t)0x0008U) |
RX frame CRC error event
#define FSI_RX_EVT_EOF_ERR ((uint16_t)0x0010U) |
RX frame invalid Frame type event
#define FSI_RX_EVT_OVERRUN ((uint16_t)0x0020U) |
RX frame invalid End of Frame event
#define FSI_RX_EVT_FRAME_DONE ((uint16_t)0x0040U) |
RX frame buffer overrun event
#define FSI_RX_EVT_UNDERRUN ((uint16_t)0x0080U) |
RX frame done without errors event
#define FSI_RX_EVT_ERR_FRAME ((uint16_t)0x0100U) |
Software reads empty RX buffer event
#define FSI_RX_EVT_PING_FRAME ((uint16_t)0x0200U) |
RX error frame event
#define FSI_RX_EVT_FRAME_OVERRUN ((uint16_t)0x0400U) |
RX ping frame event
#define FSI_RX_EVT_DATA_FRAME ((uint16_t)0x0800U) |
Software didn't clear FRAME_DONE flag after receiving new frame event
#define FSI_RX_EVTMASK ((uint16_t)0x0FFFU) |
Mask of all RX Events, ORing all event defines.
RX data frame event
#define FSI_RX_MAX_DELAY_LINE_VAL ((uint16_t)0x001FU) |
Maximum value in RX delay line tap control.
#define FSI_RX_MAIN_CORE_RESET ((uint32_t)0x0U) |
RX controller core reset
#define FSI_RX_FRAME_WD_CNT_RESET ((uint32_t)0x1U) |
RX frame watchdog counter reset
#define FSI_RX_PING_WD_CNT_RESET ((uint32_t)0x2U) |
RX ping watchdog counter reset
#define FSI_RX_DELAY_CLK ((uint32_t)0x0U) |
RX CLK line delay tap
#define FSI_RX_DELAY_D0 ((uint32_t)0x1U) |
RX D0 line delay tap
#define FSI_RX_DELAY_D1 ((uint32_t)0x2U) |
RX D1 line delay tap
#define FSI_EXT_TRIGSRC_EPWM1_SOCA ((uint32_t)0x08U) |
FSI external trigger source for ePWM1 SOCA
#define FSI_EXT_TRIGSRC_EPWM1_SOCB ((uint32_t)0x09U) |
FSI external trigger source for ePWM1 SOCB
#define FSI_EXT_TRIGSRC_EPWM2_SOCA ((uint32_t)0x0AU) |
FSI external trigger source for ePWM2 SOCA
#define FSI_EXT_TRIGSRC_EPWM2_SOCB ((uint32_t)0x0BU) |
FSI external trigger source for ePWM2 SOCB
#define FSI_EXT_TRIGSRC_EPWM3_SOCA ((uint32_t)0x0CU) |
FSI external trigger source for ePWM3 SOCA
#define FSI_EXT_TRIGSRC_EPWM3_SOCB ((uint32_t)0x0DU) |
FSI external trigger source for ePWM3 SOCB
#define FSI_EXT_TRIGSRC_EPWM4_SOCA ((uint32_t)0x0EU) |
FSI external trigger source for ePWM4 SOCA
#define FSI_EXT_TRIGSRC_EPWM4_SOCB ((uint32_t)0x0FU) |
FSI external trigger source for ePWM4 SOCB
#define FSI_EXT_TRIGSRC_EPWM5_SOCA ((uint32_t)0x10U) |
FSI external trigger source for ePWM5 SOCA
#define FSI_EXT_TRIGSRC_EPWM5_SOCB ((uint32_t)0x11U) |
FSI external trigger source for ePWM5 SOCB
#define FSI_EXT_TRIGSRC_EPWM6_SOCA ((uint32_t)0x12U) |
FSI external trigger source for ePWM6 SOCA
#define FSI_EXT_TRIGSRC_EPWM6_SOCB ((uint32_t)0x13U) |
FSI external trigger source for ePWM6 SOCB
#define FSI_EXT_TRIGSRC_EPWM7_SOCA ((uint32_t)0x14U) |
FSI external trigger source for ePWM7 SOCA
#define FSI_EXT_TRIGSRC_EPWM7_SOCB ((uint32_t)0x15U) |
FSI external trigger source for ePWM7 SOCB
#define FSI_EXT_TRIGSRC_EPWM8_SOCA ((uint32_t)0x16U) |
FSI external trigger source for ePWM8 SOCA
#define FSI_EXT_TRIGSRC_EPWM8_SOCB ((uint32_t)0x17U) |
FSI external trigger source for ePWM8 SOCB
typedef uint32_t FSI_RxEnumType |
This enumerator defines the types of possible FSI RX events.
Values that can be passed to APIs to enable/disable interrupts and also to set/get/clear event status on FSI RX operation.
There are 12 supported interrupts related to RX events, all are available as event status as well. 1) ping watchdog times out 2) frame watchdog times out 3) mismatch between hardware computed CRC and received CRC.This status should be ignored if user chooses SW CRC computation 4) invalid Frame type detected 5) invalid EndofFrame bit-pattern 6) buffer Overrun in RX buffer 7) received frame without errors 8) software reads empty RX buffer 9) received error frame 10) received ping frame 11) software didn't clear FRAME_DONE flag after receiving new frame 12) received data frame
typedef uint32_t FSI_RxSubmoduleInReset |
List of RX modules that can be reset, can be used with reset APIs.
Three submodules can be reset- 1) RX controller core 2) frame watchdog counter 3) ping watchdog counter
typedef uint32_t FSI_RxDelayTapType |
Available RX lines for delay tap selection.
Delay tapping can be done on 3 lines: 1) RXCLK 2) RXD0 3) RXD1
typedef uint32_t FSI_ExtFrameTriggerSrc |
Indexes of available EPWM SOC triggers.
There are 16 ePWM SOC events as external triggers for FSI frame transfers. Indexes 0:7 and 24:31 are reserved out of total 32 muxed external triggers.
int32_t FSI_enableRxInternalLoopback | ( | uint32_t | base | ) |
This API enables internal loopback where mux will select internal pins coming from RX module instead of what comes from pins.
base | [IN] Base address of the FSI RX module. |
int32_t FSI_disableRxInternalLoopback | ( | uint32_t | base | ) |
This API disables internal loopback where mux will not use internal pins coming from RX module.
base | [IN] Base address of the FSI RX module. |
int32_t FSI_enableRxSPIPairing | ( | uint32_t | base | ) |
This API enables SPI clock paring, receive clock is selected from the internal port coming from RX module.
This API is only applicable when communicating with a SPI interface
base | [IN] Base address of the FSI RX module. |
int32_t FSI_disableRxSPIPairing | ( | uint32_t | base | ) |
This API disables SPI clock paring, selects regular receive clock coming from the pins.
This API is only applicable when communicating with a SPI interface
base | [IN] Base address of the FSI RX module. |
int32_t FSI_setRxDataWidth | ( | uint32_t | base, |
FSI_DataWidth | dataWidth | ||
) |
This API selects number of data lines used for receiving.
base | [IN] Base address of the FSI RX module. |
dataWidth | [IN] Data lines used for RX operation refer FSI_DataWidth. |
int32_t FSI_enableRxSPIMode | ( | uint32_t | base | ) |
This API enables SPI compatible mode in FSI RX.
This API is only applicable when communicating with a SPI interface
base | [IN] Base address of the FSI RX module. |
int32_t FSI_disableRxSPIMode | ( | uint32_t | base | ) |
This API disables SPI compatible mode in FSI RX.
This API is only applicable when communicating with a SPI interface
base | [IN] Base address of the FSI RX module. |
int32_t FSI_setRxSoftwareFrameSize | ( | uint32_t | base, |
uint16_t | nWords | ||
) |
This API sets the RX frame size if frame type is user/software defined frame.
base | [IN] Base address of the FSI RX module. |
nWords | [IN] number of data words in a software defined frame. |
int32_t FSI_setRxECCComputeWidth | ( | uint32_t | base, |
FSI_ECCComputeWidth | eccComputeWidth | ||
) |
This API select between 16-bit and 32-bit ECC computation for FSI RX.
base | [IN] Base address of the FSI RX module. |
eccComputeWidth | [IN] Refer FSI_ECCComputeWidth |
int32_t FSI_setRxPingTimeoutMode | ( | uint32_t | base, |
FSI_PingTimeoutMode | pingTimeoutMode | ||
) |
This API sets HW/SW initiated RX ping timeout mode.
base | [IN] Base address of the FSI RX module. |
pingTimeoutMode | [IN] Refer FSI_PingTimeoutMode |
int32_t FSI_getRxFrameType | ( | uint32_t | base, |
FSI_FrameType * | pFrameType | ||
) |
This API gets frame type received in the last successful frame.
base | [IN] Base address of the FSI RX module. |
pFrameType | [OUT] Pointer to the RX frame type. |
int32_t FSI_getRxFrameTag | ( | uint32_t | base, |
uint16_t * | pFrameTag | ||
) |
This API gets frame tag received for the last successful frame.
base | [IN] Base address of the FSI RX module. |
pFrameTag | [OUT] Pointer to the RX frame tag. |
int32_t FSI_getRxUserDefinedData | ( | uint32_t | base, |
uint16_t * | pUserData | ||
) |
This API gets User-Data (8-bit) field for received data frame.
base | [IN] Base address of the FSI RX module. |
pUserData | [OUT] Pointer to the user data value. |
int32_t FSI_getRxEventStatus | ( | uint32_t | base, |
uint16_t * | pEvtFlags | ||
) |
This API gets current status of all the event/error flags.
base | [IN] Base address of the FSI RX module |
pEvtFlags | [OUT] Pointer to status of event/error flags, each bit of integer is associated with one error flag |
int32_t FSI_forceRxEvents | ( | uint32_t | base, |
uint16_t | evtFlags | ||
) |
This API enables user to set RX event/error flags.
base | [IN] Base address of the FSI RX module |
evtFlags | [IN] event/error flags to be set |
int32_t FSI_clearRxEvents | ( | uint32_t | base, |
uint16_t | evtFlags | ||
) |
This API enables user to clear RX event/error flags.
base | [IN] Base address of the FSI RX module |
evtFlags | [IN] event/error flags to be cleared |
int32_t FSI_getRxReceivedCRC | ( | uint32_t | base, |
uint16_t * | pCrcVal | ||
) |
This API gets CRC value received in data frame/frame.
base | [IN] Base address of the FSI RX module |
pCrcVal | [OUT] Pointer to CRC value received in data frame |
int32_t FSI_getRxComputedCRC | ( | uint32_t | base, |
uint16_t * | pCrcVal | ||
) |
This API gets CRC value computed for data received.
base | [IN] Base address of the FSI RX module |
pCrcVal | [OUT] Pointer to CRC value computed on received data |
int32_t FSI_setRxBufferPtr | ( | uint32_t | base, |
uint16_t | bufPtrOff | ||
) |
This API sets the value for receive buffer pointer at desired location.
base | [IN] Base address of the FSI RX module |
bufPtrOff | [IN] 4 bit offset pointer in RX buffer from where received data will be read |
int32_t FSI_getRxBufferPtr | ( | uint32_t | base, |
uint16_t * | pBufPtrLoc | ||
) |
This API gets current buffer pointer location.
There could be lag due to synchronization, hence value is accurate only when no current reception is happening
base | [IN] Base address of the FSI RX module |
pBufPtrLoc | [OUT] Pointer to current buffer pointer location |
int32_t FSI_getRxWordCount | ( | uint32_t | base, |
uint16_t * | pWordCnt | ||
) |
This API gets valid number of data words present in buffer which have not been read out yet.
There could be lag due to synchronization, hence value is accurate only when no current reception is happening
base | [IN] Base address of the FSI RX module |
pWordCnt | [OUT] Pointer to number of data words present in buffer |
int32_t FSI_enableRxFrameWatchdog | ( | uint32_t | base, |
uint32_t | wdRef | ||
) |
This API enables the frame watchdog counter logic to count every time it start to receive a frame.
base | [IN] Base address of the FSI RX module |
wdRef | [IN] reference value for frame watchdog time-out counter |
int32_t FSI_disableRxFrameWatchdog | ( | uint32_t | base | ) |
This API disables the frame watchdog counter logic.
base | [IN] Base address of the FSI RX module |
int32_t FSI_getRxFrameWatchdogCounter | ( | uint32_t | base, |
uint32_t * | pWdCnt | ||
) |
This API gets current value of frame watchdog counter.
base | [IN] Base address of the FSI RX module |
pWdCnt | [OUT] Pointer to current value of frame watchdog counter |
int32_t FSI_enableRxPingWatchdog | ( | uint32_t | base, |
uint32_t | wdRef | ||
) |
This API enables the ping watchdog counter logic and once the set time elapses it will indicate ping watchdog time-out has occurred.
base | [IN] Base address of the FSI RX module |
wdRef | [IN] reference value for ping watchdog time-out counter |
int32_t FSI_disableRxPingWatchdog | ( | uint32_t | base | ) |
This API disables the ping watchdog counter logic.
base | [IN] Base address of the FSI RX module |
int32_t FSI_getRxPingWatchdogCounter | ( | uint32_t | base, |
uint32_t * | pWdCnt | ||
) |
This API gets current value of ping watchdog counter.
base | [IN] Base address of the FSI RX module |
pWdCnt | [OUT] Pointer to current value of ping watchdog counter |
int32_t FSI_getRxPingTag | ( | uint32_t | base, |
uint16_t * | pPingTag | ||
) |
This API gets the value of tag received for last ping frame.
base | [IN] Base address of the FSI RX module |
pPingTag | [OUT] Pointer to ping frame tag value |
int32_t FSI_lockRxCtrl | ( | uint32_t | base | ) |
This API locks the control of all receive control registers, once locked further writes will not take effect until system reset occurs.
base | [IN] Base address of the FSI RX module |
int32_t FSI_setRxECCData | ( | uint32_t | base, |
uint32_t | rxECCdata | ||
) |
This API sets RX ECC data on which ECC (SEC-DED) computaion logic runs.
base | [IN] Base address of the FSI RX module |
rxECCdata | [IN] RX ECC data for ECC logic |
int32_t FSI_setRxReceivedECCValue | ( | uint32_t | base, |
uint16_t | rxECCvalue | ||
) |
This API sets received ECC value on which ECC (SEC-DED) computaion logic runs.
base | [IN] Base address of the FSI RX module |
rxECCvalue | [IN] Received ECC value in a data frame |
int32_t FSI_getRxECCCorrectedData | ( | uint32_t | base, |
uint32_t * | pEccData | ||
) |
This API gets ECC corrected data.
base | [IN] Base address of the FSI RX module |
pEccData | [OUT] Pointer to 32 bit ECC corrected data |
int32_t FSI_getRxECCLog | ( | uint32_t | base, |
uint16_t * | pEccLog | ||
) |
This API gets ECC Log details.
base | [IN] Base address of the FSI RX module |
pEccLog | [OUT] Pointer to ECC Log value (8 bit) |
int32_t FSI_enableRxInterrupt | ( | uint32_t | base, |
FSI_InterruptNum | intNum, | ||
uint16_t | intFlags | ||
) |
This API enables user to generate interrupt on occurrence of RX events.
base | [IN] Base address of the FSI RX module |
intNum | [IN] Type of interrupt to be generated, INT1 or INT2, refer FSI_InterruptNum |
intFlags | [IN] events on which interrupt should be generated. Each bit will represent one event, bits for the events on which user want to generate interrupt will be set others remain clear |
int32_t FSI_disableRxInterrupt | ( | uint32_t | base, |
FSI_InterruptNum | intNum, | ||
uint16_t | intFlags | ||
) |
This API enables user to disable interrupt generation on RX events.
base | [IN] Base address of the FSI RX module |
intNum | [IN] Type of interrupt to be generated, INT1 or INT2, refer FSI_InterruptNum |
intFlags | [IN] events on which interrupt generation has to be disabled. |
int32_t FSI_getRxBufferAddress | ( | uint32_t | base, |
uint32_t * | pAddr | ||
) |
This API gets address of RX data buffer.
Data buffer is consisting of 16 words from offset- 0x40 to 0x4e
base | [IN] Base address of the FSI RX module |
pAddr | [OUT] Pointer to RX data buffer address |
int32_t FSI_resetRxModule | ( | uint32_t | base, |
FSI_RxSubmoduleInReset | submodule | ||
) |
This API resets frame watchdog, ping watchdog or entire RX module.
base | [IN] Base address of the FSI RX module |
submodule | [IN] submodule which is supposed to be reset |
int32_t FSI_clearRxModuleReset | ( | uint32_t | base, |
FSI_RxSubmoduleInReset | submodule | ||
) |
This API clears resets on frame watchdog, ping watchdog or entire RX module.
base | [IN] Base address of the FSI RX module |
submodule | [IN] submodule which is to be brought out of reset |
int32_t FSI_readRxBuffer | ( | uint32_t | base, |
uint16_t * | pArray, | ||
uint16_t | length, | ||
uint16_t | bufOffset | ||
) |
This API reads data from FSI RX buffer.
base | [IN] Base address of the FSI RX module |
pArray | [IN] Pointer to the array of words to be received |
length | [IN] Number of words in the array to be received |
bufOffset | [IN] Offset in RX buffer where data will be read, offset is 16-bit aligned address |
int32_t FSI_configRxDelayLine | ( | uint32_t | base, |
FSI_RxDelayTapType | delayTapType, | ||
uint16_t | tapValue | ||
) |
This API adds delay for selected RX tap line.
base | [IN] Base address of the FSI RX module |
delayTapType | [IN] RX line for which delay needs to be added it can be either RXCLK,RXD0 or RXD1 |
tapValue | [IN] 5 bit value of the amount of delay to be added |
int32_t FSI_performRxInitialization | ( | uint32_t | base | ) |
This API initializes FSI RX module.
Software based initialization of the FSI receiver module.This is typically needed only once during initialization. However, if there are framing errors in the received frames, then the receive module needs to be reset so that subsequent frames/packets can be handled fresh
base | [IN] Base address of the FSI RX module |