Long distance I2C
T Chap
Posts: 4,223
search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-20942-1-ND
I thought this was interesting. I need to extend some I2C devices, and just saw this.
I thought this was interesting. I need to extend some I2C devices, and just saw this.
Comments
Even 25m at 400 kHz is impressive
Tidy little 8 pin package too. Thanks for pointing that one out Todd
Depending on the circuit needs, also the P82B715 can be interesting
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
Just seriously trying to be funny, but What year is this?
And in what year did we have transcontinental and transoceanic TELEGRAPH and TELEPHONE cable. I'll guess late 1800s.
How long is a transoceanic cable, and guess how much data it could handle.
How do you fail to send signals WITH WIRE further than you can walk in 5 minutes?
Cheap toy walkie-talkies do that without a wire, yeah, some of those $5 a pair, 49 Mhz, 1 milliwatt ones.
Cable TV wire has bandwidth of between 200MHz and 1GHz just for analog TV channels... and HOW LONG IS THE WIRE?
If I2C is so bad, why did they invent it?
You can send way over 120,000 bits WORDS a minute in Morse Code with Spin and as much wire as you can get.
Other things that actually work incredibly much better than you think I2C does:
2 cans and a string.
2 funnels (horns) and a hose.
2 transistor-radio speakers on the ends of a wire.
What happened to your I2C when you used long wires and why would there be a problem?
Uh-Oh! The wires might pick up EMPs from lightning and local radio stations and cell phones and zap the Propeller.
Why not use optocouplers? Or shielded wires? Or Fiber Optics? Or Wireless? ...
Post Edited (VIRAND) : 12/16/2009 11:22:29 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
Note that the applications you reference use much more power that I2C. I2C was designed as a short distance, low voltage, low power communication tool.
As such, it doesn't take much length to create problems with voltage drop, capacitance, interference (not just the "zapping the chip to oblivion kind of emp") and other signal degradation issues.
There are many long distance protocols available, but they require more voltage and/or power. There are always trade offs.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
John R.
Click here to see my Nomad Build Log
As you noted there is no mention to long distance (distance extender) in the datasheet, but they are capable of 30mA sinking. It makes me curious if, by using two of them with central path powered to 5V and loaded with a lower pullup, they can also be used as isolated extenders.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
Post Edited (dMajo) : 12/16/2009 8:12:29 PM GMT
Slow:10kb/s
Standard:100kb/s
Fast:400kb/s 1Mb/s, 3.4Mb/s
"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."
Okey Dokey. I2C cannot possibly work on a wire more than 3 meters long. It would make serious RFI and violate FCC Part 15.
Nobody could listen to the radio or use wireless services if there were big and fast I2C networks all over the place.
Jeopardy Question:What is (wrong with) "Broadband over Power Lines (BPL)"?
Post Edited (VIRAND) : 12/16/2009 9:06:09 PM GMT
I actually had started drawing a schematic for I2C over RS485 but decided to search for extenders.
Post Edited (Todd Chapman) : 12/16/2009 10:28:38 PM GMT
It's interesting how people run one-wire protocol over long wires, even tho it too depends on passive pullups and has strict time dependencies.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
unless it is as meaningless as PC processor ratings,) is 3 or 4 kilometers, and if that matters
at all (which it probably doesn't), then 1000 meters of wire is nothing to standard speed I2C.
Remove those imaginary (square root of -1) capacitors. Terminate your wire. Match your impedance.
Anything below 100 Khz is for all practical purposes AUDIO.
Anything above 100 Khz starts to be a serious RFI nuisance.
You CAN'T FAIL to "slowly turn on and off a wire serially" and receive the data a long distance away.
It is totally ridiculous. Voodoo Wire for tube-amp audiophiles.
I think you'd need a microscope on an oscilloscope to detect anything wrong with slow I2C.
You could use a 100 year old rusty barbed wire fence for slow I2C wire, and it would WORK.
It is most incredible that they speed up phone wire for ethernet cable even beyond coaxial net wire just by twisting it more.
Why doesn't that increase inductance AND capacitance, and LOWER bandwidth by Tuning Down a low-pass filter?
It's not like you went camping and freezing with an electric heater connected from your house to your tent with extension cords.
It requires virtually NO power to transmit data over a wire.
Post Edited (VIRAND) : 12/17/2009 9:00:43 AM GMT
From personal experience, I have found the PCA9600 to be very effective in increasing the distance of I2C. I2C has the limitation of a total bus capacitance of 400 pF. The 9600 effectively isolates the I2C BUS capacitance and increase the total bus capacitance to 4000pF. However, like I2C the 9600s output is affected by electrical interference. If you want to go any distance consistently it is best to use differential signaling.
Protocols like RS485 minimize interference by transmitting each signal over not one but to wires. At the end of the connection, the receiving device reads the difference between the two signals. Since electrical magnetic interference affects both wires equally the potential between the two remain the same.
The PCA9600s data sheet outlines how to setup a point-to-point differential bus. It your interested in setting up a differencial I2C buss take a look the I2C Differential board on SJT Bits site ( http://sjtbits.com/i2c-to-differential-breakout-board/ ).