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.

Stopping eCan error retransmission on TMS320F2809

Other Parts Discussed in Thread: TMS320F28335

We are trying to maintain a "timely" CAN output stream on a "tight" timing basis. Our environment can be noisy & we've found that an error detected on the bus generates an error packet and retransmission of the same packet. I believe this action is driven by  CAN specification. We would rather "lose" the retransmission than upset timing ..  thus we've tried various ways of inhibiting the error "retry" but without any luck so far.

Upon each packet transmission, we now attempt to abort a future transmission via TRR0 bit (we're transmitting on Mailbox 0) and tried a "timeout"/ABORT setting the time to a value less than the packet ending time .. both with no luck.

Does anybody know a way to avoid this retransmission via eCAN register programming?

thanks ..



  • Richard,

    We tested this and found it works as documented. Attahced is the test case we used. It initiates a transmission, waits until a few bits have shown up on the bus and then corrupts the bus using CANTXB pin in the GPIO mode. After the occurance of error frames, the transmission is correctly aborted.

     

    Abort_behavior.zip
  • Dear HareeshJ / Richard ,

    Could you throw some more light on how the automatic retransmission can be disabled in the eCAN module ? I am using the TMS320F28335 but I think similar steps will apply.

    HareeshJ, I did not quite get the example you have given. How can it be applied to detect an error and then disable retransmission? Plz explain.

    Thanks and Regards,

    Amit K

  • Amit,

    Automatic retransmission cannot be disabled in eCAN module. (The CAN module in the Concerto series has this ability). However, if the TRR bit is set, retransmission will not happen if the current transmission is aborted due to an error condition. Hope it is clear now.

    The test case I attached demonstrates/proves this by doing the following: The CANTXB pin is used as a GPIO pin and is used to corrupt the bus while a transmission is on going. This corrupts the bus, but the transmitting node is prevented from re-transmitting because the TRR bit of the transmitting mailbox is set.