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.

TMS570LS3137: CAN bus error couldn't recover

Part Number: TMS570LS3137

Hi there,

I'm developing CAN app and have been pumping out CAN messages. Sometimes when it stops there are 2 framing error messages and the transmission wouldn't go on until power cycle.

I have enabled error notificaiton and indeed have been called back when it happened (notification 60 I believe).

What I don't understand is why would this happen in the first place and why wouldn't the driver take cares of the recovery?

Thanks,

Karl

  • Hello Karl,

    The DCAN controller provides a mechanism to automatically retransmit frames which have lost arbitration or have been disturbed by errors during transmission. Clearing DAR bit (5th) of CAN control register enables the retransmission.

    The CAN protocol defines no less than five different ways of detecting errors. Two of these works at the bit level, and the other three at the message level.
    1. Bit Monitoring: Bit 0 error and Bit 1 error
    2. Bit Stuffing
    3. Frame or Form Check
    4. ACK Check
    5. CRC Check

    Please check the LEC bit field of Error Status Register to find error message for your failed frame.
  • QJ Wang,

    Thanks for the note. I've found the error is caused by external interference.

    Karl