SPI Signal Integrity

When probing, you need to probe the signal where it hits the input pin, and make sure the probe ground is connected to a ground near that pin, so it doesn't hide any ground bounce. It looks to me like you're probing at the output pin, which will hide any ringing.

In the first plot, I see spikes at the signal edges. This tells me that you have some overshoot and possibly potential ringing. The fact that a 220 ohm resistor fixed it is indicative of this as well.

There are three usual solutions to this problem.

The first solution is to use a ferrite bead in series to damp the spike. The ferrite bead will look like a large resistance at high frequencies and a short at low frequencies. It's not the same as an inductor (and a spike usually means you have more than enough inductance in your line).

The second solution is to use a series resistor like you did, but typical values for this resistor are around 22 to 50 ohms, depending on the transmission line impedance, and the resistor must be placed at the source (driver output) end of the line (usually within 0.2 inch, though that may not make any difference at 62.5 kHz). The function of this resistor is to slow down the rising and falling edges of the waveform, damping their high-frequency components. 220 ohms seems like too much resistance to me. You can also use a ferrite bead (or similar EMI filter) with the resistor, usually if your line is part of a cable.

Finally, you might be able to program your driver for a slower edge rate (several nanoseconds instead of one or two), though this is still an unusual feature. This is actually the best solution, and greatly reduces EMI to boot.


I'm not quite sure how it manages to change so drastically from the first signal to the second (I think this is probably what Kevin was thinking) but the most likely problem sounds like a longish line and ringing. You can see some ringing on the first trace (almost 2V on a 3.3V line), which maybe will tell more of a story if you reduce the timebase. This might be causing some strange things to happen like the Rx pin picking up multiple transitions - may be even coupling to other traces and causing issues there.
The resistor will damp the ringing and fix things. The clock rate is not the issue, more the rise time of the signal.
You could shorten the lines (if that's an option), but it's good practice to have a small series resistor anyway.