Skip to content

Test: CAN Bus

Networks & Buses

CAN Bus: From Two Wires to Zephyr

Two wires, one difference

A single-ended signal is measured against ground, so any noise on the wire becomes an error. CAN uses a twisted pair: in the recessive state both wires sit at about 2.5 V; in the dominant state CAN_H rises to about 3.5 V and CAN_L falls to about 1.5 V. The receiver only looks at the difference, CAN_H − CAN_L: over 0.9 V is dominant (0), under 0.5 V is recessive (1). Because dominant always overrides recessive, the bus behaves as a wired-AND, which the rest of CAN depends on.

Challenge: Keep the pair twisted and properly terminated, and find the noise level at which even the CAN receiver starts to make errors.

sent:11010011101000101101Single-ended wire (0 V / 5 V, threshold 2.5 V)read:11010011101000101101CAN_H (sky) and CAN_L (teal)transceiver common-mode limitCAN_H − CAN_L: what the CAN receiver uses0.90.5read:11010011101000101101
← Start here
Termination
HL120 Ω120 ΩEngineMCU + MCP2515TX / RXtransceiverABS brakeMCU + MCP2515TX / RXtransceiverRadioMCU + MCP2515TX / RXtransceiverTwo 120 Ω in parallel: 60 Ω between CAN_H and CAN_LHLTwisted pair: each wire takes turns being nearer the noise, so both pick up the same amountjacket, optional shield

Single-ended errors

0 / 20

CAN errors

0 / 20

Peak wire voltage

3.5 V

Resistance H to L (power off)

60 Ω

Termination: a 120 Ω resistor at each end stops edges reflecting back as ringing. On the bench, with the power off, you should measure 60 Ω between CAN_H and CAN_L. Every node taps the same two wires; only the two ends are terminated.