This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

tms570 dcan lost arbitration retransmit failure

Hello,
I work with mcbtms570 and I have DCAN problem. I need to know, how can I detect re-transmit failure after lost arbitration? Very helpfull will be also information if does exist something like lost arbitration interrupt? In datasheet I couldn't find any information about this.

For any help I will be very thankful.

Regards,
Filip

  • 20.2.8.3 Transmission of Messages in Event Driven CAN Communication

    If the DCAN has lost the arbitration or if an error occurred during the transmission, the message will be retransmitted as soon as the CAN bus is free again.

    If Automatic Retransmission mode is disabled by setting the DAR bit in the CAN Control Register, the behavior of bits TxRqst and NewDat in the Message Control Register of the Interface Register set is as follows:
    • When a transmission starts, the TxRqst bit of the respective Interface Register set is reset, while bit NewDat remains set.
    • When the transmission has been successfully completed, the NewDat bit is reset.
    When a transmission failed (lost arbitration or error) bit NewDat remains set. To restart the transmission, the application has to set TxRqst again.

  • I need to know, how can I detect re-transmit failure after lost arbitration?

    Strictly speaking you can't, because there is no such thing as a "re-transmit failure" in CAN, and even if there was, lost arbitration would have little or nothing to do with that.

    Lost arbitration is just a fact of life on CSMA-type networks like CAN. It'll happen to you, and CAN is designed to tolerate it. That's why it has automatic re-transmission and message prioritization built right into the standard.

    You don't need to do anything to get your CAN node to re-transmit after losing arbitration. Nor is there a fixed limit on the number of attempts or the maximum allowed time for re-transmission attempts, thus no such thing as a "re-transmit failure".

    If the bus really is so busy as to not allow your transmission to make it onto the bus at all, the signal you should be looking is not an interrupt --- it's a lack of Tx confirmation interrupts.