I am using the MC9S12C64 micro with a TI HVD1050 CAN driver chip and during ESD testing I can get the CAN controller to go into bus-off state but it then takes around 60 to 90s to come right. When running the test my device is continuously sending CAN messages to report sensor values and the values eventually start coming through again, but after quite a long delay. The data is being received by a PC program via a Peak PCAN interface.
The firmware is detecting that the CAN controller has gone into bus-off state and I have tried making it re-initialise the CAN controller, but that does not seem to change the behaviour. I know that the mmicro and CAN driver firmware is running OK during this time as it is flashing an LED to indicate the bus-off state. As far as I can make out (from the datasheet and extensive searching on the 'net) the S12MSCANV2 should recover from bus-off after 128 occurrences of 11 consecutive recessive bits and as the bus seems to be going idle during this period I would expect it to recover in about 5.6ms (bus is running at 250kpbs).
Has anyone seen this before and can suggest some ideas on how to get it to recover more quickly?