EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

I2C - distance between master and slave?

Started by Jens Gydesen January 10, 2007
 But you did not lay the line next to metal objects !

   I can completely kill any useful data at  destination , by
 simply laying the cable next to common objects .

 Only Coax ( CATV )  gets thru , under these annoyances .

 Cat5e   sucks . It works marginally if there were only 1 pair !

I2C uses a wire-or'd bus so you can't use differential drivers.
You are stuck with 0-5v TTL signal. Typically this type of
signal is good for six feet. There are two things
that will maximize possible distance. Run slower than 100K speed
and terminate the line with maximum current allowed.

Don't think it would be a good idea to run more than 10 feet
and that with shielded cable.


"Emanuele" <emcelettronicaNOSPAM@DELETEgmail.com> wrote in message 
news:eofhem$rqf$1@newsreader1.mclink.it...
> Jens Gydesen ha scritto: >> Hi >> >> what is your experience with the I2C bus, what is the practical max >> distance, >> >> please specify your pull-up resistor value, I2C clock speed, and >> distance >> >> >> thank you, >> >> best regards >> >> Jens >> >> -------------------------------------------------------------------------------- >> Jeg beskyttes af den gratis SPAMfighter til privatbrugere. >> Den har indtil videre sparet mig for at f&#4294967295; 3924 spam-mails >> Betalende brugere f&#4294967295;r ikke denne besked i deres e-mails. >> Hent en gratis SPAMfighter her. >
Jens Gydesen wrote:
> Hi > > what is your experience with the I2C bus, what is the practical max > distance, > > please specify your pull-up resistor value, I2C clock speed, and distance
Sounds like homework? i2c is a 2 wire open-drain, wired-or BUS, and has many specs : 100Khz/400KHz/1MHz, and ~3.4MHz was talked about. There is also a FM+ variant, that bumps the drive ability, and so improves the Speed-Distance profile. There is no fundamental MAX distance : it depends on the chips used, on the pullup, or loads used, and on the speed you can tolerate. Mostly, Philips specs a capacitance, drive current, and that tends to define a distance based on Cable pF/m values. Older i2c systems were 5V, but you could take a modern CPLD, with Schmitt pins, and drive low value pullups to target almost any voltage/current profile, for maximising distances. Look at the RS232 and RS485 resource out there, for speed/distance profiles, to get some idea of cable limits. You can also use CAN BUS transcievers for the HW layer, as they are OR signal devices, but as you get this specialised, you loose the ability to clip on any-old-i2c device. However, you could deploy a common i2c library in your uC, and have a local stub that was one speed, and another MUX'd remote 'i2c' bus, you tuned for distance : same SW, but different HW drivers -jg
On Wed, 17 Jan 2007 10:17:59 -0800, "Prescott" <JP@whynot.ciz> wrote:

>I2C uses a wire-or'd bus so you can't use differential drivers. >You are stuck with 0-5v TTL signal.
You might be able to use the CANbus drivers with one load resistor from the line to Vcc and the other load resistor from the other line to Gnd. Differential wire-ORed buses could also be constructed using ordinary RS-485 chips with resistors as above and feeding the data into the Transmit Enable pin and connecting the chip data input to fixed voltage (either "0" or "1", depending on which way the load resistors are connected). Paul

The 2024 Embedded Online Conference