Errata ERR053377: Use Cases for Different Message Buffer Configurations

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Errata ERR053377: Use Cases for Different Message Buffer Configurations

Errata ERR053377: Use Cases for Different Message Buffer Configurations

This article discusses the different use cases and configuration of the errata "ERR053377: FlexCAN: Message Buffer (MB) and Enhanced RX FIFO Filter Element (ERFFEL) Memory Corruption". The errata is impacting Messabe Buffers (MB) and Enhanced RX FIFO Filter Elements (ERFFEL), the impact of each MB or ERFFEL depends on the configuration of the payload buffer, MB and/or ERFFEL. In this post, we plan to provide some examples of such configuration and impact on the FlexCAN IP. 

Taking a 64-byte payload as an example, the following configurations illustrate the trade-off between the number of Message Buffers (MBs) and acceptance filters:

/* ERR053377: This errata explains affected words depends on MB payload size, this example applies for MB configured for 64-byte payload */
#define BYTES_IN_MB kFLEXCAN_64BperMB

FLEXCAN_FDInit(EXAMPLE_CAN, &flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, true);

1. MB0 is not used, MB1 is used. In this configuration, ERFFEL[0–29] can be fully utilized as acceptance filters, while MB1–MB6 are available as Message Buffers, maximum ERFCR[NFE] is 14. The following code can be used as reference for the driver configuration for this case. 

/* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x140. Used ERFFEL[0–29], ERFCR[NFE]=14 */
uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0)};

flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig;
flexcan_rx_mb_config_t mbConfig;

        /* Setup Enhanced Rx FIFO. */
        rxEhFifoConfig.idFilterTable     = rxEnFifoFilter;
        rxEhFifoConfig.idFilterPairNum   = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U;
        rxEhFifoConfig.extendIdFilterNum = 0;
        rxEhFifoConfig.fifoWatermark     = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */
        rxEhFifoConfig.dmaPerReadLength  = kFLEXCAN_19WordPerRead;
        rxEhFifoConfig.priority          = kFLEXCAN_RxFifoPrioHigh;
        FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true);
        rxFifoXfer.framefd  = &rxFrame[0];
        rxFifoXfer.frameNum = RX_MESSAGE_COUNT;

        /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */
        FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0));

#define RX_MESSAGE_BUFFER_1 (1U)
        /* Setup Rx Message Buffer 1. */
        mbConfig.format = kFLEXCAN_FrameFormatStandard;
        mbConfig.type   = kFLEXCAN_FrameTypeData;
        mbConfig.id     = FLEXCAN_ID_STD(0x121U);
        FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true);


2. MB0 and MB1 are not used. In this case, ERFFEL[0–31] are available for acceptance filtering, and MB2–MB6 are reserved as Message Buffers, maximum ERFCR[NFE] is 15. The following code can be used as reference for the driver configuration for this case. 

/* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x142. Used ERFFEL[0–31], ERFCR[NFE]=15 */
uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x141, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x142, 0, 0x3F, 0)};

flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig;

        /* Setup Enhanced Rx FIFO. */
        rxEhFifoConfig.idFilterTable     = rxEnFifoFilter;
        rxEhFifoConfig.idFilterPairNum   = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U;
        rxEhFifoConfig.extendIdFilterNum = 0;
        rxEhFifoConfig.fifoWatermark     = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */
        rxEhFifoConfig.dmaPerReadLength  = kFLEXCAN_19WordPerRead;
        rxEhFifoConfig.priority          = kFLEXCAN_RxFifoPrioHigh;
        FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true);
        rxFifoXfer.framefd  = &rxFrame[0];
        rxFifoXfer.frameNum = RX_MESSAGE_COUNT;

3. MB0 and MB1 are both used. Under this configuration, only ERFFEL[0–11] can be used as acceptance filters. ERFFEL[12–31] are not available, while MB0–MB6 can be used as Message Buffers, maximum ERFCR[NFE] is 5. The following code can be used as reference for the driver configuration for this case. 

/* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x12E. Used ERFFEL[0–11], ERFCR[NFE]=5 */
uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0),
                             FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0)};

flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig;
flexcan_rx_mb_config_t mbConfig;

        /* Setup Enhanced Rx FIFO. */
        rxEhFifoConfig.idFilterTable     = rxEnFifoFilter;
        rxEhFifoConfig.idFilterPairNum   = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U;
        rxEhFifoConfig.extendIdFilterNum = 0;
        rxEhFifoConfig.fifoWatermark     = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */
        rxEhFifoConfig.dmaPerReadLength  = kFLEXCAN_19WordPerRead;
        rxEhFifoConfig.priority          = kFLEXCAN_RxFifoPrioHigh;
        FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true);
        rxFifoXfer.framefd  = &rxFrame[0];
        rxFifoXfer.frameNum = RX_MESSAGE_COUNT;

        /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */
        FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0));

#define RX_MESSAGE_BUFFER_0 (0U)
        /* Setup Rx Message Buffer 0. */
        mbConfig.format = kFLEXCAN_FrameFormatStandard;
        mbConfig.type   = kFLEXCAN_FrameTypeData;
        mbConfig.id     = FLEXCAN_ID_STD(0x120U);
        FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_0, &mbConfig, true);

#define RX_MESSAGE_BUFFER_1 (1U)
        /* Setup Rx Message Buffer 1. */
        mbConfig.format = kFLEXCAN_FrameFormatStandard;
        mbConfig.type   = kFLEXCAN_FrameTypeData;
        mbConfig.id     = FLEXCAN_ID_STD(0x121U);
        FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true);

Recommendation:
To achieve a balanced trade-off between the number of Message Buffers and acceptance filters, Option 1 is recommended.

%3CLINGO-SUB%20id%3D%22lingo-sub-2359825%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3EErrata%20ERR053377%3A%20Use%20Cases%20for%20Different%20Message%20Buffer%20Configurations%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2359825%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3E%3CP%3EThis%20article%20discusses%20the%20different%20use%20cases%20and%20configuration%20of%20the%20errata%20%22%3CSPAN%3EERR053377%3A%26nbsp%3BFlexCAN%3A%26nbsp%3BMessage%26nbsp%3BBuffer%26nbsp%3B(MB)%26nbsp%3Band%26nbsp%3BEnhanced%26nbsp%3BRX%26nbsp%3BFIFO%26nbsp%3BFilter%26nbsp%3BElement%26nbsp%3B(ERFFEL)%26nbsp%3BMemory%26nbsp%3BCorruption%22.%20The%20errata%20is%20impacting%20Messabe%20Buffers%20(MB)%20and%20Enhanced%20RX%20FIFO%20Filter%20Elements%20(ERFFEL)%2C%20the%20impact%20of%20each%20MB%20or%20ERFFEL%20depends%20on%20the%20configuration%20of%20the%20payload%20buffer%2C%20MB%20and%2For%20ERFFEL.%20In%20this%20post%2C%20we%20plan%20to%20provide%20some%20examples%20of%20such%20configuration%20and%20impact%20on%20the%20FlexCAN%20IP.%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ETaking%20a%2064-byte%20payload%20as%20an%20example%2C%20the%20following%20configurations%20illustrate%20the%20trade-off%20between%20the%20number%20of%20Message%20Buffers%20(MBs)%20and%20acceptance%20filters%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%2F*%20ERR053377%3A%20This%20errata%20explains%20affected%20words%20depends%20on%20MB%20payload%20size%2C%20this%20example%20applies%20for%20MB%20configured%20for%2064-byte%20payload%20*%2F%0A%23define%20BYTES_IN_MB%20kFLEXCAN_64BperMB%0A%0AFLEXCAN_FDInit(EXAMPLE_CAN%2C%20%26amp%3BflexcanConfig%2C%20EXAMPLE_CAN_CLK_FREQ%2C%20BYTES_IN_MB%2C%20true)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E1.%20MB0%20is%20not%20used%2C%20MB1%20is%20used.%20In%20this%20configuration%2C%20ERFFEL%5B0%E2%80%9329%5D%20can%20be%20fully%20utilized%20as%20acceptance%20filters%2C%20while%20MB1%E2%80%93MB6%20are%20available%20as%20Message%20Buffers%2C%26nbsp%3Bmaximum%20ERFCR%5BNFE%5D%20is%2014.%20The%20following%20code%20can%20be%20used%20as%20reference%20for%20the%20driver%20configuration%20for%20this%20case.%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%2F*%20Config%20fifo%20filters%20to%20make%20it%20accept%20STD%20frame%20with%20ID%200x123%20~%200x140.%20Used%20ERFFEL%5B0%E2%80%9329%5D%2C%20ERFCR%5BNFE%5D%3D14%20*%2F%0Auint32_t%20rxEnFifoFilter%5B%5D%20%3D%20%7BFLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140%2C%200%2C%200x3F%2C%200)%7D%3B%0A%0Aflexcan_enhanced_rx_fifo_config_t%20rxEhFifoConfig%3B%0Aflexcan_rx_mb_config_t%20mbConfig%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Enhanced%20Rx%20FIFO.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterTable%20%20%20%20%20%3D%20rxEnFifoFilter%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterPairNum%20%20%20%3D%20sizeof(rxEnFifoFilter)%20%2F%20sizeof(rxEnFifoFilter%5B0%5D)%20%2F%202U%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.extendIdFilterNum%20%3D%200%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.fifoWatermark%20%20%20%20%20%3D%20RX_MESSAGE_COUNT%20-%201U%3B%20%2F*%20Reduce%20the%20frequency%20to%20enter%20IRQ.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.dmaPerReadLength%20%20%3D%20kFLEXCAN_19WordPerRead%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.priority%20%20%20%20%20%20%20%20%20%20%3D%20kFLEXCAN_RxFifoPrioHigh%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN%2C%20%26amp%3BrxEhFifoConfig%2C%20true)%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.framefd%20%20%3D%20%26amp%3BrxFrame%5B0%5D%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.frameNum%20%3D%20RX_MESSAGE_COUNT%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Set%20Rx%20Masking%20mechanism%20for%20MB.%20Only%20accept%20data%20frame%20with%20desired%20ID.%20*%2F%0A%20%20%20%20%20%20%20%20FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN%2C%20FLEXCAN_RX_MB_STD_MASK(0x7FFU%2C%200%2C%200))%3B%0A%0A%23define%20RX_MESSAGE_BUFFER_1%20(1U)%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Rx%20Message%20Buffer%201.%20*%2F%0A%20%20%20%20%20%20%20%20mbConfig.format%20%3D%20kFLEXCAN_FrameFormatStandard%3B%0A%20%20%20%20%20%20%20%20mbConfig.type%20%20%20%3D%20kFLEXCAN_FrameTypeData%3B%0A%20%20%20%20%20%20%20%20mbConfig.id%20%20%20%20%20%3D%20FLEXCAN_ID_STD(0x121U)%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN%2C%20RX_MESSAGE_BUFFER_1%2C%20%26amp%3BmbConfig%2C%20true)%3B%0A%0A%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E2.%20MB0%20and%20MB1%20are%20not%20used.%20In%20this%20case%2C%20ERFFEL%5B0%E2%80%9331%5D%20are%20available%20for%20acceptance%20filtering%2C%20and%20MB2%E2%80%93MB6%20are%20reserved%20as%20Message%20Buffers%2C%26nbsp%3Bmaximum%20ERFCR%5BNFE%5D%20is%2015.%26nbsp%3BThe%20following%20code%20can%20be%20used%20as%20reference%20for%20the%20driver%20configuration%20for%20this%20case.%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%2F*%20Config%20fifo%20filters%20to%20make%20it%20accept%20STD%20frame%20with%20ID%200x123%20~%200x142.%20Used%20ERFFEL%5B0%E2%80%9331%5D%2C%20ERFCR%5BNFE%5D%3D15%20*%2F%0Auint32_t%20rxEnFifoFilter%5B%5D%20%3D%20%7BFLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x141%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x142%2C%200%2C%200x3F%2C%200)%7D%3B%0A%0Aflexcan_enhanced_rx_fifo_config_t%20rxEhFifoConfig%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Enhanced%20Rx%20FIFO.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterTable%20%20%20%20%20%3D%20rxEnFifoFilter%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterPairNum%20%20%20%3D%20sizeof(rxEnFifoFilter)%20%2F%20sizeof(rxEnFifoFilter%5B0%5D)%20%2F%202U%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.extendIdFilterNum%20%3D%200%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.fifoWatermark%20%20%20%20%20%3D%20RX_MESSAGE_COUNT%20-%201U%3B%20%2F*%20Reduce%20the%20frequency%20to%20enter%20IRQ.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.dmaPerReadLength%20%20%3D%20kFLEXCAN_19WordPerRead%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.priority%20%20%20%20%20%20%20%20%20%20%3D%20kFLEXCAN_RxFifoPrioHigh%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN%2C%20%26amp%3BrxEhFifoConfig%2C%20true)%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.framefd%20%20%3D%20%26amp%3BrxFrame%5B0%5D%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.frameNum%20%3D%20RX_MESSAGE_COUNT%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E3.%20MB0%20and%20MB1%20are%20both%20used.%20Under%20this%20configuration%2C%20only%20ERFFEL%5B0%E2%80%9311%5D%20can%20be%20used%20as%20acceptance%20filters.%20ERFFEL%5B12%E2%80%9331%5D%20are%20not%20available%2C%20while%20MB0%E2%80%93MB6%20can%20be%20used%20as%20Message%20Buffers%2C%26nbsp%3Bmaximum%20ERFCR%5BNFE%5D%20is%205.%26nbsp%3BThe%20following%20code%20can%20be%20used%20as%20reference%20for%20the%20driver%20configuration%20for%20this%20case.%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%2F*%20Config%20fifo%20filters%20to%20make%20it%20accept%20STD%20frame%20with%20ID%200x123%20~%200x12E.%20Used%20ERFFEL%5B0%E2%80%9311%5D%2C%20ERFCR%5BNFE%5D%3D5%20*%2F%0Auint32_t%20rxEnFifoFilter%5B%5D%20%3D%20%7BFLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D%2C%200%2C%200x3F%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E%2C%200%2C%200x3F%2C%200)%7D%3B%0A%0Aflexcan_enhanced_rx_fifo_config_t%20rxEhFifoConfig%3B%0Aflexcan_rx_mb_config_t%20mbConfig%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Enhanced%20Rx%20FIFO.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterTable%20%20%20%20%20%3D%20rxEnFifoFilter%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.idFilterPairNum%20%20%20%3D%20sizeof(rxEnFifoFilter)%20%2F%20sizeof(rxEnFifoFilter%5B0%5D)%20%2F%202U%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.extendIdFilterNum%20%3D%200%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.fifoWatermark%20%20%20%20%20%3D%20RX_MESSAGE_COUNT%20-%201U%3B%20%2F*%20Reduce%20the%20frequency%20to%20enter%20IRQ.%20*%2F%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.dmaPerReadLength%20%20%3D%20kFLEXCAN_19WordPerRead%3B%0A%20%20%20%20%20%20%20%20rxEhFifoConfig.priority%20%20%20%20%20%20%20%20%20%20%3D%20kFLEXCAN_RxFifoPrioHigh%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN%2C%20%26amp%3BrxEhFifoConfig%2C%20true)%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.framefd%20%20%3D%20%26amp%3BrxFrame%5B0%5D%3B%0A%20%20%20%20%20%20%20%20rxFifoXfer.frameNum%20%3D%20RX_MESSAGE_COUNT%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Set%20Rx%20Masking%20mechanism%20for%20MB.%20Only%20accept%20data%20frame%20with%20desired%20ID.%20*%2F%0A%20%20%20%20%20%20%20%20FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN%2C%20FLEXCAN_RX_MB_STD_MASK(0x7FFU%2C%200%2C%200))%3B%0A%0A%23define%20RX_MESSAGE_BUFFER_0%20(0U)%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Rx%20Message%20Buffer%200.%20*%2F%0A%20%20%20%20%20%20%20%20mbConfig.format%20%3D%20kFLEXCAN_FrameFormatStandard%3B%0A%20%20%20%20%20%20%20%20mbConfig.type%20%20%20%3D%20kFLEXCAN_FrameTypeData%3B%0A%20%20%20%20%20%20%20%20mbConfig.id%20%20%20%20%20%3D%20FLEXCAN_ID_STD(0x120U)%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN%2C%20RX_MESSAGE_BUFFER_0%2C%20%26amp%3BmbConfig%2C%20true)%3B%0A%0A%23define%20RX_MESSAGE_BUFFER_1%20(1U)%0A%20%20%20%20%20%20%20%20%2F*%20Setup%20Rx%20Message%20Buffer%201.%20*%2F%0A%20%20%20%20%20%20%20%20mbConfig.format%20%3D%20kFLEXCAN_FrameFormatStandard%3B%0A%20%20%20%20%20%20%20%20mbConfig.type%20%20%20%3D%20kFLEXCAN_FrameTypeData%3B%0A%20%20%20%20%20%20%20%20mbConfig.id%20%20%20%20%20%3D%20FLEXCAN_ID_STD(0x121U)%3B%0A%20%20%20%20%20%20%20%20FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN%2C%20RX_MESSAGE_BUFFER_1%2C%20%26amp%3BmbConfig%2C%20true)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CSTRONG%3ERecommendation%3A%3C%2FSTRONG%3E%3CBR%20%2F%3ETo%20achieve%20a%20balanced%20trade-off%20between%20the%20number%20of%20Message%20Buffers%20and%20acceptance%20filters%2C%20Option%201%20is%20recommended.%3C%2FP%3E%3C%2FLINGO-BODY%3E
No ratings
Version history
Last update:
‎05-20-2026 08:30 PM
Updated by: