Electronic – Long transmission line inductance with SPI

inductancespitransmission line

I have a PCI 5V GPIO card which bit-bangs SPI over a 10-foot cable. The SPI clock is running at 800Khz. The cable connects to a board and the SPI lines feed directly into the SPI IC's. I know SPI is a short, board level communication, but I can't change any of that going forward.

When I looked at the SPI clock and MOSI lines, I was seeing a 12V pulse on rising/falling edge that lasted for about 40ns. That tells me there is significant transmission line inductance. I can't change anything on the PCI card/cable and I am not able to slow down the drive strength of the line. I tried adding 100 ohms series resistance on the board side, but that had no effect since the inductance is still between the drive and the series resistor. An RC filter on the board side of 100 ohms, 1nF also had little effect.

My next step, is to add an IC buffer that can handle the spikes and not pass them through. I just wanted to see if anyone else had a suggestion or could recommend a good IC buffer.


Best Answer

You are misapplying the resistor.

The problem is that the input of the receiving chip has a higher impedance than the characteristic impedance of the transmission line. Putting in a series resistor at the destination won't help much with the initial problem. Instead, you should use a shunt resistor to ground.

If you want to use a series resistor, it needs to be at the sending end. Because the driver has a low impedance relative to the transmission line, you get a discontinuity there too, and an inverted reflection results. If you put a series resistor at the driver matching the line impedance, then that is absorbed, and you eliminate the ringing caused by back-and-forth propagation of inverted reflections which is so evident on your scope.

An interesting case is a series resistor at the driver, and a high impedance receiver input without a terminator. Initially, the series resistor and line impedance form a voltage divider, and only half the applied step goes down the line. When it gets to the "open" end formed by the receiver, it reflects in phase, doubling the voltage back to the original. When the reflection gets back to the transmitter, it is absorbed by the receiver. Gradually the line voltage floats up to the drive voltage, as the situations becomes more like DC than like a step function.