Signals
When debugging a CAN-bus, you have to be aware of four different signals, their purpose and the expected signal levels and patterns :
- TX or CANTX is a logic level signal, driven by the MCU and listened to by the CAN transceiver. The pin is labeled CANTX on both the MCU and the transceiver -- do not cross-over TX and RX like you would do with a UART. TX is active low, when the voltage is zero logic level, the transceiver will assert a dominant state on the canbus, I.e. pull the canH to high, the canL to low. If the CANTX is high logic level, the transceiver will let the bus lines float -- either to the neutral level or to a dominant level as driven by another transceiver.
- RX or CANTX is a logic level signal driven by the transceiver and listened to by the MCU. This signal is high if the bus is recessive level, low if the bus is at dominant level.
- CANH is the high side of the differential signal. It is ~2.5 volts if the bus is in recessive state, and somewhere between