I2C Bus length extension - pull up resistors?

Hi,

I'm using two P82B715 chips to try and communicate over a distance of 20m between an I2C sensor and the arduino.

My prototype is based upon the following diagram:


I know that the Arduino has built in resistors, does this mean that the first set may be omitted, but the later sets not?

Given that I can't measure the capacitance of the wiring, what resistor values should at least get it working for this kind of distance? I'm using 0.5mm wire, I hope this isn't going to provide too much capacitance in this application.

You certainly can't drop the 470R resistors. You may get away with using the internal resistors but they are about 10x the value of the suggested 4k7s so the bus may not run at high speed depending on the capacitance of the lines.

Personally I would just add the resistors.

As to whether you really need 470R on the line side, I don't know but why worry about it, just use them.


Rob

There is some good info on this in this thread:
http://arduino.cc/forum/index.php/topic,57604.0.html

Also the effect of pullup resistors on signal quality is not to be underestimated: