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.

AWRL6432: MCAN Range Filter setting

Part Number: AWRL6432

I am using MMWAVE_L_SDK_SDK_05_03_00_02.  I have similar range filter function issue but for extended message ID format not standard message ID.

Below is my range filter setting.

static void App_mcanInitExtFilterElemParams(MCAN_ExtMsgIDFilterElement *extFiltElem,
                                            uint32_t bufNum)
{

    extFiltElem->efid1 = 0xC0;
    
    extFiltElem->efid2 = 0xC0+5;
    
    extFiltElem->efec  = MCAN_EXT_FILT_ELEM_BUFFER;
    
    extFiltElem->eft   = MCAN_EXT_FILT_TYPE_RANGE;

    return;
}

I want to know whether the range filter for extended message ID has the same issue for the standard message ID?

Does the issue has been solved in MMWAVE_L_SDK_SDK_05_03_00_02?

Thanks a lot.

  • Hey Steven,

    Thanks for reaching out regarding your MCAN question. Please give me a day or two to look into this issue. For now, its important to note that the Extended ID AND Mask (XIDAM) is ANDed with the received message identifier before the Extended ID filter list is executed. Additionally, the Global Filter Configuration (GFC) has an additional option to accept non-matching frames to one of the Rx FIFOs - the default for TI's MCAN examples should be Rx FIFO 1 - and reject remote frames - only used to request data from specific node and rejected for TI's MCAN examples. Have you already verified whether or not you are able to receive the range of extended message IDs specified after ANDing the Extended ID AND Mask? Are you only receiving one message? The diagram shown below from the Bosch MCAN Users Manual outlines the flow for extended message ID filtering. I have also posted a link Bosch's MCAN User Guide below as well.

    https://www.bosch-semiconductors.com/media/ip_modules/pdf_2/m_can/mcan_users_manual_v331.pdf

    Hopefully this helps out in the meantime, and I'll get back to you within the next day or two.

    Regards,

    Kristien

  • Dear Kristien,

    I have checked the Global Filter Configuration and the anfe field (Accept Non-matching Frames Extended) is 1. Therefore, GFC should not be the problem.

    I am only receiving one message with the message id specified in the field efid2 of the extended filter element. The XIDAM is neither the root cause.

    Have you new information for this issue?

    Thanks.

  • Hey Steven,

    I took a look back over the code you sent and the CAN registers and had a few questions. Are you using the MCAN loopback polling example? If not, I would recommend looking through that example as it implements extended message ID filtering. Are you using the MCAN_readMsgRam function to read the Rx buffer or Rx FIFO? Based on the EFEC register, the CAN messages are being sent to the buffer and not one of the FIFOs. Since the EFEC register is configured this way, the EFT register is ignored as described in the MCAN User's Guide and only one ID is stored in the buffer. If you would like to avoid this issue, you will have to change the EFEC register to store in FIFO 0 (0b001) or FIFO 1 (0b010) and read from the respective FIFO using MCAN_readMsgRam. 

    Let me know if this helps and if you have any other questions.

    Regards,

    Kristien