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.

CAN communication Bus busy check in C2000 series

Other Parts Discussed in Thread: TMS320F2808

I would like to know the method of checking CAN Bus busy status in C2000 series

  • What part number does your question pertain to?

  • Hi Hareesh,

    TMS320F2808 is the uC I am using for the project,

    And my doubt is If more than 3 nodes(running with firmware with different slave ID) try to access bus priority will goes to the least numbered ID, at this point remaining nodes will wait for bus free condition in data link layer or do I need to handle the situation in application layer?

  • All this is automatically handled by the CAN protocol. Once you transfer the data to be transmitted to the (transmit) mailbox RAM and set the corresponding TRSn bit, there is nothing you need to do. The node constantly monitors the bus, resolves any contention and transmits the data. i.e. in the case of lost arbitration or errors during transmission, re-transmission is automatic. Your code doesn’t have to do anything special to handle this situation. My app.note SPRA876 points to some excellent material on CAN in the References section. There are also tons of training material online that explain the protocol.
  • Hi Hareesh,

    Thanks for your input,

     So when mailbox RAM will get update ?Only after a successful data transfer? how many retry will execute for the data transfer?

  • So when mailbox RAM will get update? Only after a successful data transfer?

    Answer--> Sorry, I don’t understand what you are asking here. Your post is about a Transmit mailbox. It will get updated whenever your code writes to it. Are you asking about setting of the TA bit? If so, it is after transmission is successful.

     

    How many retry will execute for the data transfer?

    Answer--> In case of lost arbitration, retries will be forever. In case of error, it is a bit more complicated, depending on who is the source of error.