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: CAN F280049 identify CAN broadcasting frame with ID 0xFF?

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

Hi team,

Usually, in CAN communication protocol, we use ID 0xFF to represent a broadcasting frame.

However, if the identifier is configured to achieve point to point CAN communication. Then the broadcasting frame (ID 0xFF)will also be blocked.

Thus, my question is: how to receive a point to point CAN communication and broadcasting frame at the same time?

Do I have to use 2 mailboxes and set one to receive point to point frame and another one to receive broadcasting frame?

Thanks! 

  • Hi Weiki,

    CAN communication protocol does not assign a specific ID to a broadcasting frame.  Is it possible you are using a HLP (higher level protocol) that filters out the message from node ID 0xFF?

    Thanks,

    Joseph 

  • Hi Joseph,

    I have to admit this is my first time learning about HLP. Is that a function in 280049? Could you please share more details?

    Our aim is make 280049 be able to achieve point to point CAN communication (with identifier and masks), and be able to receive broadcasting CAN frame(ID: 0XFF).

  • Hi Weiki,

    No problem. In some cases, most users for CAN employ additional software layer to manage message transaction and filtering to make the functions more efficient for their end application as using the native CAN protocol may require them to write several lines of code to carry out a simple task of filtering out a specific ID. Users would have to go through register documents to figure out which bits and registers to program to enable acceptance filtering, for instance. To simplify this task, users may employ HLP, for instance CANOpen (which we currently do not support in C2000) or some other SW that they develop on their own to carry out such tasks so that instead of dealing with register transactions, CAN functions are simplified. This is what I was referring to. Maybe the HLP in your application sets up the acceptance filtering and prevents CAN from accepting messages from node ID 0xFF.

    CAN is a multimaster network where more than one node can transmit at one time. It can be used as point-to-point communication if acceptance filtering is defined properly between two nodes so these will be the only ones accepting messages from each other while the other nodes do their tasks. In F28004x, the node can accept ID 0xFF if 'Umask' is set to '1' and 'Mask' bits is set to ignore the last 2 bytes if the message ID (0xFF00) and you have to program this in register level. However, this is facilitated in C2000Ware. See function CAN_setupMessageObject() . You can set up the arguments to the function (msgIDMask and flags) to set the acceptance filtering correctly.

    Hopefully this will give you an idea on how acceptance filtering works.

    Best regards,
    Joseph