After the CAN has entered the bus-off state, the
CPU can start a bus-off-recovery sequence by resetting the Init bit. If this
is not done, the module stays in the bus-off state.
The CAN provides an automatic auto-bus-on feature
that is enabled by the ABO bit. If set, the CAN automatically starts the
bus-off-recovery sequence. The sequence can be delayed by a user-defined number of
clock cycles.
Note: If the CAN module goes Bus-Off due to multiple
CAN bus errors, the CAN module stops all bus activities and automatically sets the
Init bit. Once the Init bit is cleared by the application (or due to the auto-bus-on
feature), the device waits for 129 occurrences of Bus Idle (equal to 129 * 11
consecutive recessive bits) before resuming normal operation. The Bus-Off recovery
sequence cannot be shortened by setting or resetting the Init bit. At the end of the
bus-off recovery sequence, the error counters reset. After the Init bit is reset,
each time when a sequence of 11 recessive bits is monitored, a Bit0 Error code is
written to the Error and Status Register. This enables the CPU to check whether the
CAN bus is stuck at dominant or continuously disturbed, and to monitor the
proceeding of the Bus-Off recovery sequence.