4
\$\begingroup\$

I have a device based on TMS470R1B1M from which I try to send CAN standard frames every second. As soon as I turn on the device, the device enters the error passive state.

How do I handle this error condition?

\$\endgroup\$
5
  • 2
    \$\begingroup\$ What device? A datasheet and/or a schematic would be helpful. \$\endgroup\$ Sep 5, 2012 at 13:58
  • 1
    \$\begingroup\$ Please post an image of your schematic. (Preferably just the bits relevant to CAN, including micrcontroller). \$\endgroup\$ Sep 5, 2012 at 17:09
  • 1
    \$\begingroup\$ And what other devices do you have on the bus? \$\endgroup\$
    – Dave Tweed
    Sep 5, 2012 at 20:07
  • 3
    \$\begingroup\$ Usually this is because you forget the terminating resistors. They aren't only to terminate the bus, but also to float the lines to the recessive state when not being driven. \$\endgroup\$ Sep 5, 2012 at 23:38
  • \$\begingroup\$ I am using TMS470R1B1M controller. The CAN Port of this controller is connected to the PC based CAN analyser tool. The termination resistance is available. There are no other devices on the network. \$\endgroup\$
    – Vivek V
    Sep 6, 2012 at 4:50

2 Answers 2

4
\$\begingroup\$

If there are no other devices on the bus — and I'm assuming your "CAN analyser" is completely passive — then that's your problem. As soon as your device sends a message, it fails to see any acknowledgement of it, and keeps resending until the error counters force it into the error passive state.

A functional CAN bus always has to have at least two active devices on it.

\$\endgroup\$
2
\$\begingroup\$

My Analysis:

  1. Have you configured your baudrate correctly? If Baudrate of your device do not matches with that of CAN Analyser, You end up generating Error frames as soon as your device starts up.
  2. You say You have terminating resistor on bus. Hope it is of 120ohm.
  3. Make sure that your CAN Analyser is turned on. CAN bus requires at least 2 active nodes (Including transmitting one) for correct transmission as it waits for ACK.
\$\endgroup\$
1
  • \$\begingroup\$ hi, the Baud rate configuration was incorrect, resulting in this issue, thanks a lot for everyone \$\endgroup\$
    – Vivek V
    Sep 8, 2012 at 11:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.