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 questions

Part Number: TMS320F280049


Dear Champs,

I am asking for our customer.

Would you please help us clarify below questions about using CAN?

1) Are the 32 object message RAM shared by CAN_A and CAN_B, or each CAN has own 32 object message RAM?

2) Are IF1/IF2 independent or dependent? If one of IF1/IF2 is busy, does the other need to wait or can it process at the same time?

3) If there is a reception data being saved onto object ID#1 and then another data is coming in to update object ID#1. Then will the first data on ID#1 be kept or overridden by the newer one?

4) About remote frame. Should the user put data on to a mailbox before host sends a request? That is, the corresponding mail box will reply automatically after the request. If the user gets the request and then puts the data on the mailbox, can it reply the request as well?

Wayne Huang

  • Hi Wayne,

    Please see responses below:

    1) Are the 32 object message RAM shared by CAN_A and CAN_B, or each CAN has own 32 object message RAM?

      - Each CAN has its own 32 message objects that can be used as transmit objects, receive objects, or combinations of both.

    2) Are IF1/IF2 independent or dependent? If one of IF1/IF2 is busy, does the other need to wait or can it process at the same time?

     - IF1/IF2 are independent of each other.  Not sure what customer meant about processing these at the same time.  CPU can only access one register at a time (eg writing a value to CAN_IF1CMD register, after which CPU can write to CAN_IF2ARB if there is only one CPU), but it is certainly possible for CPU to be writing to CAN_IF1CMD while DMA is updating the contents of CAN_IF2ARB.

    3) If there is a reception data being saved onto object ID#1 and then another data is coming in to update object ID#1. Then will the first data on ID#1 be kept or overridden by the newer one?

     - If previous data from object ID1 has not been read/acknowledged by the CPU and there is another valid received frame that will update object ID1, then the data in object ID1 will be overwritten (NewDat will be set) and MsgLst (message lost) flag in the IFxMCTL register will be set to indicate this occurrence.

    4) About remote frame. Should the user put data on to a mailbox before host sends a request? That is, the corresponding mail box will reply automatically after the request.

     - Upon reception of remote frame with a matching identifier, transmission is requested automatically when the remote frame is received (provided that RmtEn is set in the object).  That said, data has to be valid/available in the mailbox before the request otherwise CAN will respond with whatever data is contained in the mailbox upon reception of the remote frame.

     Best regards,

    Joseph