4.5. CDD_FSIRX Module
4.5.1. Acronyms and Definitions
Abbreviation/Term |
Explanation |
---|---|
AUTOSAR |
Automotive Open System Architecture |
BSW |
Basic Software |
CDD |
Complex Device Driver |
FSI |
Fast Serial Interface |
DDR |
Double Data Rate |
SDR |
Single Data Rate |
SDR |
Single Data Rate |
CRC |
Cyclic Redundancy Check |
SW |
Software |
HW |
Hardware |
DEM |
Diagnostic Event Manager |
DMA |
Direct Memory Access |
MCAL |
Microcontroller Abstraction Layer |
DET |
Default Error Tracer |
PWM |
Pulse Width Modulation |
PLL |
Phase Locked Loop |
MCU |
Micro Controller Unit |
OS |
Operating System |
API |
Application Programming Interface |
4.5.2. Introduction
This document describes CDD FSI RX Driver functionality, its application interfaces and configuration details as per AUTOSAR version 4.3.1.
Supported AUTOSAR Release |
4.3.1 |
Supported Configuration Variants |
Pre-Compile & Post Build |
Vendor ID |
CDD_FSI_RX_VENDOR_ID (44) |
Module ID |
CDD_FSI_RX_MODULE_ID (255) |
Supported Platform |
AM263x |
4.5.3. Functional Overview
The Fast Serial Interface (FSI) module is a serial communication peripheral capable of reliable high-speed communication across isolation devices. The FSI is designed specifically to ensure reliable high-speed communication for system scenarios that involve communication across isolation barriers without adding components. The FSI consists of independent transmitter (CDD FSI TX) and receiver (CDD FSI RX) cores. The CDD FSITX and CDD FSIRX cores are configured and operated independently. Both CDD FSI TX and FsiRx are capable of configurable frame length and can be operated via DMA. The following figure shows where the CDD Module is located in the AUTOSAR architecture. Since CDD FSI Transmitter and Receiver are CDD Module it occupies the highlighted region in the AUTOSAR architecture.

Fig. 4.26 CDD FSI (CDD Module) in AUTOSAR architecture
4.5.3.1. Functional Overview of CDD FSI Receiver
The receiver module interfaces to the CDD FSI Receiver clock (RXCLK), and data lines (RXD0 and RXD1). The receiver core handles the data framing, CRC computation,and frame-related error checking. The receiver bit clock and state machine are run by the RXCLK input, which is asynchronous to the device system clock. The receiver control registers allow the CPU to program, control, and monitor the operation of the FSI receiver.The receive data buffer is accessible by the CPU and the DMA.
4.5.3.2. CDD FSI RX Driver Architecture

Fig. 4.27 CDD FSI RX Hardware Overview
4.5.3.3. Initialization
Cdd_FsiRx_Init() has to be called to initialize the Fsi Receiver driver before initiating a reception.This will also set the CDD FSI Receiver Hardware Unit to CDD_FSI_RX_IDLE STATE.
4.5.3.4. States
There are 2 states in which each CDD FSI Receiver HW Unit can be:
CDD_FSI_RX_UNINIT: This is the state before the CDD FSI Receiver is initialized.
CDD_FSI_RX_IDLE: This is the state before starting a reception. The receiver becomes idle only after it gets initialized.
4.5.3.5. Assumptions
None
4.5.3.6. Limitations
RXCLK should be connected to TXCLK and it should never be configured to be faster than SYSCLK/2.
Data Frame Configuration of Receiver Module should be in sync with the transmitter. (frame type, data width ).
In FSI, as soon as the DMA trigger is started, whatever data is available in the internal FSI buffer is transferred immediately before the DMA actually transfers from external buffer to FSI internal buffer. As a workaround, we are manually copying onto internal buffer before FSI DMA event is enabled
4.5.3.6.1. Design overview of CDD FSI Receiver (Link to the Architecture document and Design Document)
Will be available in future release.
4.5.4. Hardware Features
CDD FSI Rx features:
4.5.4.1. IP Supported Features
Software-configurable frame lengths
Ping frame watchdog
Data Frame watchdog
Data buffer underrun and overrun detection
DMA support
Double Data Rate(DDR)
4.5.4.2. CDD FSI RX Supported Features
Software-configurable frame lengths
Ping frame watchdog
Data Frame watchdog
Data buffer underrun and overrun detection
DMA support
4.5.4.3. CDD FSI RX Not Supported Features
Double Data Rate(DDR)
4.5.4.4. Configurable Hardware Units
User configurable parameter to define how many Rx Hardware Units (Instances) to use out of a maximum of 4
User configurable parameter to specify which Hardware Unit to use
User configurable frame size which defines number of words to be received into Rx internal Buffer.
4.5.4.5. Configurable Development Error
User configurable error check to report development errors.
4.5.4.6. Configurable Frame Length
The number of words to be sent in each frame is user configurable. The argument RxDataLength passed into the API Cdd_FsiRx_setUpBuffer will setup the internal Rx Buffer for data reception. The RxDataLength can be any value from the enum Cdd_FsiRx_DataLengthType which has a range of 1-16.
CDD_FSI_RX_DATA_1_WORD_LENGTH - Rx Reception buffer will be configured to receive 1 WORD.
CDD_FSI_RX_DATA_2_WORD_LENGTH - Rx Reception buffer will be configured to receive 2 WORDS .
CDD_FSI_RX_DATA_3_WORD_LENGTH - Rx Reception buffer will be configured to receive 3 WORDS.
CDD_FSI_RX_DATA_4_WORD_LENGTH - Rx Reception buffer will be configured to receive 4 WORDS.
CDD_FSI_RX_DATA_5_WORD_LENGTH - Rx Reception buffer will be configured to receive 5 WORDS.
CDD_FSI_RX_DATA_6_WORD_LENGTH - Rx Reception buffer will be configured to receive 6 WORDS.
CDD_FSI_RX_DATA_7_WORD_LENGTH - Rx Reception buffer will be configured to receive 7 WORDS.
CDD_FSI_RX_DATA_8_WORD_LENGTH - Rx Reception buffer will be configured to receive 8 WORDS.
CDD_FSI_RX_DATA_9_WORD_LENGTH - Rx Reception buffer will be configured to receive 9 WORDS.
CDD_FSI_RX_DATA_10_WORD_LENGTH - Rx Reception buffer will be configured to receive 10 WORDS.
CDD_FSI_RX_DATA_11_WORD_LENGTH -Rx Reception buffer will be configured to receive 11 WORDS.
CDD_FSI_RX_DATA_12_WORD_LENGTH - Rx Reception buffer will be configured to receive 12 WORDS.
CDD_FSI_RX_DATA_13_WORD_LENGTH - Rx Reception buffer will be configured to receive 13 WORDS.
CDD_FSI_RX_DATA_14_WORD_LENGTH - Rx Reception buffer will be configured to receive 14 WORDS.
CDD_FSI_RX_DATA_15_WORD_LENGTH - Rx Reception buffer will be configured to receive 15 WORDS.
CDD_FSI_RX_DATA_16_WORD_LENGTH - Rx Reception buffer will be configured to receive 16 WORDS.
4.5.4.7. Configurable Timeouts
User Configurable Ping Watch Dog Timeout value(If the Rx instance does not receive a ping frame within the configured timeout period of Ping WatchDog, then the Watchdog will Timeout and sent notification to application. This feature can be used to check the physical connection between Tx and Rx).
User Configurable Frame Watch Dog Timeout value(If the Rx instance does not receive a data frame within the configured timeout period of Frame WatchDog, then the Watchdog will Timeout and sent notification to application. This feature can be used to check the physical connection between Tx and Rx).
4.5.4.8. Configurable Reception Modes
The FSI Receiver can Receive data in three different Modes.
Interrupt Mode.
Polling Mode.
DMA Mode.
4.5.4.8.1. Interrupt Mode
Each FSI module contains multiple interrupt sources which can be assigned to two different interrupt vectors: INT1 and INT2. Each interrupt source has an associated status flag. In Interrupt Mode, the parameter CddFsiRxMainApi and should be OFF and CddFsiRxDMAEnable in Cdd_FsiRx_Cfg.h will be OFF. The receiver can generate the following interrupts:
Ping Watchdog Timeout (PING_WD_TO) : This event indicates that the ping watchdog timer has timed out. The receiver has not received a valid frame within the time period specified in the RX_PING_WD_REF register. To enable this Interrupt Event, the parameter CddFsiRxPingWdgTimeoutInterruptEvent in Cdd_FsiRx_Cfg.h should be ON.
Frame Watchdog Timeout (FRAME_WD_TO) : This event indicates that the frame watchdog timer has timed out. The conditions of this timeout are set using the RX_FRAME_WD_CTRL register. As soon as the start of frame phase is detected, the frame watchdog counter will start counting from 0. The end of frame phase must complete by the time the watchdog counter reaches the reference value. If this does not happen, the watchdog will time out and this event will be generated. If this event occurs, the receiver must undergo a soft reset and subsequent resynchronization in order to guarantee proper operation. The Parameter CddFsiRxFrameWdgTimeoutInterruptEvent in Cdd_FsiRx_Cfg.h
Ping Frame Received (PING_FRAME) : This event indicates that a ping frame has been received. The Parameter CddFsiRxPingFrameReceivedInterruptEvent in Cdd_FsiRx_Cfg.h should be ON.
Data Frame Received (DATA_FRAME) : This event indicates that a data frame has been received. The macro CddFsiRxDataFrameReceivedInterruptEvent in Cdd_FsiRx_Cfg.h should be ON.
4.5.4.8.2. Polling Mode
In Polling Mode the FSI Receiver is continuously polled using Cdd_FsiRx_MainFunction API to check whether data has received or not. In Polling Mode the states of different macros inside Cdd_FsiTx_Cfg.h are listed below:
CDD_FSI_RX_MAIN_FUNCTION_API -STD ON.
CDD_FSI_RX_DMA_ENABLE -STD OFF
CDD_FSI_RX_PING_WDG_TIMEOUT_INTERRUPT -STD OFF
CDD_FSI_RX_FRAME_WDG_TIMEOUT_INTERRUPT -STD OFF
CDD_FSI_RX_CRC_ERROR_INTERRUPT -STD OFF
CDD_FSI_RX_BUFFER_OVERRUN_INTERRUPT -STD OFF
CDD_FSI_RX_BUFFER_UNDERRUN_INTERRUPT -STD OFF
CDD_FSI_RX_PING_RECEIVED_INTERRUPT -STD OFF
CDD_FSI_RX_DATA_RECEIVED_INTERRUPT -STD OFF
The Parameter related with each Interrupt event should be OFF if Main Function API Parameter is ON.
4.5.4.8.3. DMA Mode
The FSI Receiver can receive data which is continuously copied to the destination buffer with the DMA. In order to transmit continuous data with the DMA, some configurations need to be made on the transmitter:
Configure the DMA channel and handle for the Rx Instance in CDD_DMA_TRANSFER_MODE_CHAINING
Whenever data receives at the Rx internal buffer , the Rx interrupt will get hit and it will trigger internal function to copy data from Internal buffer to destination buffer.
In DMA Mode the states of different macros inside Cdd_FsiRx_Cfg.h are listed below:
CDD_FSI_RX_MAIN_FUNCTION_API -STD OFF
CDD_FSI_RX_DMA_ENABLE -STD ON
CDD_FSI_RX_PING_WDG_TIMEOUT_INTERRUPT -STD OFF
CDD_FSI_RX_FRAME_WDG_TIMEOUT_INTERRUPT -STD OFF
CDD_FSI_RX_CRC_ERROR_INTERRUPT -STD OFF
CDD_FSI_RX_BUFFER_OVERRUN_INTERRUPT -STD OFF
CDD_FSI_RX_BUFFER_UNDERRUN_INTERRUPT -STD OFF
CDD_FSI_RX_PING_RECEIVED_INTERRUPT -STD OFF
CDD_FSI_RX_DATA_RECEIVED_INTERRUPT -STD OFF
4.5.5. Source files
Description of static files is provided below:
📦AM263x
┣ 📂build
┣ 📂mcal
┃ ┣ 📂FsiRx
┃ ┃ ┣ 📂include
┃ ┃ ┃ ┗ 📜Cdd_FsiRx.h : Contains the API’s of the CDD FSI RX driver to be used by upper layers
┃ ┃ ┣ 📂src
┃ ┃ ┃ ┗ 📜Cdd_FsiRx.c : Contains the implementation of the API’s for CDD FSI RX driver
┃ ┃ ┣ 📂V0
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Irq.h : Contains ISR function declaration
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Irq.c : Contains ISR function definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Platform.h : Contains device specific function definition, data types and definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Platform.c : Contains device specific function definition, data types and definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Priv.h : Contains Internal functions declaration of CDD FSI RX driver
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Priv.c : Contains Internal functions definition of CDD FSI RX driver
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Reg.h : Contains CDD FSI RX Register definition
┃ ┃ ┃ ┗ 📜Cdd_FsiRx_Types.h : Contains the cdd data types and internal macro definitions .
┃ ┃ ┗ 📜Makefile
┣ 📂mcal_config
┣ 📂mcal_docs
┗ 📜README.txt
Description of generated files is provided below:
Plugin Files |
Description |
---|---|
CddFsiRx_Cfg.h |
Contains the Precompile switches, Symbolic names of hardware units and channels, Configured maximum number of hardware units |
CddFsiRx_PBcfg.c |
Contains all channels Post-Build Configuration parameters |
CddFsiRx_Cfg.c |
Contains all channels Pre-Compile Configuration parameters |
The below diagram shows the files structure for the FSI Rx driver.

Fig. 4.28 CDD FSI RX header file include structure_Cdd_Fsi_Am263
4.5.6. Module requirements
Will be updated in future release:
4.5.6.1. Memory Mapping
Memory Mapping Sections |
CDD_FSIRX_CODE |
CDD_FSIRX_CODE_ISR |
CDD_FSIRX_VAR_NO_INIT |
CDD_FSIRX_VAR |
CDD_FSIRX_CONST |
CDD_FSIRX_PBCFG |
---|---|---|---|---|---|---|
CDD_FSIRX_START_SEC_VAR_INIT_UNSPECIFIED(.bss) |
x |
|||||
CDD_FSIRX_STOP_SEC_VAR_INIT_UNSPECIFIED |
x |
|||||
CDD_FSIRX_START_SEC_CONFIG_DATA (.const) |
x |
|||||
CDD_FSIRX_STOP_SEC_CONFIG_DATA |
x |
|||||
CDD_FSIRX_START_SEC_CODE(.text) |
x |
|||||
CDD_FSIRX_STOP_SEC_CODE |
x |
|||||
CDD_FSIRX_START_SEC_VAR_INIT_32(.bss) |
x |
|||||
CDD_FSIRX_STOP_SEC_VAR_INIT_32 |
x |
|||||
CDD_FSIRX_START_SEC_VAR_NO_INIT_UNSPECIFIED(.data) |
x |
|||||
CDD_FSIRX_STOP_SEC_VAR_NO_INIT_UNSPECIFIED |
x |
|||||
CDD_FSIRX_START_SEC_ISR_CODE |
x |
|||||
CDD_FSIRX_STOP_SEC_ISR_CODE |
x |
4.5.6.2. Scheduling
Schedule Function API |
Description |
---|---|
Cdd_FsiRx_MainFunction |
The MainFunction notify the application in Polling Mode |
4.5.6.3. Error handling
4.5.6.3.1. Development Error Reporting
The module CDD FSI RX depends on the DET (by default) in order to report development errors. Detection and reporting of development errors can be enabled or disabled by the parameter CddFsiRxDevErrorDetect.The macro CDD_FSI_RX_DEV_ERROR_DETECT = STD_ON generated in file CddFsiRx_Cfg.h). The DET error is reported with Module ID. The reported service IDs identify the services which are described earlier. The errors reported to DET module are described in the following table:
4.5.6.4. Error codes
4.5.6.4.1. Development Errors
Type of Error |
Related Error code |
Value (Hex) |
---|---|---|
Error code indicating the CDD FSI RX is uninitialized |
CDD_FSI_RX_E_UNINIT |
0x01 |
Error code indicating an invalid event |
CDD_FSI_RX_E_INVALID_EVENT |
0x02 |
Error code indicating invalid parameter pointer |
CDD_FSI_RX_E_PARAM_POINTER |
0x03 |
API service called with invalid ramsection parameter |
CDD_FSI_RX_E_ALREADY_INITIALIZED |
0x04 |
Error code indicating Service called with invalid length |
CDD_FSI_RX_E_PARAM_LENGTH |
0x05 |
Error code indicating invalid Number of FsiRx HwUnit |
CDD_FSI_RX_E_INVALID_HW_UNIT |
0x06 |
4.5.6.4.2. DEM Errors
The errors reported to DEM are described in the following table:
Error Code |
Description |
|
---|---|---|
Assigned by DEM |
CDD_FSI_RX_E_BUFFER_UNDERRUN |
This error is raised when the Receive Buffer undergoes to an underrun |
Assigned by DEM |
CDD_FSI_RX_E_BUFFER_OVERRUN |
This error is raised when the Receive Buffer undergoes to an overrun |
Assigned by DEM |
CDD_FSI_RX_E_CRC_ERROR |
This error is raised when the Receive Buffer receives a wrong CRC |
Assigned by DEM |
CDD_FSI_RX_E_TYPE_ERR |
This error is raised when the Receive Buffer receives an invalid frame type |
Assigned by DEM |
CDD_FSI_RX_E_FRAME_OVERRUN |
This error is raised when the Receive Buffer receives a new frame has been received while the FRAME_DONE flag was still set |
4.5.7. Used resources
4.5.7.1. Interrupt Handling
For interrupt notification, ISR’s are provided in CDD FSI RX driver. There are two ISRs for each CDD FSI RX hardware units. Depending on hardware unit configured, it will call the notify function. The interrupt service routines shall be mapped to the interrupt sources of the respective cross bar interrupt. The supported ISRs are part of the CddFsiRx_Irq.h file. Following are the ISRs for each CDD FSI RX hardware units:
Hardware Unit |
ISR |
---|---|
CDD_FSI_RX_HW_UNIT_0 |
CddFsiRx_FSIINT1_IrqUnit0() |
CDD_FSI_RX_HW_UNIT_1 |
CddFsiRx_FSIINT1_IrqUnit1() |
CDD_FSI_RX_HW_UNIT_2 |
CddFsiRx_FSIINT1_IrqUnit2() |
CDD_FSI_RX_HW_UNIT_3 |
CddFsiRx_FSIINT1_IrqUnit3() |
DMA Mode ISR |
CddFsiRx_DMA_IrqChannel() |
1.CddFsiRxPingWdgTimeoutInterruptEvent Parameter enables/disables the Ping Watch Dog Timeout interrupt event.
This event indicates that the ping watchdog timer has timed out.
The receiver has not received a valid frame within the time period specified in the RX_PING_WD_REF register.
2.CddFsiRxFrameWdgTimeoutInterruptEvent Parameter enables/disables the Frame Watch Dog Timeout interrupt event .
This event indicates that the frame watchdog timer has timed out.
If this event occurs, the receiver must undergo a soft reset and subsequent resynchronization in order to guarantee proper operation.
3.CddFsiRxCRCErrorInterruptEvent Parameter enables/disables the CRC Error event .
This error indicates that a CRC error has occurred.
4.CddFsiRxUnderRunInterruptEvent Parameter enables/disables the BufferUnderRun interrupt event .
This event indicates that an underrun condition has occurred in the receive buffer.
This condition occurs when software reads the buffer while it is empty.
5.CddFsiRxBufferOverRunInterruptEvent Parameter enables/disables the BufferOverRun interrupt event .
This event indicates that an overrun condition has occurred in the receive buffer.
6.CddFsiRxPingFrameReceivedInterruptEvent Parameter enables/disables the Ping frame received interrupt event .
This event indicates that a ping frame has been received.
7.CddFsiRxDataFrameReceivedInterruptEvent Parameter enables/disables the data frame received interrupt event .
This event indicates that a data frame has been received.
4.5.8. Integration description
4.5.8.1. The CDD FSI RX Driver dependent modules
4.5.8.1.1. MCU
The CDD FSI RX modules expects the MCU module to be powered on. The CDD FSI RX module depends on MCU module for crossbar interrupt mapping of CDD FSI RX interrupts depending on the Hardware unit being configured. Suppose the Hardware Unit 1 is configured for CDD FSI RX module:

Fig. 4.29 CDD FSI RX Hardware container
Similarly, the crossbar interrupts also needs to be mapped in MCU module according to HW unit and interrupts being required. The FSI Rx interrupts needs to be mapped to the corresponding cross bar interrupt required. For each CDD FSI RX instance there will be two interrupt vectors. INT1 and INT2. For each interrupt vector separate Crossbar pins should be selected in mcu configuration.

Fig. 4.30 FSI Rx Interrupt configuration

Fig. 4.31 CDD FSI RX Interrupt selection
4.5.8.1.2. DMA
The CDD FSI RX Modules requires DMA module to be configured, when CDD FSI RX reception is configured in DMA mode.
1.CDD FSI RX Module Configuration:
The CDD FSI RX module parameter CddFsiRxDMAEnable should be configured for TRUE.
The CDD FSI RX HW Unit parameter CddFsiRxReceptionMethod should be configured with CDD_FSI_RX_DMA_MODE.
The DMA supports CDD FSI TX in interrupt mode only.
The reception mode in configurator should be CDD_FSI_RX_DMA_MODE and interrupt should be enabled inside the code.
2.DMA module Configuration:
Set up two DMA channels to be triggered by the same CDD FSI receiver and DMA trigger.
Configure one channel to take data from the Rx buffer.
Configure the other channel to copy the frame tag and user data fields.
Configure the DMA handleId and other parameters for each CDD FSI RX instance inside DMA configurator.
The DMA Configuration reference has given inside CDD FSI RX configurator to select the handleId for each RX Instance.

Fig. 4.32 CDD FSI RX module DMA channel ID selection
4.5.8.1.3. DET
This implementation depends on the DET in order to report development errors. The detection of development errors is configurable (ON / OFF).
4.5.8.1.4. DEM
By default, production code related errors are reported to the DEM using the service DEM_ReportErrorStatus().
Note
Dem Event is enable only if $(Module_Name)DemEventParameterRefs
is enabled.
4.5.8.1.5. SchM
If multiple AUTOSAR runnables have access to the same Data Store Memory block, the exported AUTOSAR specification enforces data consistency by using an AUTOSAR exclusive area. With this specification, the runnables have mutually exclusive access to the per-instance memory global data, which prevents data corruption. Beside the OS, the BSW Scheduler provides functions that CDD FSI RX module calls at begin and end of critical sections. This implementation requires 1 level of exclusive access to guard critical sections.
The data consistency mechanism that has to be applied to an ExclusiveArea might be domain, ECU or even project specific. The decision which mechanism has to be applied by RTE / Basic Software Scheduler is taken during ECU integration by setting the Exclusive Area configuration parameter RteExclusiveAreaImplMechanism. This parameter is an input for RTE generator.
For CDD_FSI_RX Module, data consistency and exclusive access to critical sections are required for the following sections as shown in the table below:
Exclusive Area Functions used |
CDD_FSI_RX Function calling Exclusive Area |
Need for Exclusive Area |
Recommended Exclusive Area Mapping |
---|---|---|---|
FSI_RX_EXCLUSIVE_AREA_0 |
Cdd_FsiRx_MainFunction |
To protect against multiple access for shared resources |
ALL_INTERRUPT_BLOCKING : All interrupts should be blocked as this API’s can be called in the interrupts |
4.5.8.1.6. Callback Functions
The CDD FSI RX driver does not provide any call back functions.
4.5.8.1.6.1. Callback Notification
Notifications: Cdd_FsiRx_BufferNotifyType: This Cdd_FsiRx_BufferNotifyType which is defined in CddFsiRx_Types.h file. This is called to notify the HwUnit about the completion of the data reception and availability of Rx Buffer to receive another frame.
4.5.8.2. Multi-core support
Not Supported
4.5.9. Configuration
4.5.9.1. CddFsiRxConfigSet
This container contains the configuration parameters and sub containers of the AUTOSAR Cdd Fsi Rx module.
4.5.9.1.1. CddFsiRxResetNotification
Item |
|
---|---|
Name |
CddFsiRxResetNotification |
Description |
Callback notification to Application to reset the driver |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
NULL_PTR |
4.5.9.1.2. CddFsiRxOverRunNotification
Item |
|
---|---|
Name |
CddFsiRxOverRunNotification |
Description |
Callback notification to Application that an over-run occured in Rx buffer |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
NULL_PTR |
4.5.9.1.3. CddFsiRxUnderRunNotification
Item |
|
---|---|
Name |
CddFsiRxUnderRunNotification |
Description |
Callback notification to Application that an under-run occured in Rx buffer |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
NULL_PTR |
4.5.9.1.4. CddFsiRxPingFrameReceivedNotification
Item |
|
---|---|
Name |
CddFsiRxPingFrameReceivedNotification |
Description |
Callback notification to Application that a ping frame has been received |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
NULL_PTR |
4.5.9.1.5. CddFsiRxDataFrameReceivedNotification
Item |
|
---|---|
Name |
CddFsiRxDataFrameReceivedNotification |
Description |
Callback notification to Application that a data frame has been received |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
NULL_PTR |
4.5.9.1.6. CddFsiRxHwUnit
This container contains the Driver configuration (parameters) depending on which FSI Rx Hw unit is get configured
4.5.9.1.6.1. CddFsiRxHwUnitId
Item |
|
---|---|
Name |
CddFsiRxHwUnitId |
Description |
Description: Numeric ID of the Rx HW Unit. For the ping treceived frame interrupt the rx hw baseadress is needed. for that listing out the id as well. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
true |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
CDD_FSI_RX_HWUNIT_0 |
Range |
CDD_FSI_RX_HWUNIT_0 |
4.5.9.1.6.2. CddFsiRxPingWdgTimerTimeout
Item |
|
---|---|
Name |
CddFsiRxPingWdgTimerTimeout |
Description |
Timeout value for CddFsiRx Ping Wdg Timer. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
20010 |
Max-value |
4294967295 |
Min-value |
0 |
4.5.9.1.6.3. CddFsiRxFrameWdgTimerTimeout
Item |
|
---|---|
Name |
CddFsiRxFrameWdgTimerTimeout |
Description |
Timeout value for CddFsiRx Frame Wdg Timer. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
10010 |
Max-value |
4294967295 |
Min-value |
0 |
4.5.9.1.6.4. CddFsiRxReceptionMethod
Item |
|
---|---|
Name |
CddFsiRxReceptionMethod |
Description |
Selects the method of frame reception. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
CDD_FSI_RX_INTERRUPT_MODE |
Range |
CDD_FSI_RX_INTERRUPT_MODE |
4.5.9.1.6.5. CddFsiRxDmaReference
Item |
|
---|---|
Name |
CddFsiRxDmaReference |
Description |
Reference to the DMA Group Channel |
Multiplicity-Configuration-Class |
– |
Post-Build Time |
VARIANT-POST-BUILD |
Pre-Compile Time |
VARIANT-PRE-COMPILE |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
4.5.9.2. CddFsiRxGeneral
General configuration (parameters) of the Cdd Fsi Rx Driver software module.
4.5.9.2.1. CddFsiRxDeInitApi
Item |
|
---|---|
Name |
CddFsiRxDeInitApi |
Description |
Adds / removes the service CddFsiRx_DeInit() from the code. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.2. CddFsiRxDevErrorDetectApi
Item |
|
---|---|
Name |
CddFsiRxDevErrorDetectApi |
Description |
Switches the development error detection and notification on or off. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.3. CddFsiRxTypeofInterruptFunction
Item |
|
---|---|
Name |
CddFsiRxTypeofInterruptFunction |
Description |
Type of ISR function |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
CDD_FSI_RX_ISR_CAT1 |
Range |
CDD_FSI_RX_ISR_VOID |
4.5.9.2.4. CddFsiRxInterruptVector
Item |
|
---|---|
Name |
CddFsiRxInterruptVector |
Description |
Type of ISR function |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
CDD_FSI_RX_INT1 |
Range |
CDD_FSI_RX_INT1 |
4.5.9.2.5. CddFsiRxDeviceVariant
Item |
|
---|---|
Name |
CddFsiRxDeviceVariant |
Description |
Select SOC variant .This parameter shall be used by driver to impose device specific constraints. The user guide shall detail the device specific constraints |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Post-Build-Time |
VARIANT-POST-BUILD |
Default-value |
AM263 |
Range |
AM263 |
4.5.9.2.6. CddFsiRxMaxHwUnitCount
Item |
|
---|---|
Name |
CddFsiRxMaxHwUnitCount |
Description |
Maximum hw count across all hwunits configured |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
1 |
Max-value |
4 |
Min-value |
1 |
4.5.9.2.7. CddFsiRxMaxDmaChannelId
Item |
|
---|---|
Name |
CddFsiRxMaxDmaChannelId |
Description |
Number of actual DMA channels. This is of type published information and not editable |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
63 |
4.5.9.2.8. CddFsiRxNotifyCapability
Item |
|
---|---|
Name |
CddFsiRxNotifyCapability |
Description |
Determines, if the notification mechanism (the functions to enable and disable the notifications) is available at runtime. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.9. CddFsiRxPingWdgTimeoutInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxPingWdgTimeoutInterruptEvent |
Description |
Enables the interrupt Event for Ping Watch Dog Timer. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.10. CddFsiRxFrameWdgTimeoutInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxFrameWdgTimeoutInterruptEvent |
Description |
Enables the interrupt Event for Frame Watch Dog Timer. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.11. CddFsiRxCRCErrorInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxCRCErrorInterruptEvent |
Description |
Enables the interrupt Event for CRC Error. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.12. CddFsiRxBufferOverRunInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxBufferOverRunInterruptEvent |
Description |
Enables the interrupt Event for Rx Buffer Over Run. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.13. CddFsiRxUnderRunInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxUnderRunInterruptEvent |
Description |
Enables the interrupt Event for Rx Buffer UnderRun. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.14. CddFsiRxPingFrameReceivedInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxPingFrameReceivedInterruptEvent |
Description |
Enables the interrupt Event for Ping Frame Reception. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.15. CddFsiRxDataFrameReceivedInterruptEvent
Item |
|
---|---|
Name |
CddFsiRxDataFrameReceivedInterruptEvent |
Description |
Enables the interrupt Event for Data Frame Reception. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.16. CddFsiRxMainApi
Item |
|
---|---|
Name |
CddFsiRxMainApi |
Description |
Adds / removes the service CddFsiRx_Main() and from the code. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.17. CddFsiRxResetDriver
Item |
|
---|---|
Name |
CddFsiRxResetDriver |
Description |
Adds / removes the service Cdd_FsiRx_ResetDriver() and from the code. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.18. CddFsiRxGetVersionInfoApi
Item |
|
---|---|
Name |
CddFsiRxGetVersionInfoApi |
Description |
Adds / removes the service CddFsiRx_GetVersionInfo() from the code. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
true |
4.5.9.2.19. CddFsiRxDMAEnable
Item |
|
---|---|
Name |
CddFsiRxDMAEnable |
Description |
Enables DMA Access method for CddFsiRx Reception. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
false |
4.5.9.2.20. CddFsiRxMultiLaneEnable
Item |
|
---|---|
Name |
CddFsiRxMultiLaneEnable |
Description |
Enables MultiLane Transmission for CddFsiRx. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
false |
4.5.9.2.21. CddFsiRxDefaultOSCounterId
Item |
|
---|---|
Name |
CddFsiRxDefaultOSCounterId |
Description |
Default Os Counter Id if node reference to OsCounter ref CddFsiRxOsCounterRef is not set |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Default-value |
0 |
Max-value |
16 |
Min-value |
0 |
4.5.9.2.22. CddFsiRxOsCounterRef
Item |
|
---|---|
Name |
CddFsiRxOsCounterRef |
Description |
This parameter contains a reference to the OsCounter, which is used by the CddFsiRx driver. |
Origin |
Texas Instruments |
Post-build-variant-multiplicity |
false |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
4.5.9.3. CddFsiRxDemEventParameterRefs
Item |
|
---|---|
Name |
CddFsiRxDemEventParameterRefs |
Description |
Reference to the DemEventParameter which shall be issued when the error “END OF FRAME error occurs “ has occurred. |
Post-build-variant-multiplicity |
false |
Multiplicity-Configuration-Class |
– |
Post-Build Time |
VARIANT-POST-BUILD |
Pre-Compile Time |
VARIANT-PRE-COMPILE |
Origin |
Texas Instruments |
Post-Build-Variant-Value |
false |
Value-Configuration-Class |
– |
Post-Build-Time |
VARIANT-POST-BUILD |
Pre-Compile-Time |
VARIANT-PRE-COMPILE |
Note
The DDR (Double Data Rate) is not supported.So CddFsiRxMultiLaneEnable Parameter will be OFF.
4.5.9.4. Symbolic Names deviations
The Symbolic names are generated for following parameters:
1.CddFsiRxHwUnitId : Symbolic name is generated as CddFsiRxConf_CddFsiRxHwUnit_<CddFsiRxHwUnitId>
4.5.10. Examples
4.5.10.1. Overview
The CDD FSI module example application UT testing is done together with CDD FSI TX and CDD FSI RX modules (loop back test) and the configurations are as follows:
FSI TX HW UNIT 1 and FSI RX HW UNIT 1 are configured
SDR-INTERRUPT MODE-16 WORDS-SW TRIGGER: (HW UNIT 1)
Initialize the Transmitter and Receiver.
Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().
Load the Transmission Buffer with Data using API Cdd_FsiTx_BufferLoad().
Transmission and Reception are initiated using API Cdd_FsiTx_Transmit() and Cdd_FsiTx_Receive() respectively with SW Trigger, 16 words data length, Single Data Rate(Onlt TXD0 and RXD0) and in Interrupt Mode.
Wait till reception completes and notification prints.
Once test is completed successfully, verify the data in destination Buffer.
SDR-DMA MODE-16 WORDS-SW TRIGGER: (HW UNIT 1)
Initialize the Transmitter and Receiver.
Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().
Load the Transmission Buffer with Data using API Cdd_FsiTx_BufferLoad().
Transmission and Reception are initiated using API Cdd_FsiTx_Transmit() and Cdd_FsiTx_Receive() respectively with SW Trigger, 16 words data length, Single Data Rate(Onlt TXD0 and RXD0) and in Interrupt Mode.
Wait till reception completes and notification prints.
Once test is completed successfully, verify the data in destination Buffer.
SDR-POLLING MODE-16 WORDS-SW TRIGGER: (HW UNIT 0)
Initialize the Transmitter and Receiver.
Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().
Load the Transmission Buffer with Data using API Cdd_FsiTx_BufferLoad().
Transmission and Reception are initiated using API Cdd_FsiTx_Transmit() and Cdd_FsiTx_Receive() respectively with SW Trigger, 16 words data length, Single Data Rate(Onlt TXD0 and RXD0) and in Polling Mode.
Wait till reception completes and notification prints.
Once test is completed successfully, verify the data in destination Buffer.
4.5.10.2. Setup required to run example
None
4.5.10.3. How to run examples
CDD FSI RX example application demonstrating the CDD FSI RX driver features is in folder <MCAL_ROOT>/examples/FsiRx. This application can be built from the root folder by giving gmake -S fsirx_app PLATFORM=am263.
Once the build is completed we get a binary file,which is loaded in our controller and executed.
4.5.10.4. Sample Log
FSIRX_APP
: Sample Application - STARTS !!!
Cdd Fsi Tx driver Version Info
Vendor ID : 44
Module ID : 255
SW Major Version : 9
SW Minor Version : 2
SW Patch Version : 0
FSIRX_APP: Ping Frame Transmission completed!!
FSIRX_APP: BufferLoad completed!!
FSIRX_APP: Frame 1 reception completed!!
FSIRX_APP: BufferLoad completed!!
FSIRX_APP: Frame 2 reception completed!!
FSIRX_APP: BufferLoad completed!!
FSIRX_APP: Frame 3 reception completed!!
FSIRX_APP: BufferLoad completed!!
FSIRX_APP: Frame 4 reception completed!!
FSIRX_APP: BufferLoad completed!!
FSIRX_APP: Frame 5 reception completed!!
FSIRX_APP: All frames received!!
FSIRX_APP: Cdd Fsi driver de initialized!!
FSI Stack Usage: 840 bytes
All tests have passed
FSIRX_APP: Sample Application - Completed. !!!
4.5.10.5. File Structure
📦AM263x
┣ 📂build
┣ 📂mcal
┃ ┣ 📂examples
┃ ┃ ┣ 📂FsiRx
┃ ┃ ┃ ┣ 📂soc
┃ ┃ ┃ ┣ 📜fsirxapp.c : Contains Fsi Rx test example
┃ ┃ ┃ ┣ 📜fsirxapp.h : FsiRx App example header file
┃ ┃ ┃ ┗ 📜Makefile
┃ ┣ 📂examples_config
┃ ┃ ┣ 📂FsiRx_Demo_Cfg
┃ ┃ ┃ ┗ 📂soc
┃ ┃ ┃ ┃ ┣ 📂am263
┃ ┃ ┃ ┃ ┃ ┗ 📂r5f0_0
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂include
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗📜Cdd_FsiRx_Cfg.h : Contains the configuration parameters
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂src
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Cfg.c : Contains all Pre-Compile Configured parameters
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Cdd_FsiRx_PBcfg.c : Contains all Post-Build Configured parameters
┃ 📂mcal_config
┃ 📂mcal_docs
┗ 📜README.txt