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.

TMS320F280049: F28377DCAN ID Musk and BIT filed example

Part Number: TMS320F280049


Hi Champion,

I have a question for DCAN, it F28377 DCAN , it has 11/29bit ID and 28 bit mask function, my question is if I set mask bit in IFCMD "0", so identify for every frame just "ID" bit or do not have any identify, every frame will be receive to message RAM?

Thanks!

BR

Joe

  • Hi Joe,

    Yes, your assumption is correct. If mask bit is "0", then all messages from all IDs will be received and available in message RAM.

    Regards,
    Joseph
  • Hi Joseph,

    Let me claify again, there is two question I want to ask:

    1. in IFXARB register, there is a 29 bit "ID", it is a identify for reveiver frame, mask have no effect for it, right? But when we initialize the message RAM, it is like message ID will identify revcevie frame with same message ID?

    2. Mask bit just define whether we need IFXMSK register 29bit addition identify right?

    So let me summary, any frame recevie for DCAN, it must pair "ID" in IFXARB, and can select whether it need another mask bit to pair again in IFXMSK register, right?

    Because it not clear in TRM, so we need your help to give a detail explain about, thanks!

    BR

    Joe

  • Joe,

                I think you are confusing the Msk bit in IFxMSK register with the Mask bit in IFxCMD register.        

     

    The function of the Mask bit in IFxCMD register is to transfer the mask field from/to the Mailbox to/from the IFx Register set.

    • If Mask=1 & DIR=0 (Read), the Mask bits will be transferred from the Mailbox to the IF1/IF2 Register set.
    • If Mask=1 & DIR=1 (Write), the Mask bits will be transferred to the Mailbox from the IF1/IF2 Register set.

     

    Whether or not to use a bit position for filtering (masking) is determined by the Msk bit-field in IFxMSK register.

     

    In IFXARB register, there is a 29 bit "ID", it is a identifier for receiver frame, mask have no effect for it, right?

    Answer--> That field holds the Message ID (MSGID). The definition of that field depends on whether the mailbox is a transmit mailbox or a receive mailbox.

    If the mailbox is a transmit mailbox, it holds the MSGID of the frame to be transmitted.

    If the mailbox is a receive mailbox, it holds the MSGID of the frame to be received, after satisfying the filtering criterion (if any).

     

    But when we initialize the message RAM, it is like message ID will identify receive frame with same message ID?

    Answer--> Yes. If no filtering is used, the message to be received must have a MSGID that matches exactly the MSGID stored in the mailbox. If filtering is used, the message to be received must have a MSGID that passes filtering criteria mandated by the IFxMSK register that is used by the mailbox. Whether or not to use a filter is determined by the UMask bit in IFxMCTL register.

     

    Mask bit just define whether we need IFXMSK register 29bit addition identify right? So let me summary, any frame received for DCAN, it must pair "ID" in IFXARB, and can select whether it need another mask bit to pair again in IFXMSK register, right?

    Answer--> Sorry, I don’t understand what you are asking here. I hope my explanation in the rest of the post clarifies your doubts.