I have two nodes A and B operating on a CAN bus. I have cut the bus off and Node A
reached the error passive state due to the lack of ack from Node B
(because I removed the bus).
What I noticed is that the Node A
shall never reach the bus off state regardless of the fact that the TEC value is constantly increasing.
My question: Is that happening because there is no actually a real bus?
Best Answer
A CAN node enters the "BUS_OFF" state when the TEC value goes above 255. But if you look at the CAN specifications carefully, it has a special condition:
On Part A - page 26 OR Part B - page 63:
In your condition, when you cut the bus, node A is the only node on the bus and hence it will remain in
Error Passive
, but it will never go to theBUS_OFF
state... That's as per design.I believe if you are the only one node on the bus, there is no point in being in the "BUS_OFF" state; rather the node should wait for other devices to start/get connected.