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.

AM4376: CAN error counter

Part Number: AM4376

Hi Sitara support Team,

In the following post, I would like to make clear about "Open status causes 'bus-off'?". 

Regarding the increase of the error counter, ISO11898-1 has the following two exception,
and there is a function that does not count up the error counter.
If there is no recipient, it corresponds this case and it stops counting up.
Does AM4376 comply with this exceptions?

===Excerpts from 13.1.4.2 Error counting in ISO 11898-1===

c) When a transmitter sends an error flag, the transmit error counter shall be increased by eight (8).

1) Exception 1: if the transmitter is error-passive and detects an ACK error because of not detecting a
dominant ACK and does not detect a dominant bit while sending its passive error flag.

2) Exception 2: if the transmitter sends an error flag because a stuff error occurred during arbitration,
whereby the stuffbit should have been recessive, and has been sent as recessive but is monitored as dominant.

In both exceptions the transmit error counter remains unchanged.
============================================================

Best regards,
Kanae

  • hello Kanae,

    The DCAN module on AM437x supports CAN protocol version 2.0 part A, B (ISO 11898-1). Those two exceptions which are defined in CAN 2.0 specification should be implemented in this CAN controller.

  • Hi QJ Wang,

    Thank you for your reply.

    In your post, those two exceptions should be implemented in this CAN controller.
    My customer uses "ti-processor-sdk-linux-am437x-evm-01.00.00.03",
    does the SDK implement the exception?
    Could I have the way to check that the exceptions works on SDK-Linuxv1.00.00.03?

    I will wait for your reply for the following thread.
    e2e.ti.com/.../3285940

    My customer needs to know that the following design change is expected as a CAN design.

    The bus-off does not occur by adding a termination resistor to the NG boards.
    This status is causes by the following condition...

    1. No transmission error occurs
    Or
    2. Even if a transmission error occurs, all apply to exception handling

    If you need more information for this issue, please let me know.

    Best regards,
    Kanae

  • Hello Kanae,

    The CAN specification says:

    Start-up / Wake-up: If during start-up only 1 node is online, and if this node transmits some message, it will get no acknowledgment, detect an error and repeat the message. It can become ’error passive’ but not ’bus off’ due to this reason.

    The specification also requires 120Ω (nominal) terminating resistors at each end of the bus.

    The CAN fault confinement is implemented in CAN controller HW rather than the external SW (like SDK).

  • HI QJ Wang,

    Thank you for your reply,

    In your post, "The CAN fault confinement is implemented in CAN controller HW",
    Is this meant AM4376's CAN controller HW has the CAN fault confinement function, or not?

    Best regards,
    Kanae

  • Hi Kanae,

    The RX error counter and TX error counter automatically adjust their values based those rules.