Maybe a solution would be to software reset the DSP through a watch dog timeout??
Im using an TMS320F28335 / TMS320F2808 (same problem).
The bus off state can be cleared if the ABO bit is set. With this bit the module goes back automatically into bus-on state after 128*11 recessive bits have been monitored. You can view this information on page 46 of SPRU074E:
http://focus.ti.com/lit/ug/spru074e/spru074e.pdf
Regards,
Tim Love
After reaching or exceeding the error passive limit (128), the receive error counter will not be increased anymore. When a message was received correctly, the counter is set again to a value between 119 and 127 (compare with CAN specification). After reaching the bus-off state, the transmit error counter is undefined while the receive error counter changes its function.
After reaching the bus-off state, the receive error counter is cleared. It is then incremented after every 11 consecutive recessive bits on the bus. These 11 bits correspond to the gap between two frames on the bus. If the counter reaches 128, the module automatically changes back to the bus-on status if this feature is enabled (Auto Bus On bit (ABO) (MC.7) set). All internal flags are reset and the error counters are cleared. After leaving initialization mode, the error counters are cleared.
You can download this document at the following link:
Hi, I want to leave bus-off state manually,that is when (Auto Bus On bit(ABO=0)(MC.7)). How can I do it. According to the guide, when set CCR=0(MC.12), the CAN moduel can leave bus-off state. But it does not work.