Electronic – Why are the microcontroller and CAN transceiver failing

canfailurepic

I have a PCB with a dsPIC 30F6012a and a TI ISO1050 isolated transceiver. This is a combination of devices I've used regularly. The two chips' CAN TX and RX are wired directly to each other with no other components attached to those traces. I've had these boards operating correctly for weeks without issue.

In the last eight hours, I've seen two identical failures on two separate instances of my PCB. The TX line from the processor to the transceiver ceases to look like a series of pulses. Instead, it looks like a 5V rail with pulse excursions to 4V. When I cut the connection between the processor and the transceiver, the processor end is trying to drive pulses high to 5V and failing (I get ~1V pulses), and the transceiver end is solid 5V.

I've changed some of the firmware in the last day or so, but nothing concerning the CANbus rails. The hardware hasn't changed at all. Even if the code had some unanticipated effect, I don't immediately see how firmware could be causing this problem. Does anyone have any suggestions?

Best Answer

I'm not sure if this is the exact cause in your case but Microchip's errata sheet that can be downloaded here Specifies the following:

  1. Module: CAN CAN Receive filters 3, 4 and 5 may not work for a given combination of instruction cycle speed and CAN bit time quanta. Work around Do not use CAN RX filters 3, 4 and 5. Instead, use filters 0, 1 and 2. Affected Silicon Revisions


If you are using one of the buggy filters you may want to try one of the alternatives.