Thursday, February 18, 2010

Crosstalk on a Reset Line Strikes Again

I have been working on an XScale board that has been giving me trouble for the month. Every time the software attempted to configure something on the mPCI slot, the system hung. Even though the problem only appeared after a spin of the board with the XScale processor, the software vendor (Team F1) worked assiduously on the problem refusing to blame the hardware.

It turns out the problem was a 1.3V core reset line going to the XScale processor was picking up crosstalk from the PCI bus because of a layout issue. The white line is the victim trace, which runs parallel to PCI lines. I do not have access to all artwork layers, but I think these traces run over a break in a split power plane.

The board designer didn’t think of a reset line as a critical trace because it doesn’t transition frequently. That keeps it from being an aggressor trace, but it’s very easy for a core reset line to be a victim of crosstalk. To be deasserted, this reset line must be greater than 1.0V. It doesn’t take much noise to pull it down into its indeterminate range (<1.0v) . I would have probably done the exact same thing because it's an easy mistake to make.

When I probed the line near the reset input, the 12pF capacitance of my scope probe was enough to prevent the problem. Tacking a 10pF cap to via going to that ball of the BGA made the problem go away altogether! Higher values worked just the same. At least this problem was easy to solve.

This is the second time in the past 14 months I’ve encountered a reset line being asserted due to noise or crosstalk. Reset lines must be treated as critical traces, especially if they’re low voltage and especially if their driven high only by weak pullup resistors.

No comments:

Post a Comment