4.4. CDD_FSIRX Module

4.4.1. Acronyms and Definitions

Abbreviation/Term

Explanation

AUTOSAR

Automotive Open System Architecture

BSW

Basic Software

CDD

Complex Device Driver

FSI

Fast Serial Interface

DDR

Double Data Rate

SDR

Single Data Rate

SDR

Single Data Rate

CRC

Cyclic Redundancy Check

SW

Software

HW

Hardware

DEM

Diagnostic Event Manager

DMA

Direct Memory Access

MCAL

Microcontroller Abstraction Layer

DET

Default Error Tracer

PWM

Pulse Width Modulation

PLL

Phase Locked Loop

MCU

Micro Controller Unit

OS

Operating System

API

Application Programming Interface

4.4.2. Introduction

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

Supported AUTOSAR Release

4.3.1

Supported Configuration Variants

Pre-Compile & Post Build

Vendor ID

CDD_FSI_RX_VENDOR_ID (44)

Module ID

CDD_FSI_RX_MODULE_ID (255)

Supported Platform

AM263Px

4.4.3. Functional Overview

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

CDD FSI (CDD Module) in AUTOSAR architecture

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

4.4.3.1. Functional Overview of CDD FSI Receiver

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

4.4.3.2. CDD FSI RX Driver Architecture

CDD FSI RX Hardware Overview

Fig. 4.26 CDD FSI RX Hardware Overview

4.4.3.3. Initialization

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

4.4.3.4. States

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

  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.4.3.5. Assumptions

None

4.4.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.4.4. Hardware Features

CDD FSI Rx features:

4.4.4.1. IP Supported Features

  • Software-configurable frame lengths

  • Ping frame watchdog

  • Data Frame watchdog

  • Data buffer underrun and overrun detection

  • DMA support

  • Double Data Rate(DDR)

4.4.4.2. CDD FSI RX Supported Features

  • Software-configurable frame lengths

  • Ping frame watchdog

  • Data Frame watchdog

  • Data buffer underrun and overrun detection

  • DMA support

4.4.4.3. CDD FSI RX Not Supported Features

  • Double Data Rate(DDR)

4.4.4.4. Configurable Hardware Units

  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.4.4.5. Configurable Development Error

  1. User configurable error check to report development errors.

4.4.4.6. Configurable Frame Length

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

  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.4.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.4.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.4.4.8.1. Interrupt Mode

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

  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.4.4.8.2. Polling Mode

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

  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.4.4.8.3. DMA Mode

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

  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.4.5. Source files

Description of static files is provided below:

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

Description of generated files is provided below:

Plugin Files

Description

CddFsiRx_Cfg.h

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

CddFsiRx_PBcfg.c

Contains all channels Post-Build Configuration parameters

CddFsiRx_Cfg.c

Contains all channels Pre-Compile Configuration parameters

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

CDD FSI RX header file include structure_Cdd_Fsi_Am263P

Fig. 4.27 CDD FSI RX header file include structure_Cdd_Fsi_Am263P

4.4.6. Module requirements

Will be updated in future release:

4.4.6.1. Memory Mapping

Memory Mapping Sections

CDD_FSIRX_CODE

CDD_FSIRX_CODE_ISR

CDD_FSIRX_VAR_NO_INIT

CDD_FSIRX_VAR

CDD_FSIRX_CONST

CDD_FSIRX_PBCFG

CDD_FSIRX_START_SEC_VAR_INIT_UNSPECIFIED(.bss)

x

CDD_FSIRX_STOP_SEC_VAR_INIT_UNSPECIFIED

x

CDD_FSIRX_START_SEC_CONFIG_DATA (.const)

x

CDD_FSIRX_STOP_SEC_CONFIG_DATA

x

CDD_FSIRX_START_SEC_CODE(.text)

x

CDD_FSIRX_STOP_SEC_CODE

x

CDD_FSIRX_START_SEC_VAR_INIT_32(.bss)

x

CDD_FSIRX_STOP_SEC_VAR_INIT_32

x

CDD_FSIRX_START_SEC_VAR_NO_INIT_UNSPECIFIED(.data)

x

CDD_FSIRX_STOP_SEC_VAR_NO_INIT_UNSPECIFIED

x

CDD_FSIRX_START_SEC_ISR_CODE

x

CDD_FSIRX_STOP_SEC_ISR_CODE

x

4.4.6.2. Scheduling

4.4.6.2.1. SchM

Beside the OS the BSW Scheduler provides functions that module CDD FSI RX calls at begin and end of critical sections.

4.4.6.2.2. Critical Sections

There is only one kind of critical sections in this driver. Within these sections the reception of data from Rx Buffer to the Destination Buffer will take place. This is handled internally in the CDD FSI RX driver by invoking SchM_Enter_Cdd_FsiRx_FSI_RX_EXCLUSIVE_AREA_0() /SchM_Exit_Cdd_FsiRx_FSI_RX_EXCLUSIVE_AREA_0()

4.4.6.3. Error handling

4.4.6.3.1. Development Error Reporting

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

4.4.6.4. Error codes

4.4.6.4.1. Development Errors

Type of Error

Related Error code

Value (Hex)

Error code indicating the CDD FSI RX is uninitialized

CDD_FSI_RX_E_UNINIT

0x01

Error code indicating an invalid event

CDD_FSI_RX_E_INVALID_EVENT

0x02

Error code indicating invalid parameter pointer

CDD_FSI_RX_E_PARAM_POINTER

0x03

API service called with invalid ramsection parameter

CDD_FSI_RX_E_ALREADY_INITIALIZED

0x04

Error code indicating Service called with invalid length

CDD_FSI_RX_E_PARAM_LENGTH

0x05

Error code indicating invalid Number of FsiRx HwUnit

CDD_FSI_RX_E_INVALID_HW_UNIT

0x06

4.4.6.4.2. DEM Errors

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

Error Code

Description

Assigned by DEM

CDD_FSI_RX_E_BUFFER_UNDERRUN

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

Assigned by DEM

CDD_FSI_RX_E_BUFFER_OVERRUN

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

Assigned by DEM

CDD_FSI_RX_E_CRC_ERROR

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

Assigned by DEM

CDD_FSI_RX_E_TYPE_ERR

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

Assigned by DEM

CDD_FSI_RX_E_FRAME_OVERRUN

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

4.4.7. Used resources

4.4.7.1. Interrupt Handling

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

Hardware Unit

ISR

CDD_FSI_RX_HW_UNIT_0

CddFsiRx_FSIINT1_IrqUnit0()
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.4.8. Integration description

4.4.8.1. The CDD FSI RX Driver dependent modules

4.4.8.1.1. MCU

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

CDD FSI RX Hardware container

Fig. 4.28 CDD FSI RX Hardware container

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

FSI Rx Interrupt configuration

Fig. 4.29 FSI Rx Interrupt configuration

CDD FSI RX Interrupt selection

Fig. 4.30 CDD FSI RX Interrupt selection

4.4.8.1.2. DMA

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

1.CDD FSI RX Module Configuration:

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

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

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

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

2.DMA module Configuration:

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

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

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

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

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

CDD FSI RX module DMA channel ID selection

Fig. 4.31 CDD FSI RX module DMA channel ID selection

4.4.8.1.3. DET

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

4.4.8.1.4. DEM

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

Note

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

4.4.8.1.5. Callback Functions

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

4.4.8.1.5.1. Callback Notification

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

4.4.8.2. Multi-core and Resource allocator

Not Supported

4.4.9. Configuration

4.4.9.1. Configuration Variants

The FSI Rx can be configured as Post-Build or Pre-Compile variant, using EB tresos tool.

Variants

Generated Files

PostBuild

CddFsiRx_PBcfg.c , CddFsiRx_Cfg.h

Pre-Compile

CddFsiRx_Cfg.c , CddFsiRx_Cfg.h

Note

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

4.4.9.2. Parameter Description

Parameters

Description

Default Value

Range

Unit

CddFsiRxResetNotification

Callback notification to Application to reset the driver

NA

NA

FUNCTION

CddFsiRxOverRunNotification

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

NA

NA

FUNCTION

CddFsiRxUnderRunNotification

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

NA

NA

FUNCTION

CddFsiRxPingFrameReceivedNotification

Callback notification to Application that a ping frame has been received

NA

NA

FUNCTION

CddFsiRxDataFrameReceivedNotification

Callback notification to Application that a data frame has been received

NA

NA

FUNCTION

CddFsiRxHwUnitId

Numeric ID of the Rx HW Unit.

For the ping received frame interrupt the rx hw baseadress is needed.for that listing out the id as well

CDD_FSI_RX_HWUNIT_0

CDD_FSI_RX_HWUNIT_0

CDD_FSI_RX_HWUNIT_1

CDD_FSI_RX_HWUNIT_2

CDD_FSI_RX_HWUNIT_3

ENUMERATION

CddFsiRxPingWdgTimerTimeout

Timeout value for CddFsiRx Ping Wdg Timer

20010

0- 4294967295

INTEGER

CddFsiRxFrameWdgTimerTimeout

Timeout value for CddFsiRx Frame Wdg Timer

10010

0-4294967295

INTEGER

CddFsiRxReceptionMethod

Selects the method of frame reception

CDD_FSI_RX_INTERRUPT_MODE

CDD_FSI_RX_INTERRUPT_MODE

CDD_FSI_RX_POLLING_MODE

CDD_FSI_RX_DMA_MODE

ENUMERATION

CddFsiRxDmaReference

Reference to the DMA Group Channel

ASPathDataOfSchema:/TI_AM263Px/Cdd_Dma/CddDmaDriverHandler

ASPathDataOfSchema:/TI_AM263Px/Cdd_Dma/CddDmaDriverHandler

REFERENCE

CddFsiRxDeInitApi

Adds / removes the service CddFsiRx_DeInit() from the code

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxDevErrorDetectApi

Switches the development error detection and notification on or off

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxTypeofInterruptFunction

Type of ISR function

CDD_FSI_RX_ISR_CAT1

CDD_FSI_RX_ISR_VOID

CDD_FSI_RX_ISR_CAT1

CDD_FSI_RX_ISR_CAT2

ENUMERATION

CddFsiRxInterruptVector

Type of ISR function

CDD_FSI_RX_INT1

CDD_FSI_RX_INT1

CDD_FSI_RX_INT2

ENUMERATION

CddFsiRxDeviceVariant

Select SOC variant .This parameter shall be used by driver to impose device specific constraints.

The user guide shall detail the device specific constraints

AM263Px

AM263Px

ENUMERATION

CddFsiRxMaxHwUnitCount

Maximum hw count across all hwunits configured

1

1 to 4

INTEGER

CddFsiRxMaxDmaChannelId

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

63

NA

INTEGER

CddFsiRxNotifyCapability

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

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxPingWdgTimeoutInterruptEvent

Enables the interrupt Event for Ping Watch Dog Timer

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxFrameWdgTimeoutInterruptEvent

Enables the interrupt Event for Frame Watch Dog Timer

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxCRCErrorInterruptEvent

Enables the interrupt Event for CRC Error

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxBufferOverRunInterruptEvent

Enables the interrupt Event for Rx Buffer Over Run

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxUnderRunInterruptEvent

Enables the interrupt Event for Rx Buffer UnderRun

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxPingFrameReceivedInterruptEvent

Enables the interrupt Event for Ping Frame Reception

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxDataFrameReceivedInterruptEvent

Enables the interrupt Event for Data Frame Reception

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxMainApi

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

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxResetDriver

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

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxGetVersionInfoApi

Adds / removes the service CddFsiRx_GetVersionInfo() from the code

TRUE

TRUE/FALSE

BOOLEAN

CddFsiRxDMAEnable

Enables DMA Access method for CddFsiRx Reception

FALSE

TRUE/FALSE

BOOLEAN

CddFsiRxMultiLaneEnable

Enables MultiLane Transmission for CddFsiRx

FALSE

TRUE/FALSE

BOOLEAN

CddFsiRxOsCounterRef

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

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter

REFERENCE

CddFsiRxDefaultOSCounterId

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

0

0 - 16

INTEGER

4.4.9.3. Symbolic Names deviations

The Symbolic names are generated for following parameters:

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

4.4.9.4. Configuration rules and constraints to enable plausibility checks

Will be updated in future release:

4.4.10. Examples

4.4.10.1. Overview

Will be updated in future release:

4.4.10.2. Setup required to run example

Will be updated in future release:

4.4.10.3. How to run examples

4.4.10.3.1. Steps to build and run example

CDD FSI RX example application demonstrating the CDD FSI RX driver features is in folder <MCAL_ROOT>/examples/FsiRx.

This application can be built from the root folder by giving gmake -S fsirx_app PLATFORM=am263px.

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

4.4.10.3.2. Document external set up Information

None

4.4.10.3.3. Configuration used to test

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

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

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

  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.

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.

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.4.10.4. Sample Log


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

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

4.4.10.5. File Structure

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

4.4.10.6. Test Report

Please refer AM26x CDD FSI Driver Test Case Report as part of CSP provided in the release package.

4.4.11. References

Technical Reference Manual