When I started with Arduino I bought a set of 600 resistors (30 times 20 values). However, I found out 120 ohm needed for CAN bus is not among them.

So I need to buy 120 ohm resistors (I don't want to combine multiple). However, I was wondering how many watts they should handle.

I want to connect two or later maybe three devices, all running on USB power (5V). But I cannot find how many (m)A CAN is using.

My calculations:

V = I * R <=> 5 = I * 120 <=> I = 5 / 120 = 41,7 mA

P = I * V = 0,041666 * 5 = 0.208W


P = I^2 * R = 0.041666 0.208W

So I would be safe with default (0.25W) 120 ohm resistors?

  • 1
    \$\begingroup\$ Your assumption that there is going to be 5 V across these resistors is incorrect I believe. According to the CAN Bus page in Wikipedia the voltages are half of that so 2.5 V maximum. So then you'd be well within limits to use 0.25 W resistors assuming you'd be terminating to the 2.5 V which is the recessive ("one") voltage of the datalines. \$\endgroup\$ Aug 22 '17 at 9:51
  • 1
    \$\begingroup\$ this might help: e2e.ti.com/support/interface/industrial_interface/f/142/t/… \$\endgroup\$
    – Arsenal
    Aug 22 '17 at 9:53
  • 1
    \$\begingroup\$ Who says you need to generate 12 V ? Looking at this graph en.wikipedia.org/wiki/CAN_bus#/media/File:ISO11898-2.svg you can generate it from 5 V. That +/- 12 V of common has more to do with absolute maxima, you must be able to handle that (use input voltage protection) but no need to generate that. I think that is to make the system immune to when a broken circuit puts 12 V on the line or the car battery is connected in reverse. \$\endgroup\$ Aug 22 '17 at 9:57
  • 1
    \$\begingroup\$ OK, you're not going to use it in a car and no one is going to check if you meet all the CAN Bus requirements then for sure you do not need input protection. \$\endgroup\$ Aug 22 '17 at 10:06
  • 1
    \$\begingroup\$ The resitors will have 5V across them when the bus is in the dominant state and 0 V when it is in the recessive state. Since the bus will when active spend around 50% of the time in each state it's reasonable to use a rating that is assuming half way in between the two. which gives a power of V^2/R = 50 mW. \$\endgroup\$
    – Andrew
    Aug 22 '17 at 10:14

You seem to have your answer from the comments, so this is mainly for posterity purposes.

Your calculations are correct, at a max of 5V differential voltage you would have ~42mA which would dissipate ~210mW. You are safe using a 0.25W resistor, especially since you know exactly what is going to be connected to the bus.

I would like to add that I work with CAN on a regular basis, some of which can be in rather demanding environments, and our typical termination is shown below. We use standard 0805 resistors with a rating of 0.125W and I have yet to see a burnt resistor.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ (forgot to accept the answer) ... thanks for the clear scheme! \$\endgroup\$ Oct 7 '17 at 15:40
  • 1
    \$\begingroup\$ Old answer, but there is an interesting caveat here. Some CAN High Level protocols (e.g. Devicenet), or rather their additional compliance requirements, may require that any wires in the physical interface can be interchanged without causing damage. In the case where someone wires bus supply to CAN H, an explicitly tested error, a 0.125W resistor will fail this test for example on a 24V Bus. And in that instance I have seen terminators fry :) \$\endgroup\$
    – crasic
    Jan 29 '19 at 17:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.