Hi experts,
My customer is currently using AM3352. We are looking to implement a recovery process when CAN communication transitions to a bus-off state. From looking at the TRM(Refer to 23.3.8.2.2 Auto-Bus-On.), we interpreted that there are two ways to recover as follows.
(1) Set the "ABO" bit of the "CTL" register once.
(2) Set the "INIT" bit of the "CTL" register each time when bus-off is detected.
On the other hand, the sample code below sets the ABO bit each time an error occurs in the interrupt.
SDK: AM335X_StarterWare_02_00_01_01_Setup
File: \examples\evmAM335x\dcanTxRx.c
Lines: 382
Function name: static void DCANIsr0(void)
Description: In the error interrupt, keep setting ABO until all error bits drop.
[Question]
Which of the following is the behavior when "ABO" bit is enabled in the "CTL" register?
1."ABO" is automatically reset after operation and must be set each time.
2.Once the "ABO" effect is set, it will remain in effect until the power is turned off.
(1)User activates ABO
(2)CPU detects bus off
(3)CPU detects 129*11 bit sequence of recessive bits
(4)CPU returns to bus on
(5-1)CPU automatically disables ABO (next bus off cannot be restored)
or (5-2)No change in ABO (next bus off can also be restored)
Best regards,
O.H