Electronic – What are the disadvantages to using an MCP2551 as a CAN transceiver for GMLAN / SW-CAN

can

I made my own version of the Canalyze Linux CAN interface. I plan on using it to study the CAN traffic on a Buick Regal. Since this is a GM vehicle, part of the traffic is on a GMLAN or SW-CAN network.

The Canalyze circuit doesn't directly physically support SW-CAN, so I cut the OBD-II – DB9 cable and plugged the wires straight into the appropriate pins on the car's OBD port, and it worked just fine. I can both send and receive messages, and the MCP2551 does work with GMLAN.

I plan on changing the circuit by adding another two or three MCP2551s so that I can connect to multiple networks simultaneously. Multiple sources indicate that I should use a dedicated SW-CAN transceiver such as the TH8056, but they do not mention why. Thus, my question: are there any disadvantages to using the MCP2551 for interfacing to SW-CAN?

I would prefer not having to mix different chips and I don't see why I would since MCP2551 seems to work with both SW-CAN and high speed CAN.

Best Answer

The problem is, while the shape of the waves is the same, the voltages used to transmit the signal are different. The MCP2551 is a high-speed CAN transceiver. It uses a differential signal whose recessive state is 0 V and dominant state is 2 V. Single-wire CAN is a one-wire signal whose recessive state is 0 V and dominant state is 4 V.

I'm guessing that by "the appropriate wires" you mean you used the CAN-high wire to drive the SW-CAN bus. This wire has a recessive state of 2.5 V and a dominant state of 3.5 V.

What's probably happening is that these values happen to be within the tolerance of the other nodes on the bus, but you can't guarantee that. Using the MCP2551 might happen to work in this application, but it is not a robust solution for a tool to be used across multiple applications.

Side Note: The MCP2551 is not recommended for new designs; the 2561 should be selected instead.