Long Distance I2C Transmission
Abstract
Due to the long wires between the solar master and solar slaves, we need I2C bus buffers.
High Capacitance
Long wires have high capacitance and I2C specifies the capacitance should be smaller than 400 pF (about 8 meters of 4-way cable). Given the approximately 5 meter length of MSXII and even greater lengths for wires, the capacitance may exceeds the 400 pF limit. However, the limitation of the capacitance can be raised by reducing the bit rate from 1 MHz to a slower rate.
Noise
In addition to the capacitance limitation, noise is also a limitation of long distance communication. Long ribbon cable is extremely susceptible to external interference such as cellphones. In the case of MSXII, high voltage and high current wires might produce significant interference to the I2C signal. Because low voltage (3.3v) signal has a low signal to noise ratio, the effect of noise is greater than 5v or 15v signal.
Crosstalk
It is a phenomenon by which a signal transmitted in one channel interferes another signal in a different channel. This may happens to I2C signal when the SDA wire is right next to the SCL wire.
Solutions
- Minimize the total length of the wires
- Use a lower bit rate if possible
- Use P82B96 or a similar chip to isolate the capacitance of transmission wires from the ADC
- Use twisted ribbon cables to reduce the interference
- Use metal shielding to protect the cable from the interference
- Use 5v to transmit the signal
- The SDA and SCL wires should be separated by either GND or VCC wire