0
\$\begingroup\$

I'm developing a device which is controlled by the received CAN messages. The device should be eventually mounted in a vehicle. The device receives messages only. It doesn't send any messages on the bus.

The device was tested in HiL successfully.

Once the end customer connected the device in the vehicle, more than 3000 errors were detected on the bus in short time.

As far as I understand, if my device detected 127 errors while receiving the messages, it should go "error passive" and after 255 errors it should go "bus off". Isn't it correct. My device is not configured to automatically re-transmit after entering "bus off" mode.

My question is, what can cause those many errors once my device is connected on the bus? The bus had no errors before connecting my device.

My assumption is that the senders on the bus don't have the same bit-timing as my device. But even if this is the case, the maximum errors detected should be 255, right?

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Why is the word "infinite" used in the title? \$\endgroup\$ Commented Dec 6, 2019 at 8:22
  • \$\begingroup\$ What happens when your device is set to silent? \$\endgroup\$ Commented Dec 6, 2019 at 8:24
  • \$\begingroup\$ @Andyaka The error number keeps increasing without an end as long as the device is connected to the bus. \$\endgroup\$ Commented Dec 6, 2019 at 8:42
  • \$\begingroup\$ @Jeroen3 I didn't try to. It should not be silent. But this is something I can try for debugging. \$\endgroup\$ Commented Dec 6, 2019 at 8:44

1 Answer 1

1
\$\begingroup\$

My assumption is that the senders on the bus don't have the same bit-timing as my device. But even if this is the case, the maximum errors detected should be 255, right?

Acknowledge timeout does not cause bus-off.

\$\endgroup\$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.