Go Down

Topic: pull-up resistors for the I2C connection (Read 2122 times) previous topic - next topic

corprius

When connecting multiple I2C devices/slaves to the Arduino do I need pull-up resistors at each slave or is one set of pull-up resistors enough. When I look a different examples I see both setups.



and


retrolefty

One single set of pull-ups are what is called for.

Lefty

oric_dan

1 set of resistors is probably adequate, however, the value of the Rs will be determined
by how many devices are on the buss, and how long the wires are. This is because all those
devices and longer wires increase the total capacitance on the buss, so the risetimes of
the signals will increase [simple first-order RC charging]. If this gets too long, buss
operation will become irratic.

Whereas you usually see 4.7K - 10K pullup values mentioned, 2.7K is probably a better
choice for the situation mentioned above.

corprius

Thanks, most devices are not far way (max 20 cm) and some are on the same pcb.

Headroom

This is a very interesting articel of the effects of these pull-up resistors on the I2C signal.
http://dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html
http://trippylighting.com

http://ledshield.wordpress.com/

oric_dan

Quote
This is a very interesting articel of the effects of these pull-up resistors on the I2C signal.
http://dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html


Good article. One thing to consider is that when the pullups get < 2.7K or maybe 2.2K, you'll
be exceeding the sink current specs for I2C devices, at least for 5V systems.

corprius


Headroom

@ oric_dan

Thanks for that bit of information. Thsi has never crossed my mind and may actually explain a problem I had in one of my projects!
http://trippylighting.com

http://ledshield.wordpress.com/

Go Up