I am trying to get 100M cominication between 3.3V I2C chip to Aruduino.
See bottom for current connection.
I placed logic shifter between 3.3v I2C chip and P82b715 as 5V. (3.3V as separate supply)
Right now, I am using 2.2k pull down for both side of FET.
placed Dual 10K pot at exit side of P82b715 so I can adjust.
The reciver side of P82b715 also has dual 10K pot and placed 10k for Sx/Lx side (arduino pin SDA/SCL)
I downloaded AN 444, 452, 97055 from NXP, but still can’t get it.
Some web saying that you should use 485, but I would like to stay minimum as I2C.
NXP saying you can achieve 100M even 300M in AN444, but I don’t find any actual example schematic that succeeded for this kind of distance with Category 5 cable.
100 meters between devices? Or do you mean an I2C clock speed of 100MHz?
Neither is possible with I2C. It is possible with RS485 but this is a very different protocol in almost every way than I2C.
I2C is good for maybe 1/4 meter at 100kHz.
using 2.2k pull down for both side of FET.
I2C requires pull-ups on the SDA & SCL lines not pull-downs. This is because each I2C device (master and slave) use Open-drain outputs (google this and read).
Google" RS485". There is lots of info, driver/receiver chips, application notes and example code on doing this.
*Increase the total connected capacitance of an I2C-bus system to around 3000 pF * Drive I2C-bus signals over long cables to approximately 50 meters or 3000 pF * Drives x10 lower impedance bus wiring for improved noise immunity * Multi-drop distribution of I2C-bus signals using low cost twisted-pair cables * AdvancedTCA radial IPMB architecture * Driving 30 mA Fm+ devices from standard 3 mA parts
A very quick look at AN10216 (I didn’t find AN444) reveals this tidbit …
Possible distances range from 50 meters at 85 kHz to 1km at 31 kHz overtwisted-pair phone cables. Up to 400 kHz over short distances.
… but w/little info on the transmission line(s).
Unless your clock speed is low and line well terminated, 100 m seems to be a stretch. Other than that, I can’t say much having never used the device. What clock speeds were tried ?
pmcuser:
I tried lower the rate, but did not go thru.
That doesn't exactly answer my question does it.
My point being is that you lower the rate to where cable length and line capacitance can’t be the problem. You then shift into debug mode and start checking and measuring things; making sure connections are proper, supply voltages are really good, line terminations are correct, etc, etc. At some absurdly low rate you could even verify the line states change w/a DVM.
As waltr says, 100M is really pushing your luck trying to use I2C, and expect to get reliable results.
By dropping your rates, yes, you might manage to get a 1000 bps link running, but you then need to add error protection and a retry mechanism in software.
RS485 really isn’t that difficult to understand, but even using the correct drivers, you will still need some decent twisted pair cable (CAT5 etc.)
Might be worth taking a look at the Sparkfun RS485 Shield DEV-11959 - also RS-485 Breakout BOB-10124.
pmcuser:
I did test with 1 foot cable first to verify the connection.
Can you elaborate on this? (I mean “didn’t work” doesn’t say much) Did you check for continuity in the long cable. I know it’s an obvious thing to check, but not always done. Clock frequency or pulse period? Used pull-ups? Did you check the end of the cable with an oscilloscope. Pulses probably degenerated into ramps or triangles or something.