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

  1. Acronyms and Definitions

  2. Functional Overview

  3. FST TX Deviations to requirements

  4. FSI TX Integration Details

  5. FST TX API’s Description

  6. FSI TX Configuration Description

  7. FSI TX Memory Mapping

  8. FSI TX Memory footprint

  9. FSI RX Deviations to requirements

  10. FSI RX Integration Details

  11. FSI RX API Description

  12. FSI RX Configuration Description

  13. FSI RX Memory Mapping

  14. FSI RX Memory footprint

  15. Performance

  16. Example Usage

  17. FAQ’s

  18. Test Report (Link to test report)

  19. References

  20. TI Disclaimer

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

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

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:

  1. CDD_FSI_TX_UNINIT: This is the state before the Fsi Transmitter is initialized.

  2. 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

  1. TXCLK which is derived from PLL Clock should never be configured to be faster than SYSCLK/2.

  2. Data Frame Configuration of Transmitter Module should be in sync with the receiver. (frame type, data width ).

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

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

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

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

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.

  1. 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.

  2. 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

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:

  1. 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

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:

  1. CDD_FSI_RX_UNINIT: This is the state before the CDD FSI Receiver is initialized.

  2. 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:

IP Supported Features

CDD FSI RX Supported Features

Software-configurable frame lengths

../_images/fsi_image3.png

Ping frame watchdog

../_images/fsi_image3.png

Data Frame watchdog

../_images/fsi_image3.png

CRC calculation and comparison

../_images/fsi_image3.png

Data buffer underrun and overrun detection

../_images/fsi_image3.png

DMA support

../_images/fsi_image3.png

4.3.11.3. Assumptions

None

4.3.11.4. Limitations

  1. RXCLK should be connected to TXCLK and it should never be configured to be faster than SYSCLK/2.

  2. Data Frame Configuration of Receiver Module should be in sync with the transmitter. (frame type, data width ).

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

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

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

Figure 11: FSI Rx Interrupt configuration.

../_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.

  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.

../_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)

  1. Initialize the Transmitter and Receiver.

  2. Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().

  3. Load the Transmition Buffer with Data using API Cdd_FsiTx_BufferLoad().

  4. 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.

  5. Wait till reception completes and notification prints.

  6. Once test is completed successfully, verify the data in destination Buffer.

DDR-INTERRUPT MODE-16 WORDS-SW TRIGGER: (HW UNIT 1)

  1. Initialize the Transmitter and Receiver.

  2. Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().

  3. Load the Transmition Buffer with Data using API Cdd_FsiTx_BufferLoad().

  4. 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.

  5. Wait till reception completes and notification prints.

  6. Once test is completed successfully, verify the data in destination Buffer.

SDR-DMA MODE-16 WORDS-SW TRIGGER: (HW UNIT 1)

  1. Initialize the Transmitter and Receiver.

  2. Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().

  3. Load the Transmition Buffer with Data using API Cdd_FsiTx_BufferLoad().

  4. 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.

  5. Wait till reception completes and notification prints.

  6. Once test is completed successfully, verify the data in destination Buffer.

DDR-DMA MODE-16 WORDS-SW TRIGGER: (HW UNIT 1)

  1. Initialize the Transmitter and Receiver.

  2. Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().

  3. Load the Transmition Buffer with Data using API Cdd_FsiTx_BufferLoad().

  4. 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.

  5. Wait till reception completes and notification prints.

  6. Once test is completed successfully, verify the data in destination Buffer.

SDR-POLLING MODE-16 WORDS-SW TRIGGER: (HW UNIT 0)

  1. Initialize the Transmitter and Receiver.

  2. Transmit the Ping Frame with Tag 0 using API Cdd_FsiTx_Ping().

  3. Load the Transmition Buffer with Data using API Cdd_FsiTx_BufferLoad().

  4. 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.

  5. Wait till reception completes and notification prints.

  6. 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.22. References

Technical Reference Manual

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