4.5. CDD_FSIRX Module

4.5.1. Acronyms and Definitions

Abbreviation/Term

Explanation

AUTOSAR

Automotive Open System Architecture

BSW

Basic Software

CDD

Complex Device Driver

FSI

Fast Serial Interface

DDR

Double Data Rate

SDR

Single Data Rate

SDR

Single Data Rate

CRC

Cyclic Redundancy Check

SW

Software

HW

Hardware

DEM

Diagnostic Event Manager

DMA

Direct Memory Access

MCAL

Microcontroller Abstraction Layer

DET

Default Error Tracer

PWM

Pulse Width Modulation

PLL

Phase Locked Loop

MCU

Micro Controller Unit

OS

Operating System

API

Application Programming Interface

4.5.2. Introduction

This document describes CDD FSI RX Driver functionality, its application interfaces and configuration details as per AUTOSAR version 4.3.1.

Supported AUTOSAR Release

4.3.1

Supported Configuration Variants

Pre-Compile & Post Build

Vendor ID

CDD_FSI_RX_VENDOR_ID (44)

Module ID

CDD_FSI_RX_MODULE_ID (255)

Supported Platform

AM263x

4.5.3. Functional Overview

The Fast Serial Interface (FSI) module is a serial communication peripheral capable of reliable high-speed communication across isolation devices. The FSI is designed specifically to ensure reliable high-speed communication for system scenarios that involve communication across isolation barriers without adding components. The FSI consists of independent transmitter (CDD FSI TX) and receiver (CDD FSI RX) cores. The CDD FSITX and CDD FSIRX cores are configured and operated independently. Both CDD FSI TX and FsiRx are capable of configurable frame length and can be operated via DMA. The following figure shows where the CDD Module is located in the AUTOSAR architecture. Since CDD FSI Transmitter and Receiver are CDD Module it occupies the highlighted region in the AUTOSAR architecture.

CDD FSI (CDD Module) in AUTOSAR architecture

Fig. 4.26 CDD FSI (CDD Module) in AUTOSAR architecture

4.5.3.1. Functional Overview of CDD FSI Receiver

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

4.5.3.2. CDD FSI RX Driver Architecture

CDD FSI RX Hardware Overview

Fig. 4.27 CDD FSI RX Hardware Overview

4.5.3.3. Initialization

Cdd_FsiRx_Init() has to be called to initialize the Fsi Receiver driver before initiating a reception.This will also set the CDD FSI Receiver Hardware Unit to CDD_FSI_RX_IDLE STATE.

4.5.3.4. States

There are 2 states in which each CDD FSI Receiver HW Unit can be:

  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 a reception. The receiver becomes idle only after it gets initialized.

4.5.3.5. Assumptions

None

4.5.3.6. 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 ).

  3. In FSI, as soon as the DMA trigger is started, whatever data is available in the internal FSI buffer is transferred immediately before the DMA actually transfers from external buffer to FSI internal buffer. As a workaround, we are manually copying onto internal buffer before FSI DMA event is enabled

4.5.4. Hardware Features

CDD FSI Rx features:

4.5.4.1. IP Supported Features

  • Software-configurable frame lengths

  • Ping frame watchdog

  • Data Frame watchdog

  • Data buffer underrun and overrun detection

  • DMA support

  • Double Data Rate(DDR)

4.5.4.2. CDD FSI RX Supported Features

  • Software-configurable frame lengths

  • Ping frame watchdog

  • Data Frame watchdog

  • Data buffer underrun and overrun detection

  • DMA support

4.5.4.3. CDD FSI RX Not Supported Features

  • Double Data Rate(DDR)

4.5.4.4. Configurable Hardware Units

  1. User configurable parameter to define how many Rx Hardware Units (Instances) to use out of a maximum of 4

  2. User configurable parameter to specify which Hardware Unit to use

  3. User configurable frame size which defines number of words to be received into Rx internal Buffer.

4.5.4.5. Configurable Development Error

  1. User configurable error check to report development errors.

4.5.4.6. Configurable Frame Length

The number of words to be sent in each frame is user configurable. The argument RxDataLength passed into the API Cdd_FsiRx_setUpBuffer will setup the internal Rx Buffer for data reception. The RxDataLength can be any value from the enum Cdd_FsiRx_DataLengthType which has a range of 1-16.

  1. CDD_FSI_RX_DATA_1_WORD_LENGTH - Rx Reception buffer will be configured to receive 1 WORD.

  2. CDD_FSI_RX_DATA_2_WORD_LENGTH - Rx Reception buffer will be configured to receive 2 WORDS .

  3. CDD_FSI_RX_DATA_3_WORD_LENGTH - Rx Reception buffer will be configured to receive 3 WORDS.

  4. CDD_FSI_RX_DATA_4_WORD_LENGTH - Rx Reception buffer will be configured to receive 4 WORDS.

  5. CDD_FSI_RX_DATA_5_WORD_LENGTH - Rx Reception buffer will be configured to receive 5 WORDS.

  6. CDD_FSI_RX_DATA_6_WORD_LENGTH - Rx Reception buffer will be configured to receive 6 WORDS.

  7. CDD_FSI_RX_DATA_7_WORD_LENGTH - Rx Reception buffer will be configured to receive 7 WORDS.

  8. CDD_FSI_RX_DATA_8_WORD_LENGTH - Rx Reception buffer will be configured to receive 8 WORDS.

  9. CDD_FSI_RX_DATA_9_WORD_LENGTH - Rx Reception buffer will be configured to receive 9 WORDS.

  10. CDD_FSI_RX_DATA_10_WORD_LENGTH - Rx Reception buffer will be configured to receive 10 WORDS.

  11. CDD_FSI_RX_DATA_11_WORD_LENGTH -Rx Reception buffer will be configured to receive 11 WORDS.

  12. CDD_FSI_RX_DATA_12_WORD_LENGTH - Rx Reception buffer will be configured to receive 12 WORDS.

  13. CDD_FSI_RX_DATA_13_WORD_LENGTH - Rx Reception buffer will be configured to receive 13 WORDS.

  14. CDD_FSI_RX_DATA_14_WORD_LENGTH - Rx Reception buffer will be configured to receive 14 WORDS.

  15. CDD_FSI_RX_DATA_15_WORD_LENGTH - Rx Reception buffer will be configured to receive 15 WORDS.

  16. CDD_FSI_RX_DATA_16_WORD_LENGTH - Rx Reception buffer will be configured to receive 16 WORDS.

4.5.4.7. Configurable Timeouts

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

  2. User Configurable Frame Watch Dog Timeout value(If the Rx instance does not receive a data frame within the configured timeout period of Frame WatchDog, then the Watchdog will Timeout and sent notification to application. This feature can be used to check the physical connection between Tx and Rx).

4.5.4.8. Configurable Reception Modes

The FSI Receiver can Receive data in three different Modes.

  1. Interrupt Mode.

  2. Polling Mode.

  3. DMA Mode.

4.5.4.8.1. Interrupt Mode

Each FSI module contains multiple interrupt sources which can be assigned to two different interrupt vectors: INT1 and INT2. Each interrupt source has an associated status flag. In Interrupt Mode, the parameter CddFsiRxMainApi and should be OFF and CddFsiRxDMAEnable in Cdd_FsiRx_Cfg.h will be OFF. The receiver can generate the following interrupts:

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

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

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

  4. Data Frame Received (DATA_FRAME) : This event indicates that a data frame has been received. The macro CddFsiRxDataFrameReceivedInterruptEvent in Cdd_FsiRx_Cfg.h should be ON.

4.5.4.8.2. Polling Mode

In Polling Mode the FSI Receiver is continuously polled using Cdd_FsiRx_MainFunction API to check whether data has received or not. In Polling Mode the states of different macros inside Cdd_FsiTx_Cfg.h are listed below:

  1. CDD_FSI_RX_MAIN_FUNCTION_API -STD ON.

  2. CDD_FSI_RX_DMA_ENABLE -STD OFF

  3. CDD_FSI_RX_PING_WDG_TIMEOUT_INTERRUPT -STD OFF

  4. CDD_FSI_RX_FRAME_WDG_TIMEOUT_INTERRUPT -STD OFF

  5. CDD_FSI_RX_CRC_ERROR_INTERRUPT -STD OFF

  6. CDD_FSI_RX_BUFFER_OVERRUN_INTERRUPT -STD OFF

  7. CDD_FSI_RX_BUFFER_UNDERRUN_INTERRUPT -STD OFF

  8. CDD_FSI_RX_PING_RECEIVED_INTERRUPT -STD OFF

  9. CDD_FSI_RX_DATA_RECEIVED_INTERRUPT -STD OFF

  10. The Parameter related with each Interrupt event should be OFF if Main Function API Parameter is ON.

4.5.4.8.3. DMA Mode

The FSI Receiver can receive data which is continuously copied to the destination buffer with the DMA. In order to transmit continuous data with the DMA, some configurations need to be made on the transmitter:

  1. Configure the DMA channel and handle for the Rx Instance in CDD_DMA_TRANSFER_MODE_CHAINING

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

  1. CDD_FSI_RX_MAIN_FUNCTION_API -STD OFF

  2. CDD_FSI_RX_DMA_ENABLE -STD ON

  3. CDD_FSI_RX_PING_WDG_TIMEOUT_INTERRUPT -STD OFF

  4. CDD_FSI_RX_FRAME_WDG_TIMEOUT_INTERRUPT -STD OFF

  5. CDD_FSI_RX_CRC_ERROR_INTERRUPT -STD OFF

  6. CDD_FSI_RX_BUFFER_OVERRUN_INTERRUPT -STD OFF

  7. CDD_FSI_RX_BUFFER_UNDERRUN_INTERRUPT -STD OFF

  8. CDD_FSI_RX_PING_RECEIVED_INTERRUPT -STD OFF

  9. CDD_FSI_RX_DATA_RECEIVED_INTERRUPT -STD OFF

4.5.5. Source files

Description of static files is provided below:

📦AM263x
┣ 📂build
┣ 📂mcal
┃ ┣ 📂FsiRx
┃ ┃ ┣ 📂include
┃ ┃ ┃ ┗ 📜Cdd_FsiRx.h : Contains the API’s of the CDD FSI RX driver to be used by upper layers
┃ ┃ ┣ 📂src
┃ ┃ ┃ ┗ 📜Cdd_FsiRx.c : Contains the implementation of the API’s for CDD FSI RX driver
┃ ┃ ┣ 📂V0
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Irq.h : Contains ISR function declaration
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Irq.c : Contains ISR function definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Platform.h : Contains device specific function definition, data types and definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Platform.c : Contains device specific function definition, data types and definitions
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Priv.h : Contains Internal functions declaration of CDD FSI RX driver
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Priv.c : Contains Internal functions definition of CDD FSI RX driver
┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Reg.h : Contains CDD FSI RX Register definition
┃ ┃ ┃ ┗ 📜Cdd_FsiRx_Types.h : Contains the cdd data types and internal macro definitions .
┃ ┃ ┗ 📜Makefile
┣ 📂mcal_config
┣ 📂mcal_docs
┗ 📜README.txt

Description of generated files is provided below:

Plugin Files

Description

CddFsiRx_Cfg.h

Contains the Precompile switches, Symbolic names of hardware units and channels, Configured maximum number of hardware units

CddFsiRx_PBcfg.c

Contains all channels Post-Build Configuration parameters

CddFsiRx_Cfg.c

Contains all channels Pre-Compile Configuration parameters

The below diagram shows the files structure for the FSI Rx driver.

CDD FSI RX header file include structure_Cdd_Fsi_Am263

Fig. 4.28 CDD FSI RX header file include structure_Cdd_Fsi_Am263

4.5.6. Module requirements

Will be updated in future release:

4.5.6.1. Memory Mapping

Memory Mapping Sections

CDD_FSIRX_CODE

CDD_FSIRX_CODE_ISR

CDD_FSIRX_VAR_NO_INIT

CDD_FSIRX_VAR

CDD_FSIRX_CONST

CDD_FSIRX_PBCFG

CDD_FSIRX_START_SEC_VAR_INIT_UNSPECIFIED(.bss)

x

CDD_FSIRX_STOP_SEC_VAR_INIT_UNSPECIFIED

x

CDD_FSIRX_START_SEC_CONFIG_DATA (.const)

x

CDD_FSIRX_STOP_SEC_CONFIG_DATA

x

CDD_FSIRX_START_SEC_CODE(.text)

x

CDD_FSIRX_STOP_SEC_CODE

x

CDD_FSIRX_START_SEC_VAR_INIT_32(.bss)

x

CDD_FSIRX_STOP_SEC_VAR_INIT_32

x

CDD_FSIRX_START_SEC_VAR_NO_INIT_UNSPECIFIED(.data)

x

CDD_FSIRX_STOP_SEC_VAR_NO_INIT_UNSPECIFIED

x

CDD_FSIRX_START_SEC_ISR_CODE

x

CDD_FSIRX_STOP_SEC_ISR_CODE

x

4.5.6.2. Scheduling

Schedule Function API

Description

Cdd_FsiRx_MainFunction

The MainFunction notify the application in Polling Mode

4.5.6.3. Error handling

4.5.6.3.1. Development Error Reporting

The module CDD FSI RX depends on the DET (by default) in order to report development errors. Detection and reporting of development errors can be enabled or disabled by the parameter CddFsiRxDevErrorDetect.The macro CDD_FSI_RX_DEV_ERROR_DETECT = STD_ON generated in file CddFsiRx_Cfg.h). The DET error is reported with Module ID. The reported service IDs identify the services which are described earlier. The errors reported to DET module are described in the following table:

4.5.6.4. Error codes

4.5.6.4.1. Development Errors

Type of Error

Related Error code

Value (Hex)

Error code indicating the CDD FSI RX is uninitialized

CDD_FSI_RX_E_UNINIT

0x01

Error code indicating an invalid event

CDD_FSI_RX_E_INVALID_EVENT

0x02

Error code indicating invalid parameter pointer

CDD_FSI_RX_E_PARAM_POINTER

0x03

API service called with invalid ramsection parameter

CDD_FSI_RX_E_ALREADY_INITIALIZED

0x04

Error code indicating Service called with invalid length

CDD_FSI_RX_E_PARAM_LENGTH

0x05

Error code indicating invalid Number of FsiRx HwUnit

CDD_FSI_RX_E_INVALID_HW_UNIT

0x06

4.5.6.4.2. DEM Errors

The errors reported to DEM are described in the following table:

Error Code

Description

Assigned by DEM

CDD_FSI_RX_E_BUFFER_UNDERRUN

This error is raised when the Receive Buffer undergoes to an underrun

Assigned by DEM

CDD_FSI_RX_E_BUFFER_OVERRUN

This error is raised when the Receive Buffer undergoes to an overrun

Assigned by DEM

CDD_FSI_RX_E_CRC_ERROR

This error is raised when the Receive Buffer receives a wrong CRC

Assigned by DEM

CDD_FSI_RX_E_TYPE_ERR

This error is raised when the Receive Buffer receives an invalid frame type

Assigned by DEM

CDD_FSI_RX_E_FRAME_OVERRUN

This error is raised when the Receive Buffer receives a new frame has been received while the FRAME_DONE flag was still set

4.5.7. Used resources

4.5.7.1. Interrupt Handling

For interrupt notification, ISR’s are provided in CDD FSI RX driver. There are two ISRs for each CDD FSI RX hardware units. Depending on hardware unit configured, it will call the notify function. The interrupt service routines shall be mapped to the interrupt sources of the respective cross bar interrupt. The supported ISRs are part of the CddFsiRx_Irq.h file. Following are the ISRs for each CDD FSI RX hardware units:

Hardware Unit

ISR

CDD_FSI_RX_HW_UNIT_0

CddFsiRx_FSIINT1_IrqUnit0()
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()

1.CddFsiRxPingWdgTimeoutInterruptEvent Parameter enables/disables the Ping Watch Dog Timeout interrupt event.

  • This event indicates that the ping watchdog timer has timed out.

  • The receiver has not received a valid frame within the time period specified in the RX_PING_WD_REF register.

2.CddFsiRxFrameWdgTimeoutInterruptEvent Parameter enables/disables the Frame Watch Dog Timeout interrupt event .

  • This event indicates that the frame watchdog timer has timed out.

  • If this event occurs, the receiver must undergo a soft reset and subsequent resynchronization in order to guarantee proper operation.

3.CddFsiRxCRCErrorInterruptEvent Parameter enables/disables the CRC Error event .

  • This error indicates that a CRC error has occurred.

4.CddFsiRxUnderRunInterruptEvent Parameter enables/disables the BufferUnderRun interrupt event .

  • This event indicates that an underrun condition has occurred in the receive buffer.

  • This condition occurs when software reads the buffer while it is empty.

5.CddFsiRxBufferOverRunInterruptEvent Parameter enables/disables the BufferOverRun interrupt event .

  • This event indicates that an overrun condition has occurred in the receive buffer.

6.CddFsiRxPingFrameReceivedInterruptEvent Parameter enables/disables the Ping frame received interrupt event .

  • This event indicates that a ping frame has been received.

7.CddFsiRxDataFrameReceivedInterruptEvent Parameter enables/disables the data frame received interrupt event .

  • This event indicates that a data frame has been received.

4.5.8. Integration description

4.5.8.1. The CDD FSI RX Driver dependent modules

4.5.8.1.1. MCU

The CDD FSI RX modules expects the MCU module to be powered on. The CDD FSI RX module depends on MCU module for crossbar interrupt mapping of CDD FSI RX interrupts depending on the Hardware unit being configured. Suppose the Hardware Unit 1 is configured for CDD FSI RX module:

CDD FSI RX Hardware container

Fig. 4.29 CDD FSI RX Hardware container

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

FSI Rx Interrupt configuration

Fig. 4.30 FSI Rx Interrupt configuration

CDD FSI RX Interrupt selection

Fig. 4.31 CDD FSI RX Interrupt selection

4.5.8.1.2. DMA

The CDD FSI RX Modules requires DMA module to be configured, when CDD FSI RX reception is configured in DMA mode.

1.CDD FSI RX Module Configuration:

  • The CDD FSI RX module parameter CddFsiRxDMAEnable should be configured for TRUE.

  • The CDD FSI RX HW Unit parameter CddFsiRxReceptionMethod should be configured with CDD_FSI_RX_DMA_MODE.

  • The DMA supports CDD FSI TX in interrupt mode only.

  • The reception mode in configurator should be CDD_FSI_RX_DMA_MODE and interrupt should be enabled inside the code.

2.DMA module Configuration:

  • Set up two DMA channels to be triggered by the same CDD FSI receiver and DMA trigger.

  • Configure one channel to take data from the Rx buffer.

  • Configure the other channel to copy the frame tag and user data fields.

  • Configure the DMA handleId and other parameters for each CDD FSI RX instance inside DMA configurator.

  • The DMA Configuration reference has given inside CDD FSI RX configurator to select the handleId for each RX Instance.

CDD FSI RX module DMA channel ID selection

Fig. 4.32 CDD FSI RX module DMA channel ID selection

4.5.8.1.3. DET

This implementation depends on the DET in order to report development errors. The detection of development errors is configurable (ON / OFF).

4.5.8.1.4. DEM

By default, production code related errors are reported to the DEM using the service DEM_ReportErrorStatus().

Note

Dem Event is enable only if $(Module_Name)DemEventParameterRefs is enabled.

4.5.8.1.5. SchM

If multiple AUTOSAR runnables have access to the same Data Store Memory block, the exported AUTOSAR specification enforces data consistency by using an AUTOSAR exclusive area. With this specification, the runnables have mutually exclusive access to the per-instance memory global data, which prevents data corruption. Beside the OS, the BSW Scheduler provides functions that CDD FSI RX module calls at begin and end of critical sections. This implementation requires 1 level of exclusive access to guard critical sections.

The data consistency mechanism that has to be applied to an ExclusiveArea might be domain, ECU or even project specific. The decision which mechanism has to be applied by RTE / Basic Software Scheduler is taken during ECU integration by setting the Exclusive Area configuration parameter RteExclusiveAreaImplMechanism. This parameter is an input for RTE generator.

For CDD_FSI_RX Module, data consistency and exclusive access to critical sections are required for the following sections as shown in the table below:

Exclusive Area Functions used

CDD_FSI_RX Function calling Exclusive Area

Need for Exclusive Area

Recommended Exclusive Area Mapping

FSI_RX_EXCLUSIVE_AREA_0

Cdd_FsiRx_MainFunction
Cdd_FsiRx_DmaDataReceive
Cdd_FsiRx_setUpBuffer

To protect against multiple access for shared resources

ALL_INTERRUPT_BLOCKING : All interrupts should be blocked as this API’s can be called in the interrupts

4.5.8.1.6. Callback Functions

The CDD FSI RX driver does not provide any call back functions.

4.5.8.1.6.1. Callback Notification

Notifications: Cdd_FsiRx_BufferNotifyType: This Cdd_FsiRx_BufferNotifyType which is defined in CddFsiRx_Types.h file. This is called to notify the HwUnit about the completion of the data reception and availability of Rx Buffer to receive another frame.

4.5.8.2. Multi-core support

Not Supported

4.5.9. Configuration

4.5.9.1. CddFsiRxConfigSet

This container contains the configuration parameters and sub containers of the AUTOSAR Cdd Fsi Rx module.

4.5.9.1.1. CddFsiRxResetNotification

Item

Name

CddFsiRxResetNotification

Description

Callback notification to Application to reset the driver

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

4.5.9.1.2. CddFsiRxOverRunNotification

Item

Name

CddFsiRxOverRunNotification

Description

Callback notification to Application that an over-run occured in Rx buffer

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

4.5.9.1.3. CddFsiRxUnderRunNotification

Item

Name

CddFsiRxUnderRunNotification

Description

Callback notification to Application that an under-run occured in Rx buffer

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

4.5.9.1.4. CddFsiRxPingFrameReceivedNotification

Item

Name

CddFsiRxPingFrameReceivedNotification

Description

Callback notification to Application that a ping frame has been received

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

4.5.9.1.5. CddFsiRxDataFrameReceivedNotification

Item

Name

CddFsiRxDataFrameReceivedNotification

Description

Callback notification to Application that a data frame has been received

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

4.5.9.1.6. CddFsiRxHwUnit

This container contains the Driver configuration (parameters) depending on which FSI Rx Hw unit is get configured

4.5.9.1.6.1. CddFsiRxHwUnitId

Item

Name

CddFsiRxHwUnitId

Description

Description: Numeric ID of the Rx HW Unit. For the ping treceived frame interrupt the rx hw baseadress is needed. for that listing out the id as well.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

CDD_FSI_RX_HWUNIT_0

Range

CDD_FSI_RX_HWUNIT_0
CDD_FSI_RX_HWUNIT_1
CDD_FSI_RX_HWUNIT_2
CDD_FSI_RX_HWUNIT_3

4.5.9.1.6.2. CddFsiRxPingWdgTimerTimeout

Item

Name

CddFsiRxPingWdgTimerTimeout

Description

Timeout value for CddFsiRx Ping Wdg Timer.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

20010

Max-value

4294967295

Min-value

0

4.5.9.1.6.3. CddFsiRxFrameWdgTimerTimeout

Item

Name

CddFsiRxFrameWdgTimerTimeout

Description

Timeout value for CddFsiRx Frame Wdg Timer.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

10010

Max-value

4294967295

Min-value

0

4.5.9.1.6.4. CddFsiRxReceptionMethod

Item

Name

CddFsiRxReceptionMethod

Description

Selects the method of frame reception.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

CDD_FSI_RX_INTERRUPT_MODE

Range

CDD_FSI_RX_INTERRUPT_MODE
CDD_FSI_RX_POLLING_MODE
CDD_FSI_RX_DMA_MODE

4.5.9.1.6.5. CddFsiRxDmaReference

Item

Name

CddFsiRxDmaReference

Description

Reference to the DMA Group Channel

Multiplicity-Configuration-Class

Post-Build Time

VARIANT-POST-BUILD

Pre-Compile Time

VARIANT-PRE-COMPILE

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

4.5.9.2. CddFsiRxGeneral

General configuration (parameters) of the Cdd Fsi Rx Driver software module.

4.5.9.2.1. CddFsiRxDeInitApi

Item

Name

CddFsiRxDeInitApi

Description

Adds / removes the service CddFsiRx_DeInit() from the code.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.2. CddFsiRxDevErrorDetectApi

Item

Name

CddFsiRxDevErrorDetectApi

Description

Switches the development error detection and notification on or off.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.3. CddFsiRxTypeofInterruptFunction

Item

Name

CddFsiRxTypeofInterruptFunction

Description

Type of ISR function

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

CDD_FSI_RX_ISR_CAT1

Range

CDD_FSI_RX_ISR_VOID
CDD_FSI_RX_ISR_CAT1
CDD_FSI_RX_ISR_CAT2

4.5.9.2.4. CddFsiRxInterruptVector

Item

Name

CddFsiRxInterruptVector

Description

Type of ISR function

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

CDD_FSI_RX_INT1

Range

CDD_FSI_RX_INT1
CDD_FSI_RX_INT2

4.5.9.2.5. CddFsiRxDeviceVariant

Item

Name

CddFsiRxDeviceVariant

Description

Select SOC variant .This parameter shall be used by driver to impose device specific constraints. The user guide shall detail the device specific constraints

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Pre-Compile-Time

VARIANT-PRE-COMPILE

Post-Build-Time

VARIANT-POST-BUILD

Default-value

AM263

Range

AM263

4.5.9.2.6. CddFsiRxMaxHwUnitCount

Item

Name

CddFsiRxMaxHwUnitCount

Description

Maximum hw count across all hwunits configured

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

1

Max-value

4

Min-value

1

4.5.9.2.7. CddFsiRxMaxDmaChannelId

Item

Name

CddFsiRxMaxDmaChannelId

Description

Number of actual DMA channels. This is of type published information and not editable

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

63

4.5.9.2.8. CddFsiRxNotifyCapability

Item

Name

CddFsiRxNotifyCapability

Description

Determines, if the notification mechanism (the functions to enable and disable the notifications) is available at runtime.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.9. CddFsiRxPingWdgTimeoutInterruptEvent

Item

Name

CddFsiRxPingWdgTimeoutInterruptEvent

Description

Enables the interrupt Event for Ping Watch Dog Timer.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.10. CddFsiRxFrameWdgTimeoutInterruptEvent

Item

Name

CddFsiRxFrameWdgTimeoutInterruptEvent

Description

Enables the interrupt Event for Frame Watch Dog Timer.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.11. CddFsiRxCRCErrorInterruptEvent

Item

Name

CddFsiRxCRCErrorInterruptEvent

Description

Enables the interrupt Event for CRC Error.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.12. CddFsiRxBufferOverRunInterruptEvent

Item

Name

CddFsiRxBufferOverRunInterruptEvent

Description

Enables the interrupt Event for Rx Buffer Over Run.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.13. CddFsiRxUnderRunInterruptEvent

Item

Name

CddFsiRxUnderRunInterruptEvent

Description

Enables the interrupt Event for Rx Buffer UnderRun.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.14. CddFsiRxPingFrameReceivedInterruptEvent

Item

Name

CddFsiRxPingFrameReceivedInterruptEvent

Description

Enables the interrupt Event for Ping Frame Reception.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.15. CddFsiRxDataFrameReceivedInterruptEvent

Item

Name

CddFsiRxDataFrameReceivedInterruptEvent

Description

Enables the interrupt Event for Data Frame Reception.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.16. CddFsiRxMainApi

Item

Name

CddFsiRxMainApi

Description

Adds / removes the service CddFsiRx_Main() and from the code.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.17. CddFsiRxResetDriver

Item

Name

CddFsiRxResetDriver

Description

Adds / removes the service Cdd_FsiRx_ResetDriver() and from the code.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.18. CddFsiRxGetVersionInfoApi

Item

Name

CddFsiRxGetVersionInfoApi

Description

Adds / removes the service CddFsiRx_GetVersionInfo() from the code.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

4.5.9.2.19. CddFsiRxDMAEnable

Item

Name

CddFsiRxDMAEnable

Description

Enables DMA Access method for CddFsiRx Reception.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

4.5.9.2.20. CddFsiRxMultiLaneEnable

Item

Name

CddFsiRxMultiLaneEnable

Description

Enables MultiLane Transmission for CddFsiRx.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

4.5.9.2.21. CddFsiRxDefaultOSCounterId

Item

Name

CddFsiRxDefaultOSCounterId

Description

Default Os Counter Id if node reference to OsCounter ref CddFsiRxOsCounterRef is not set

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

16

Min-value

0

4.5.9.2.22. CddFsiRxOsCounterRef

Item

Name

CddFsiRxOsCounterRef

Description

This parameter contains a reference to the OsCounter, which is used by the CddFsiRx driver.

Origin

Texas Instruments

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

4.5.9.3. CddFsiRxDemEventParameterRefs

Item

Name

CddFsiRxDemEventParameterRefs

Description

Reference to the DemEventParameter which shall be issued when the error “END OF FRAME error occurs “ has occurred.

Post-build-variant-multiplicity

false

Multiplicity-Configuration-Class

Post-Build Time

VARIANT-POST-BUILD

Pre-Compile Time

VARIANT-PRE-COMPILE

Origin

Texas Instruments

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Note

  1. The DDR (Double Data Rate) is not supported.So CddFsiRxMultiLaneEnable Parameter will be OFF.

4.5.9.4. Symbolic Names deviations

The Symbolic names are generated for following parameters:

1.CddFsiRxHwUnitId : Symbolic name is generated as CddFsiRxConf_CddFsiRxHwUnit_<CddFsiRxHwUnitId>

4.5.10. Examples

4.5.10.1. Overview

The CDD FSI module example application UT testing is done together with CDD FSI TX and CDD FSI RX modules (loop back test) and the configurations are as follows:

FSI TX HW UNIT 1 and FSI RX HW UNIT 1 are configured

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

  1. Initialize the Transmitter and Receiver.

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

  3. Load the Transmission 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.

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

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 Transmission 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.5.10.2. Setup required to run example

None

4.5.10.3. How to run examples

CDD FSI RX example application demonstrating the CDD FSI RX driver features is in folder <MCAL_ROOT>/examples/FsiRx. This application can be built from the root folder by giving gmake -S fsirx_app PLATFORM=am263.

Once the build is completed we get a binary file,which is loaded in our controller and executed.

4.5.10.4. Sample Log

 FSIRX_APP
 : Sample Application - STARTS !!!
 
 Cdd Fsi Tx driver Version Info

 Vendor ID           : 44
 Module ID           : 255
 SW Major Version    : 9
 SW Minor Version    : 2
 SW Patch Version    : 0
 
 FSIRX_APP: Ping Frame Transmission completed!!
 FSIRX_APP: BufferLoad completed!!
 FSIRX_APP: Frame 1 reception completed!!
 FSIRX_APP: BufferLoad completed!!
 FSIRX_APP: Frame 2 reception completed!!
 FSIRX_APP: BufferLoad completed!!
 FSIRX_APP: Frame 3 reception completed!!
 FSIRX_APP: BufferLoad completed!!
 FSIRX_APP: Frame 4 reception completed!!
 FSIRX_APP: BufferLoad completed!!
 FSIRX_APP: Frame 5 reception completed!!
 FSIRX_APP: All frames received!!
 FSIRX_APP: Cdd Fsi driver de initialized!!
 FSI Stack Usage: 840 bytes
 All tests have passed
 FSIRX_APP: Sample Application - Completed. !!!

4.5.10.5. File Structure

📦AM263x
┣ 📂build
┣ 📂mcal
┃ ┣ 📂examples
┃ ┃ ┣ 📂FsiRx
┃ ┃ ┃ ┣ 📂soc
┃ ┃ ┃ ┣ 📜fsirxapp.c : Contains Fsi Rx test example
┃ ┃ ┃ ┣ 📜fsirxapp.h : FsiRx App example header file
┃ ┃ ┃ ┗ 📜Makefile
┃ ┣ 📂examples_config
┃ ┃ ┣ 📂FsiRx_Demo_Cfg
┃ ┃ ┃ ┗ 📂soc
┃ ┃ ┃ ┃ ┣ 📂am263
┃ ┃ ┃ ┃ ┃ ┗ 📂r5f0_0
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂include
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗📜Cdd_FsiRx_Cfg.h : Contains the configuration parameters
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂src
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Cdd_FsiRx_Cfg.c : Contains all Pre-Compile Configured parameters
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Cdd_FsiRx_PBcfg.c : Contains all Post-Build Configured parameters
┃ 📂mcal_config
┃ 📂mcal_docs
┗ 📜README.txt

4.5.11. References

Technical Reference Manual