This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2C and SPI communication distance

Other Parts Discussed in Thread: TCA9416, TCA9535, TXU0304, P82B715, TCA9517, P82B96

1)How far in wire connection can TCA9416 (i2c) can operate faithfully? How far in inches of wire. This from the TCA9416 to the peripheral TCA9535 io-expander.

2) Same question as above but for TXU0304 for SPI communication. What is the maximum distance it can function properly?

3) Does TCA9535 has an internal buffer to drive and what is the current drive capability?

Thanks 

  • 1)How far in wire connection can TCA9416 (i2c) can operate faithfully? How far in inches of wire. This from the TCA9416 to the peripheral TCA9535 io-expander.

    The TCA9416 wasn't designed to be used for wire/cable communication (the rise time accelerator in the device would likely cause ringing). For transmission over cabling I would suggest something like TCA9517, TCA980x, or if its very long cable then P82B96/P82B715.

    3) Does TCA9535 has an internal buffer to drive and what is the current drive capability?

    It has a deglicth filter required by I2C standard of 50ns. Aside from that, it has the basic internal CMOS inputs and an open drain output on SDA. 

    The max recommended IoL on SDA is 6mA per datasheet spec.

    I would need to reassign this thread to the subject matter expert for the TXU device. I suspect they will comment the same way as I commented on the TCA9416. 

    -Bobby

  • Both I²C and SPI were designed for communication on a single board.

    In general, you can increase the distance by reducing the frequency. Furthermore, you can add buffers into the SPI lines, but this will also reduce the maximum frequency because the increased propagation delay will shift MISO to be out of sync with the clock.
    It is hard to provide exact numbers. You'd have to estimate the total capacitance of the entire bus. The easiest method to find the limit might be to build a test circuit with the cable you'll be using and to check the waveform with an oscilloscope.

    Going through a cable increases the risk that you pick up noise from elsewhere. How much this matters depends on how noisy your environment actually is. You can reduce noise sensitivity by using differential transmission (i.e., LVDS or RS-422/RS-485), which is easier to do for SPI.

  • The distance of the wire for I2C to peripheral and SPI to peripheral  is 1meter. So would TCA9517 work? What do you suggest for the TXU?

  • So what is the typical range of distance can TCA9517, TCA980x support? assuming the capacitance is less than 300pF.

  • The capacitance depends on the distance. If your traces/cables have a capacitance of less than 300 pF, then that distance will work.