4.4. CDD_FSIRX Module
4.4.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.4.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 |
AM263Px |
4.4.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.25 CDD FSI (CDD Module) in AUTOSAR architecture
4.4.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.4.3.2. CDD FSI RX Driver Architecture

Fig. 4.26 CDD FSI RX Hardware Overview
4.4.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.4.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.4.3.5. Assumptions
None
4.4.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.4.3.6.1. Design overview of CDD FSI Receiver (Link to the Architecture document and Design Document)
Will be available in future release.
4.4.4. Hardware Features
CDD FSI Rx features:
4.4.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.4.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.4.4.3. CDD FSI RX Not Supported Features
Double Data Rate(DDR)
4.4.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.4.4.5. Configurable Development Error
User configurable error check to report development errors.
4.4.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.4.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.4.4.8. Configurable Reception Modes
The FSI Receiver can Receive data in three different Modes.
Interrupt Mode.
Polling Mode.
DMA Mode.
4.4.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.4.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.4.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.4.5. Source files
Description of static files is provided below:
📦AM263Px
┣ 📂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.27 CDD FSI RX header file include structure_Cdd_Fsi_Am263P
4.4.6. Module requirements
Will be updated in future release:
4.4.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.4.6.2. Scheduling
4.4.6.2.1. SchM
Beside the OS the BSW Scheduler provides functions that module CDD FSI RX calls at begin and end of critical sections.
4.4.6.2.2. Critical Sections
There is only one kind of critical sections in this driver. Within these sections the reception of data from Rx Buffer to the Destination Buffer will take place. This is handled internally in the CDD FSI RX driver by invoking SchM_Enter_Cdd_FsiRx_FSI_RX_EXCLUSIVE_AREA_0() /SchM_Exit_Cdd_FsiRx_FSI_RX_EXCLUSIVE_AREA_0()
4.4.6.3. Error handling
4.4.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.4.6.4. Error codes
4.4.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.4.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.4.7. Used resources
4.4.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.4.8. Integration description
4.4.8.1. The CDD FSI RX Driver dependent modules
4.4.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.28 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.29 FSI Rx Interrupt configuration

Fig. 4.30 CDD FSI RX Interrupt selection
4.4.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.31 CDD FSI RX module DMA channel ID selection
4.4.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.4.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.4.8.1.5. Callback Functions
The CDD FSI RX driver does not provide any call back functions.
4.4.8.1.5.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.4.8.2. Multi-core and Resource allocator
Not Supported
4.4.9. Configuration
4.4.9.1. Configuration Variants
The FSI Rx can be configured as Post-Build or Pre-Compile variant, using EB tresos tool.
Variants |
Generated Files |
---|---|
PostBuild |
CddFsiRx_PBcfg.c , CddFsiRx_Cfg.h |
Pre-Compile |
CddFsiRx_Cfg.c , CddFsiRx_Cfg.h |
Note
The DDR (Double Data Rate) is not supported.So CddFsiRxMultiLaneEnable Parameter will be OFF.
4.4.9.2. Parameter Description
Parameters |
Description |
Default Value |
Range |
Unit |
---|---|---|---|---|
CddFsiRxResetNotification |
Callback notification to Application to reset the driver |
NA |
NA |
FUNCTION |
CddFsiRxOverRunNotification |
Callback notification to Application that an over-run occured in Rx buffer |
NA |
NA |
FUNCTION |
CddFsiRxUnderRunNotification |
Callback notification to Application that an under-run occured in Rx buffer |
NA |
NA |
FUNCTION |
CddFsiRxPingFrameReceivedNotification |
Callback notification to Application that a ping frame has been received |
NA |
NA |
FUNCTION |
CddFsiRxDataFrameReceivedNotification |
Callback notification to Application that a data frame has been received |
NA |
NA |
FUNCTION |
CddFsiRxHwUnitId |
Numeric ID of the Rx HW Unit. For the ping received frame interrupt the rx hw baseadress is needed.for that listing out the id as well |
CDD_FSI_RX_HWUNIT_0 |
CDD_FSI_RX_HWUNIT_0 CDD_FSI_RX_HWUNIT_1 CDD_FSI_RX_HWUNIT_2 CDD_FSI_RX_HWUNIT_3 |
ENUMERATION |
CddFsiRxPingWdgTimerTimeout |
Timeout value for CddFsiRx Ping Wdg Timer |
20010 |
0- 4294967295 |
INTEGER |
CddFsiRxFrameWdgTimerTimeout |
Timeout value for CddFsiRx Frame Wdg Timer |
10010 |
0-4294967295 |
INTEGER |
CddFsiRxReceptionMethod |
Selects the method of frame reception |
CDD_FSI_RX_INTERRUPT_MODE |
CDD_FSI_RX_INTERRUPT_MODE CDD_FSI_RX_POLLING_MODE CDD_FSI_RX_DMA_MODE |
ENUMERATION |
CddFsiRxDmaReference |
Reference to the DMA Group Channel |
ASPathDataOfSchema:/TI_AM263Px/Cdd_Dma/CddDmaDriverHandler |
ASPathDataOfSchema:/TI_AM263Px/Cdd_Dma/CddDmaDriverHandler |
REFERENCE |
CddFsiRxDeInitApi |
Adds / removes the service CddFsiRx_DeInit() from the code |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxDevErrorDetectApi |
Switches the development error detection and notification on or off |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxTypeofInterruptFunction |
Type of ISR function |
CDD_FSI_RX_ISR_CAT1 |
CDD_FSI_RX_ISR_VOID CDD_FSI_RX_ISR_CAT1 CDD_FSI_RX_ISR_CAT2 |
ENUMERATION |
CddFsiRxInterruptVector |
Type of ISR function |
CDD_FSI_RX_INT1 |
CDD_FSI_RX_INT1 CDD_FSI_RX_INT2 |
ENUMERATION |
CddFsiRxDeviceVariant |
Select SOC variant .This parameter shall be used by driver to impose device specific constraints. The user guide shall detail the device specific constraints |
AM263Px |
AM263Px |
ENUMERATION |
CddFsiRxMaxHwUnitCount |
Maximum hw count across all hwunits configured |
1 |
1 to 4 |
INTEGER |
CddFsiRxMaxDmaChannelId |
Number of actual DMA channels. This is of type published information and not editable |
63 |
NA |
INTEGER |
CddFsiRxNotifyCapability |
Determines, if the notification mechanism (the functions to enable and disable the notifications) is available at runtime |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxPingWdgTimeoutInterruptEvent |
Enables the interrupt Event for Ping Watch Dog Timer |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxFrameWdgTimeoutInterruptEvent |
Enables the interrupt Event for Frame Watch Dog Timer |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxCRCErrorInterruptEvent |
Enables the interrupt Event for CRC Error |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxBufferOverRunInterruptEvent |
Enables the interrupt Event for Rx Buffer Over Run |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxUnderRunInterruptEvent |
Enables the interrupt Event for Rx Buffer UnderRun |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxPingFrameReceivedInterruptEvent |
Enables the interrupt Event for Ping Frame Reception |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxDataFrameReceivedInterruptEvent |
Enables the interrupt Event for Data Frame Reception |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxMainApi |
Adds / removes the service CddFsiRx_Main() and from the code |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxResetDriver |
Adds / removes the service Cdd_FsiRx_ResetDriver() and from the code |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxGetVersionInfoApi |
Adds / removes the service CddFsiRx_GetVersionInfo() from the code |
TRUE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxDMAEnable |
Enables DMA Access method for CddFsiRx Reception |
FALSE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxMultiLaneEnable |
Enables MultiLane Transmission for CddFsiRx |
FALSE |
TRUE/FALSE |
BOOLEAN |
CddFsiRxOsCounterRef |
This parameter contains a reference to the OsCounter, which is used by the CddFsiRx driver |
ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter |
ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter |
REFERENCE |
CddFsiRxDefaultOSCounterId |
Default Os Counter Id if node reference to OsCounter ref CddFsiRxOsCounterRef is not set |
0 |
0 - 16 |
INTEGER |
4.4.9.3. Symbolic Names deviations
The Symbolic names are generated for following parameters:
1.CddFsiRxHwUnitId : Symbolic name is generated as CddFsiRxConf_CddFsiRxHwUnit_<CddFsiRxHwUnitId>
4.4.9.4. Configuration rules and constraints to enable plausibility checks
Will be updated in future release:
4.4.10. Examples
4.4.10.1. Overview
Will be updated in future release:
4.4.10.2. Setup required to run example
Will be updated in future release:
4.4.10.3. How to run examples
4.4.10.3.1. Steps to build and run example
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=am263px.
Once the build is completed we get a binary file,which is loaded in our controller and executed.
4.4.10.3.2. Document external set up Information
None
4.4.10.3.3. Configuration used to test
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 Transmition 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 Transmition 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 Transmition 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.4.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.4.10.5. File Structure
📦AM263Px
┣ 📂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
┃ ┃ ┃ ┃ ┣ 📂am263px
┃ ┃ ┃ ┃ ┃ ┗ 📂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
4.4.10.6. Test Report
Please refer AM26x CDD FSI Driver Test Case Report as part of CSP provided in the release package.