I2C in long distances

Thread Starter

stamy1

Joined May 17, 2020
3
Hi,
I have an ESP8266-12 and some OLED displays working with the I2C protocol. The maximum distance for I2C is some meters. I need those displays to be up to 15meters away. I am thinking of converting the I2C into RS485 so it can travel this far... Any other suggestion that maybe works?
 

Papabravo

Joined Feb 24, 2006
21,228
Hi,
I have an ESP8266-12 and some OLED displays working with the I2C protocol. The maximum distance for I2C is some meters. I need those displays to be up to 15meters away. I am thinking of converting the I2C into RS485 so it can travel this far... Any other suggestion that maybe works?
How will the RS-485 transmitter know to tri-state the driver so the receiver can receive an ACK pulse from the slave device? If you don't, the two transmitters will engage simultaneous jabbering. (We actually had a more colorful term for it). A better solution would be an I2C bidirectional repeater with a method of passing the ACK pulses in the required direction.

Missed the link in Post #2. It is in very light blue on my monitor. That's the ticket.
 
Last edited:

Thread Starter

stamy1

Joined May 17, 2020
3
How will the RS-485 transmitter know to tri-state the driver so the receiver can receive an ACK pulse from the slave device? If you don't, the two transmitters will engage simultaneous jabbering. (We actually had a more colorful term for it). A better solution would be an I2C bidirectional repeater with a method of passing the ACK pulses in the required direction.

Missed the link in Post #2. It is in very light blue on my monitor. That's the ticket.
I suppose can use the PCA9515A as bus repeater, they gives me the 15meters that I want?
 

MrAl

Joined Jun 17, 2014
11,496
This does bring up the question of how to transmit very far.
What about 100 meters, 1000 meters?
And i assume two wires only?

I am thinking maybe something custom would be better. You can then also send error check codes and have it auto check. If there is an error the receiver (at the time) can request a repeat of the data. I did this with a Z80 computer board so i could program it from a distance with a PC computer where i could not take a chance on an error in the data getting into the RAM of the Z80 board or the system would crash.
 

Papabravo

Joined Feb 24, 2006
21,228
Not quite. I2C requires a common ground level. I'm not sure the issue of common mode ground differences is even discussed in the I2C context. I know it is a big deal in industrial networks, like DeviceNet.
 
Top