CANbus Transceivers: the straw that broke the camel’s back

Warning: this is a geek post pertaining to the CanSee dongle, not CanZE, nor the ELM style dongles.

In the CanSee design we’ve specified the SN65HVD23x chip to translate the micro-controller’s logic levels to the CANbus. The beauty of this series of chips is that it runs on 3.3 volt, thus requiring no level shifting and only one supply rail. As reported earlier we’ve seen many bad chips though. Lately I have been involved in a commercial project and we selected the same chip for the same reason. To make a very long (debugging) story short, faulty chips bit us again, and these were sourced through a reputable PCB manufacturer. I also received a few chips from a friend and again, one was bad. Either there is a huge manufacturing problem, or there is a massive batch of fake chips on the market, or these chips are extremely prone to damage.

This problem has been haunting us for well over a year now and after wasting many, many hours again sifting through chips, re-soldering, messing with the firmware, and countless other botches, the camel’s back has now definitely broken. I am changing the public design to set the DC-DC converter’s voltage to 5V, use that to supply the development board AND the alternative transceiver chip (an NXP TJA1050). I’ll also add two resistors to level-shift the signal from the transceiver to the ESP32.

3 Comments on “CANbus Transceivers: the straw that broke the camel’s back

  1. I use this module for this purpose: Raspberry Pi Dual-channel Isolated CAN Bus Expansion Development Board Module MCP251

    Operates on 3.3V.
    It has two CAN ports. It can be used to monitor two CANs or even as a can bridge. 🙂

  2. >I’ll also add two resistors to level-shift the signal from the transceiver to the ESP32.
    Where are these to be added and what Values?