This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR6843AOP: IWR6843AOP, CAN-FD, Rx problem

Part Number: IWR6843AOP

Hi,

I continue to encounter issues while using CAN-FD. I am utilizing the IWR6843AOP integrated into a custom board with modified OOB firmware for CAN usage. My goal is to operate multiple such boards on a common CAN bus. During code debugging, I have made several observations:

A) When I configure mcanCfgParams->errInterruptEnable = 0U and mcanCfgParams->dataInterruptEnable = 0U, I am able to operate several boards on the bus. However, in this setup, there are no interrupts for message reception, thus no callbacks are invoked.

B) Conversely, when I set mcanCfgParams->errInterruptEnable = 1U and mcanCfgParams->dataInterruptEnable = 1U, only a single board can function on the bus. If additional boards are added (or when sending some generated messages to the bus), the code ceases to work - likely halting before a callback is invoked, based on my debugging experience.

I have identified some aspects of the configuration that I am unsure about:

  1. In the context of receiving CAN-FD messages, should mcanCfgParams->filterConfig.rrfe be set to 1U instead of 0x0U?

  2. I am puzzled by this configuration, considering the valid value range:

    • mcanCfgParams->msgRAMConfig.rxFIFO1waterMark = 64U;
    • mcanCfgParams->msgRAMConfig.rxFIFO1OpMode = 64U;

    Where:

    /*! Rx FIFO1 Watermark
    * 0 = Watermark interrupt disabled
    * 1-63 = Level for Rx FIFO 1 watermark interrupt
    * others = Watermark interrupt disabled
    */
    uint32_t rxFIFO1waterMark;

    /*! Rx FIFO1 Operation Mode
    * 0 = FIFO blocking mode
    * 1 = FIFO overwrite mode
    */
    uint32_t rxFIFO1OpMode;

Moreover, I cannot trigger the condition if (reason == CANFD_Reason_RX) in MCANAppCallback. Additional debug prints have indicated that the callback function is never called with CANFD_Reason_RX as a reason.

Thank you for your assistance.

Regards,

Adam