I2C bus distance?

I was checking how far an I2C bus can extend and found this online:

I am not looking for some long distance in meters or feet, more or less half a foot or 15cm jumper wires length. In the past I've always had I2C devices on PCB or on arduino shield. Just checking with I2C experts that if I run 100MHz I2C (default arduino setting, right?) on a 15cm/0.5ft jumper wire, I'm not going to screw up. I am not using any solder-less breadboards, just jumpers and male/female headers. Thanks!

liudr:
Just checking with I2C experts that if I run 100MHz I2C (default arduino setting, right?)

I don't know much about I2C, but the arduino runs at 16MHz, so I would expect the frequency to be 100KHz (or some other frequency. 100KHz was just a guess).

Onions.

From wikipedia:

The maximum number of nodes is limited by the address space, and also by the total bus capacitance of 400 pF, which restricts practical communication distances to a few meters.

thanks florinc. I guess you can use an EEPROM over I2C for device identification over a cable less than 1 few meters. I'll be operating way shorter wires than that.

For the software side, I have one EEPROM slot on my phi-panel, an arduino-driven user interface panel. I also have a regular arduino. I'd like to use the regular arduino to write info to the EEPROM located on the panel over jumper wires and then have the panel read the messages.

So there are two masters and one slave connected to the I2C and the masters definitely don't talk together. I guess I can just connect the I2C pins together, right?

You should be fine. I would recommend using external pullup resistors instead of relying on the internal pullups.

wayneft:
You should be fine. I would recommend using external pullup resistors instead of relying on the internal pullups.

Thanks wayneft. I will have a 2K pull-up on board with the EEPROM (24LC256).

100MHz I2C

He he, not in our lifetime :slight_smile: I'm guessing that was a typo.

There are chips (eg PCA9600, PCA9525, P82B715) that will drive I2C for a long way, the P82B715 states over 50 meters.

They all drive about 10x the line capacitance the standard allows for.


Rob

So there are two masters and one slave connected to the I2C and the masters definitely don't talk together. I guess I can just connect the I2C pins together, right?

If you do then you will need to ensure that each of the Masters are using multi master driving software in place of the normal single master software. Otherwise there will be a clash when both masters try and talk at the same time. Also note that multi master systems are more susceptible to disruption by noise as any noise can be seen by a master as the other master talking.

Graynomad:

100MHz I2C

He he, not in our lifetime :slight_smile: I'm guessing that was a typo.

There are chips (eg PCA9600, PCA9525, P82B715) that will drive I2C for a long way, the P82B715 states over 50 meters.

They all drive about 10x the line capacitance the standard allows for.


Rob

Rob,

I can't tell between K, M, G and T since I've lived through all them in computer storage and memory capacities. I keep making mistakes of saying 32MB tablets or 4MB memory :wink:

I can't tell between K, M, G and T

I make the same mistake with money :slight_smile: