4.3. CDD_FSI¶
4.3.1. About This Document¶
Document Title |
User Guide of CDD FSI Driver |
Document Version |
Version 1.2 |
Company |
Texas Instruments |
Document Name |
CDD FSI User Guide |
4.3.2. Document Revision History¶
Version |
Date |
Revision History |
Status |
---|---|---|---|
Version 1.0 |
28 Mar 2022 |
Initial Version. |
Approved |
Version 1.1 |
25 Aug 2023 |
Document release version column removed |
Approved |
Version 1.2 |
29 Apr 2024 |
Document release version column removed |
Approved |
4.3.3. Table of contents¶
4.3.4. Acronyms and Definitions¶
Acronyms and Definitions used are presented in below table.
Acronyms |
Descriptions |
---|---|
BSW |
Basic Software |
AUTOSAR |
Automotive Open System Architecture |
CDD |
Complex Device Driver |
FSI |
Fast Serial Interface |
DDR |
Double Data Rate |
SDR |
Single Data Rate |
CRC |
Cyclic Redundancy Check |
HW |
Hardware |
SW |
Software |
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.3.5. Functional Overview¶
This document describes CDD FSI Driver functionality, its application interfaces and configuration details as per AUTOSAR version 4.3.1 .
4.3.5.1. Brief 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.
![../_images/fsi_image2.png](../_images/fsi_image2.png)
Figure 1: CDD FSI (CDD Module) in AUTOSAR architecture
4.3.5.2. Brief Overview of CDD FSI Transmitter¶
The CDD FSI transmitter module handles the framing of data, CRC generation, and signal generation of TXCLK, TXD0, and TXD1, as well as interrupt generation. The operation of the transmitter core is controlled and configured through programmable control registers. The transmitter control registers allow the CPU to program, control, and monitor the operation of CDD the FSI receiver. The transmit data buffer is accessible by the CPU and the DMA.
4.3.5.2.1. CDD FSI TX Driver Architecture¶
Supported AUTOSAR Release |
4.3.1 |
Supported Configuration Variants |
Pre-Compile, Post-build |
Vendor ID |
CDD_FSI_TX_VENDOR_ID (44) |
Module ID |
CDD_FSI_TX_MODULE_ID (235) |
Supported Platform |
AM263x |
![../_images/fsitx_image3.png](../_images/fsitx_image3.png)
Figure 2: CDD FSI TX Hardware Overview.
4.3.5.2.2. Initialization¶
Cdd_FsiTx_Init() has to be called to initialize the CDD FSI TX driver before initiating a transmission. This will also set the CDD FSI Transmitter Hardware Unit to CDD_FSI_TX_IDLE STATE.
4.3.5.2.3. States¶
There are 2 states in which each CDD FSI Transmitter HW Unit can be:
CDD_FSI_TX_UNINIT: This is the state before the Fsi Transmitter is initialized.
CDD_FSI_TX_IDLE: This is the state before starting before starting a transmission. The transmitter becomes idle only after it gets initialized.
4.3.5.3. Features Supported and Not Supported¶
CDD FSI features:
IP Supported Features |
CDD FSI TX Supported Features |
CDD FSI TX Not Supported Features |
|
---|---|---|---|
Automated ping frame generation |
Automated ping frame generation |
||
Externally triggered ping frames |
Externally triggered ping frames |
||
Externally triggered data frames |
Externally triggered data frames |
||
Software-configurable frame lengths |
Software-configurable frame lengths |
||
Data buffer underrun and overrun detection |
Data buffer underrun and overrun detection |
||
DMA support |
DMA support |
4.3.5.4. Assumptions¶
None
4.3.5.5. Limitations¶
TXCLK which is derived from PLL Clock should never be configured to be faster than SYSCLK/2.
Data Frame Configuration of Transmitter Module should be in sync with the receiver. (frame type, data width ).
4.3.5.6. Design overview of Fsi Transmitter (Link to the Architecture document and Design Document)¶
Will be available in future release.
4.3.5.7. File Structure of CDD FSI TX Driver¶
Description of static files is provided below:
Static source and header files |
Description |
---|---|
CddFsiTx.h |
Contains the API’s of the CDD FSI TX driver to be used by upper layers. |
CddFsiTx.c |
Contains the implementation of the API’s for CDD FSI TX driver. |
CddFsiTx_Irq.c and CddFsiTx_Irq.h |
Contains ISR function definitions |
CddFsiTx_Types.h |
Contains the cdd data types and internal macro definitions. |
CddFsiTx_Priv.c and CddFsiTx_Priv.h |
Contains Internal functions definition of CDD FSI TX driver. |
CddFsiTx_Platform.c and CddFsiTx_Platform.h |
Contains device specific a function definition, data types and definitions. |
Description of generated files is provided below:
Plugin Files |
Descriptions |
---|---|
CddFsiTx_Cfg.h |
Contains the Precompile switches, Symbolic names of hardware units and channels Configured maximum number hardware units |
CddFsiTx_PBcfg.c |
Contains all channels Post-Build Configured parameters |
CddFsiTx_Cfg.c |
Contains all channels Pre-Compile Configured parameters |
![../_images/fsitx_image4.png](../_images/fsitx_image4.png)
Figure 3: CDD FSI TX header file include structure
4.3.6. FST TX Deviations to requirements¶
4.3.6.1. Module Requirements¶
Will be updated in future release
4.3.6.2. Deviation of requirements against CDD specification requirements¶
None
4.3.7. FSI TX Integration Details¶
4.3.7.1. Dependency on other Software Modules¶
4.3.7.1.1. The CDD FSI TX Driver dependent modules¶
4.3.7.1.1.1. MCU¶
The CDD FSI TX modules expects the MCU module to be powered on. The CDD_FSI_TX module depends on MCU module for PLL Clock initialization and crossbar interrupt mapping of CDD FSI TX interrupts depending on the Hardware unit being configured. Suppose the Hardware Unit 1 is configured for CDD FSI TX module:
![../_images/fsitx_image5.png](../_images/fsitx_image5.png)
Figure 4: CDD FSI TX Hardware container
Since CDD FSI TXCLK is driven by PLL, it is configured using CONTROLSS register and the the MCU module container McuClockSettingConfiguration should be configured as shown in below figure:
![../_images/fsitx_image6.png](../_images/fsitx_image6.png)
Figure 5: Mcu_Clock_Configuration container
Similarly, the crossbar interrupts also needs to be mapped in MCU module according to HW unit and interrupts being required.
The CDD FSI TX interrupts needs to be mapped to the corresponding cross bar interrupt required. For each CDD FSI TX instance there will be two interrupt vectors. INT1 and INT2. For each interrupt vector separate Crossbar pins should be selected in mcu configuration.
![../_images/fsitx_image7.png](../_images/fsitx_image7.png)
Figure 6: CDD FSI TX Interrupt configuration.
4.3.7.1.1.2. DMA¶
The CDD FSI TX Modules requires DMA module to be configured, when CDD FSI TX transmission is configured in DMA mode.
CDD FSI TX Module Configuration:
The CDD FSI TX module parameter CddFsiTxDMAEnable should be configured for TRUE.
- The CDD FSI TX HW Unit parameter CddFsiTxTransmissionMethod should be configured with CDD_FSI_TX_DMA_MODE.
The DMA supports CDD FSI TX in interrupt mode only.
The transmission mode in configurator should be CDD_FSI_TX_DMA_MODE and interrupt should be enabled inside the code.
DMA module Configuration:
Set up two DMA channels to be triggered by the same CDD FSI transmitter and DMA trigger.
Configure one channel to fill the transmit buffer.
Configure the other channel to set the frame tag and user data fields.
Configure the DMA handleId and other parameters for each CDD FSI TX instance inside DMA configurator.
The DMA Configuration reference has given inside CDD FSI TX configurator to select the handleId for each TX Instance.
![../_images/fsitx_image8.png](../_images/fsitx_image8.png)
Figure 7: CDD FSI TX module DMA channel ID selection.
4.3.7.1.2. Error Handling module¶
4.3.7.1.2.1. DET¶
The module CDD FSI TX 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 CddFsiTxDevErrorDetect. (The macro CDD_FSI_TX_DEV_ERROR_DETECT = STD_ON generated in file CddFsiTx_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:
Error Code |
Error Macro |
Description |
---|---|---|
[0x01] |
CDD_FSI_TX_E_UNINIT |
Error code indicating the CDD FSI TX is uninitialized. |
[0x02] |
CDD_FSI_TX_E_INVALID_EVENT |
Error code indicating an invalid event. |
[0x03] |
CDD_FSI_TX_E_PARAM_POINTER |
Error code indicating invalid parameter pointer. |
[0x04] |
CDD_FSI_TX_E_PARAM_LENGTH |
Error code indicating Service called with invalid length. |
[0x05] |
CDD_FSI_TX_E_INVALID_HWUNIT |
Error code indicating invalid Number of CDD FSI TX HwUnit. |
4.3.7.1.2.2. DEM¶
The extended run time errors reported to DEM module are described in the following table:
Error Code |
Error Macro |
Description |
---|---|---|
Assigned by DEM |
CDD_FSI_TX_E_BUFFER_UNDERRUN |
This error is raised when the Transmit Buffer Undergoes to an underrun. |
Assigned by DEM |
CDD_FSI_TX_E_BUFFER_OVERRUN |
This error is raised when the Transmit Buffer Undergoes to an overrun. |
4.3.7.1.2.3. Callback Functions¶
The CDD FSI TX driver does not provide any call back functions.
4.3.7.1.2.4. Callback Notification¶
Notifications: Cdd_FsiTx_BufferNotifyType: This Cdd_FsiTx_BufferNotifyType which is defined in CddFsiTx_Types.h file. This is called to notify the HwUnit about the completion of the transmission and availability of Tx Buffer to transmit another frame.
4.3.7.2. Hardware - Software - ISR API name mapping¶
For interrupt notification, ISR’s are provided in CDD FSI TX driver.There are two ISRs for each CDD FSI TX hardware unit. 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 CddFsiTx_Irq.h file. Following are the ISRs for each CDD FSI TX hardware units:
Hardware Unit |
ISR |
---|---|
CDD_FSI_TX_HW_UNIT_0 |
CddFsiTx_FSIINT1_IrqUnit0() |
CddFsiTx_FSIINT2_IrqUnit0() |
|
CDD_FSI_TX_HW_UNIT_1 |
CddFsiTx_FSIINT1_IrqUnit1() |
CddFsiTx_FSIINT2_IrqUnit1() |
|
CDD_FSI_TX_HW_UNIT_2 |
CddFsiTx_FSIINT1_IrqUnit2() |
CddFsiTx_FSIINT2_IrqUnit2() |
|
CDD_FSI_TX_HW_UNIT_3 |
CddFsiTx_FSIINT1_IrqUnit3() |
CddFsiTx_FSIINT2_IrqUnit3() |
|
DMA Mode ISR |
CDD_EDMA_lld_transferCompletionMasterIsrFxn() |
4.3.7.3. Scheduling Strategy¶
4.3.7.3.1. SchM¶
Beside the OS, the BSW Scheduler provides functions that module CDD FSI TX calls at beginning and end of critical sections.
4.3.7.3.2. Critical Sections¶
There is only one kind of critical sections in this driver. Within these sections the transmission of data from Tx Buffer to the Rx Buffer will takeplace.This is handled internally in the CDD FSI TX driver by invoking SchM_Enter_Cdd_FsiTx_FSI_TX_EXCLUSIVE_AREA_0() / SchM_Exit_Cdd_FsiTx_FSI_TX_EXCLUSIVE_AREA_0().
4.3.8. FST TX API’s Description¶
4.3.8.1. Description of the API’s¶
Please refer MCAL_AM263_ApiGuide.CHM document provided as part of CSP.
4.3.8.2. CDD FSI TX API’s with Service ID¶
The following table presents the service IDs and the related services:
CDD FSI TX API’s Supported:
Service ID |
Service |
---|---|
0x01 |
Cdd_FsiTx_Init |
0x02 |
Cdd_FsiTx_GetVersionInfo |
0x03 |
Cdd_FsiTx_Ping |
0x04 |
Cdd_FsiTx_BufferLoad |
0x05 |
Cdd_FsiTx_Transmit |
0x06 |
Cdd_FsiTx_GetStatus |
0x07 |
Cdd_FsiTx_MainFunction |
0x08 |
Cdd_FsiTx_DeInit |
0x09 |
Cdd_FsiTx_Reset |
4.3.9. FSI TX Configuration Description¶
4.3.9.1. Configuration Variants¶
The CDD FSI TX can be configured as Post-Build or Pre-Compile variant, using EB tresos tool.
Variants |
Generated Files |
---|---|
PostBuild |
CddFsiTx_PBcfg.c , CddFsiTx_Cfg.h |
Pre-Compile |
CddFsiTx_Cfg.c , CddFsiTx_Cfg.h |
Note
In Cdd_FsiTx Plugin the parameter “CddFsiTxDataLength” is valid only when the previous parameter CddFsiTxDataFrameValue = CDD_FSI_TX_DATA_N_WORD. For all other values of “CddFsiTxDataFrameValue” the HW will have fixed word length to configure.
4.3.9.2. Parameter Description¶
Will be updated in future release
4.3.9.3. Symbolic Names deviations¶
The Symbolic names are generated for following parameters:
CddFsiTxHwUnitId : Symbolic name is generated as CddFsiTxConf_CddFsiTxHwUnit_<CddFsiTxHwUnitId>
4.3.9.4. Configuration rules and constraints to enable plausibility checks¶
Will be updated in future release
4.3.10. FSI TX Memory Mapping¶
Memory Mapping Sections |
CDD_FSI_TX_CODE |
CDD_FSI_TX_CODE_ISR |
CDD_FSI_TX_VAR_NO_INIT |
CDD_FSI_TX_VAR |
CDD_FSI_TX_CONST |
CDD_FSI_TX_PBCFG |
---|---|---|---|---|---|---|
CDD_FSI_TX_START_SEC_VAR_INIT_UNSPECIFIED(.bss) |
x |
|||||
CDD_FSI_TX_STOP_SEC_VAR_INIT_UNSPECIFIED |
x |
|||||
CDD_FSI_TX_START_SEC_CONFIG_DATA (.const) |
x |
|||||
CDD_FSI_TX_STOP_SEC_CONFIG_DATA |
x |
|||||
CDD_FSI_TX_START_SEC_CODE(.text) |
x |
|||||
CDD_FSI_TX_STOP_SEC_CODE |
x |
|||||
CDD_FSI_TX_START_SEC_VAR_INIT_32(.bss) |
x |
|||||
CDD_FSI_TX_STOP_SEC_VAR_INIT_32 |
x |
|||||
CDD_FSI_TX_START_SEC_VAR_NO_INIT_UNSPECIFIED(.data) |
x |
|||||
CDD_FSI_TX_STOP_SEC_VAR_NO_INIT_UNSPECIFIED |
x |
|||||
CDD_FSI_TX_START_SEC_ISR_CODE |
x |
|||||
CDD_FSI_TX_STOP_SEC_ISR_CODE |
x |
4.3.11. FSI TX Memory footprint¶
Please refer Memory Footprint for more details.
4.3.11.1. Brief 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.3.11.1.1. CDD FSI RX Driver Architecture¶
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 (234) |
Supported Platform |
AM263x |
![../_images/fsirx_image2.png](../_images/fsirx_image2.png)
Figure 8: CDD FSI RX Hardware Overview.
4.3.11.1.2. 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.3.11.1.3. 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 before starting a reception. The receiver becomes idle only after it gets initialized.
4.3.11.2. Features Supported and Not Supported¶
CDD FSI RX features:
4.3.11.3. Assumptions¶
None
4.3.11.4. 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 ).
4.3.11.5. Design overview of CDD FSI Receiver (Link to the Architecture document and Design Document)¶
Will be available in future release.
4.3.11.6. File Structure of CDD FSI RX Driver¶
Description of static files is provided below:
Static source and header files |
Description |
---|---|
CddFsiRx.h |
Contains the APIs of the CDD FSI RX driver to be used by upper layers. |
CddFsiRx.c |
Contains the implementation of the APIs for CDD FSI RX driver. |
CddFsiRx_Irq.c and CddFsiRx_Irq.h |
Contains ISR function definitions. |
CddFsiRx_Types.h |
Contains the CDD data types and internal macro definitions. |
CddFsiRx_Priv.c and CddFsiRx_Priv.h |
Contains Internal functions definition of Fsi Rx driver. |
CddFsiRx_Platform.c and CddFsiRx_Platform.h |
Contains device specific a function definition, data types and definitions. |
Description of generated files is provided below:
Plugin Files |
Descriptions |
---|---|
CddFsiRx_Cfg.h |
Contains the Precompile switches, Symbolic names of hardware units and channels Configured maximum number hardware units |
CddFsiRx_PBcfg.c |
Contains all channels Post-Build Configured parameters |
CddFsiRx_Cfg.c |
Contains all channels Pre-Compile Configured parameters |
![../_images/fsirx_image4.png](../_images/fsirx_image4.png)
Figure 9: CDD FSI RX header file include structure_Cdd_Fsi_Am263
4.3.12. FSI RX Deviations to requirements¶
4.3.12.1. Module Requirements¶
Will be updated in future release
4.3.12.2. Deviation of requirements against CDD specification requirements¶
None
4.3.13. FSI RX Integration Details¶
4.3.13.1. Dependency on Other Software Modules¶
4.3.13.1.1. The CDD FSI RX Driver dependent modules¶
4.3.13.1.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:
![../_images/fsirx_image6.png](../_images/fsirx_image6.png)
Figure 10: 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.
![../_images/fsirx_image3.png](../_images/fsirx_image3.png)
Figure 11: FSI Rx Interrupt configuration.
![../_images/fsirx_image5.png](../_images/fsirx_image5.png)
Figure 12: CDD FSI RX Interrupt selection.
4.3.13.1.1.2. DMA¶
The CDD FSI RX Modules requires DMA module to be configured, when CDD FSI RX reception is configured in DMA mode.
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..
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.
![../_images/fsirx_image7.png](../_images/fsirx_image7.png)
Figure 13: CDD FSI RX module DMA channel ID selection.
4.3.13.1.2. Error Handling module¶
4.3.13.1.2.1. DET¶
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:
Error Code |
Error Macro |
Description |
---|---|---|
[0x01] |
CDD_FSI_RX_E_UNINIT |
Error code indicating the CDD FSI RX is uninitialized. |
[0x02] |
CDD_FSI_RX_E_INVALID_EVENT |
Error code indicating an invalid event. |
[0x03] |
CDD_FSI_RX_E_PARAM_POINTER |
Error code indicating invalid parameter pointer. |
[0x04] |
CDD_FSI_RX_E_ALREADY_INITIALIZED |
API service called with invalid ramsection parameter. |
[0x05] |
CDD_FSI_RX_E_PARAM_LENGTH |
Error code indicating Service called with invalid length. |
[0x06] |
CDD_FSI_RX_E_INVALID_HW_UNIT |
Error code indicating invalid Number of FsiRx HwUnit. |
4.3.13.1.2.2. DEM¶
The extended run time errors reported to DEM module are described in the following table:
Error Code |
Error Macro |
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 . |
Assigned by DEM |
CDD_FSI_RX_E_BUFFER_OVERRUN |
This error is raised when the Receive Buffer Undergoes to an overrun. |
4.3.13.1.2.3. Callback Functions¶
The CDD FSI RX driver does not provide any call back functions.
4.3.13.1.2.4. 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.3.13.2. Hardware - Software - ISR API name mapping¶
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() |
CddFsiRx_FSIINT2_IrqUnit0() |
|
CDD_FSI_RX_HW_UNIT_1 |
CddFsiRx_FSIINT1_IrqUnit1() |
CddFsiRx_FSIINT2_IrqUnit1() |
|
CDD_FSI_RX_HW_UNIT_2 |
CddFsiRx_FSIINT1_IrqUnit2() |
CddFsiRx_FSIINT2_IrqUnit2() |
|
CDD_FSI_RX_HW_UNIT_3 |
CddFsiRx_FSIINT1_IrqUnit3() |
CddFsiRx_FSIINT2_IrqUnit3() |
|
DMA Mode ISR |
CddFsiRx_DMA_IrqChannel() |
4.3.13.3. Scheduling Strategy¶
4.3.13.3.1. SchM¶
Beside the OS the BSW Scheduler provides functions that module CDD FSI RX calls at begin and end of critical sections.
4.3.13.3.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 takeplace. 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.3.14. FSI RX API Description¶
4.3.14.1. Description of the CDD FSI RX API’s¶
Will be updated in future release.
4.3.14.2. CDD FSI RX API’s with Service ID¶
The following table presents the service IDs and the related services: CDD FSI RX API’s Supported:
Service ID |
Service |
---|---|
0x01 |
Cdd_FsiRx_Init |
0x02 |
Cdd_FsiRx_GetVersionInfo |
0x03 |
Cdd_FsiRx_MainFunction |
0x04 |
Cdd_FsiRx_DeInit |
0x05 |
Cdd_FsiRx_GetStatus |
0x06 |
Cdd_FsiRx_Reset |
0x07 |
Cdd_FsiRx_SetUpBuffer |
4.3.15. FSI RX Configuration Description¶
4.3.15.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 |
4.3.15.2. Parameter Description¶
Will be updated in future release
4.3.15.3. Symbolic Names deviations¶
The Symbolic names are generated for following parameters: #. CddFsiRxHwUnitId : Symbolic name is generated as CddFsiRxConf_CddFsiRxHwUnit_<CddFsiRxHwUnitId>
4.3.15.4. Configuration rules and constraints to enable plausibility checks¶
Will be updated in future release
4.3.16. FSI RX Memory Mapping¶
Memory Mapping Sections |
CDD_FSI_RX_CODE |
CDD_FSI_RX_CODE_ISR |
CDD_FSI_RX_VAR_NO_INIT |
CDD_FSI_RX_VAR |
CDD_FSI_RX_CONST |
CDD_FSI_RX_PBCFG |
---|---|---|---|---|---|---|
CDD_FSI_RX_START_SEC_VAR_INIT_UNSPECIFIED(.bss) |
x |
|||||
CDD_FSI_RX_STOP_SEC_VAR_INIT_UNSPECIFIED |
x |
|||||
CDD_FSI_RX_START_SEC_CONFIG_DATA (.const) |
x |
|||||
CDD_FSI_RX_STOP_SEC_CONFIG_DATA |
x |
|||||
CDD_FSI_RX_START_SEC_CODE(.text) |
x |
|||||
CDD_FSI_RX_STOP_SEC_CODE |
x |
|||||
CDD_FSI_RX_START_SEC_VAR_INIT_32(.bss) |
x |
|||||
CDD_FSI_RX_STOP_SEC_VAR_INIT_32 |
x |
|||||
CDD_FSI_RX_START_SEC_VAR_NO_INIT_UNSPECIFIED(.data) |
x |
|||||
CDD_FSI_RX_STOP_SEC_VAR_NO_INIT_UNSPECIFIED |
x |
|||||
CDD_FSI_RX_START_SEC_ISR_CODE |
x |
|||||
CDD_FSI_RX_STOP_SEC_ISR_CODE |
x |
4.3.17. FSI RX Memory footprint¶
Please refer Memory Footprint for more details.
4.3.18. Performance¶
Not Applicable
4.3.19. Example Usage¶
4.3.19.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=am263. Once the build is completed we get a binary file,which is loaded in our controller and executed.
4.3.19.2. External set up Information¶
None
4.3.19.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.
DDR-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 and DDR(configure both TXD0 and TXD1, RXD0 and RXD1) 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.
DDR-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 and DDR(configure both TXD0 and TXD1, RXD0 and RXD1) 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.3.19.4. Example Logs¶
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.3.20. FAQ’s¶
None
4.3.21. Test Report (Link to test report)¶
Will be updated in future release.
4.3.22. References¶
4.3.23. TI Disclaimer¶
Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product or service without notice, and advise customers to obtain the latest version of relevant information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to the terms and conditions of sale supplied at the time of order acknowledgment, including those pertaining to warranty, patent infringement, and limitation of liability.
TI warrants performance of its products to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements.
Customers are responsible for their applications using TI components. In order to minimize risks associated with the customer’s applications, adequate design and operating safeguards must be provided by the customer to minimize inherent or procedural hazards.
TI assumes no liability for applications assistance or customer product design. TI does not warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right of TI covering or relating to any combination, machine, or process in which such products or services might be or are used. TI’s publication of information regarding any third party’s products or services does not constitute TI’s approval, license, warranty or endorsement thereof.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations and notices. Representation or reproduction o f this information with alteration voids all warranties provided for an associated TI product or service, is an unfair and deceptive business practice, and TI is not responsible nor liable for any such use.
Resale of TI’s products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service, is an unfair and deceptive business practice, and TI is not responsible nor liable for any such use.
Also see: Standard Terms and Conditions of Sale for Semiconductor Products https://www.ti.com/sc/docs/stdterms.htm
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265