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.

TMS320F28379D: Sequence of CAN message out of CAN controller

Part Number: TMS320F28379D

Hi,

From what I understand on the CAN bus, message with the lowest message ID will be transmitted first. is the true for CAN controller also?

My question focuses on CAN controller, there are 32 CAN message object (uint32_t ui32ObjID) and if I have 32 messages to be transmitted I can configure each of this message object as {MSG_OBJ_TYPE_TX - CAN transmit message object}.

So which message will be transmitted the first, will the CAN Controller transmit message of CAN Object 1 followed by CAN object 2 or will it check the message ID and after that decide which message to tranmit.

Just for making it clear here is an example of what I am asking:

Message Object 1 has a message to be transmitted with message ID as 0x500

Message Object 2 has a message to be transmitted with message ID as 0x100

Would the message ID with 0x500 will be transmitted first or message ID 0x100.

Thank you,

Jay

  • Jay, 

    This has been explained in the Technical Reference Manual as follows:

    Would the message ID with 0x500 will be transmitted first or message ID 0x100.

    Message ID with 0x500 (Message object 1) will be transmitted first (if multiple transmission requests are pending).

    Thanks.

  • From what I understand on the CAN bus, message with the lowest message ID will be transmitted first.

    What would be accurate to say is the following: When multiple nodes compete for the bus at exactly the same time, the node transmitting the numerically least message ID will win the arbitration and continue the transmission.

    So which message will be transmitted the first, will the CAN Controller transmit message of CAN Object 1 followed by CAN object 2 or will it check the message ID and after that decide which message to tranmit.

    When multiple message objects are marked for transmission, the numerically smallest message object will transmit first (independent of the message ID it is attempting to transmit). This is what Sahil pointed out.

  • Thank you Sahil, this resolves my issue