How Should I Terminate and Route SPI Signals for Multiple External PCBs?

  • Thread starter Thread starter saad87
  • Start date Start date
Click For Summary
To effectively terminate SPI signals for multiple external PCBs, source termination is recommended, especially for SCK and MOSI signals. A dual buffer setup is employed to drive two SPI slaves from the main PCB, with a source termination resistor placed right before the off-board connectors. For the MISO line, using a source resistor for each slave is advisable, but if the slaves are closely spaced, a single termination resistor may suffice. Empirical testing is suggested to determine the optimal resistor values, potentially using a potentiometer for fine-tuning. Proper termination is crucial to minimize signal integrity issues, particularly with rising edges.
saad87
Messages
83
Reaction score
0
I'm looking for some advice regarding how to terminate SPI signals which are going to an external PCB. I know that SPI isn't meant for board to board communication but in this case the connecting ribbon cable is short - about 6" max length.

My frequency isn't high, just 2 MHz but I have rising edges of about 4-7 ns which are causing issues. Here's what I'm thinking for in the next revision of the board: the "main" PCB needs to connect to 4 external PCBs each of which has two SPI slaves. I'm using a 10 wire ribbon cable and I should have each alternating wire has a ground.

To route SCK and MOSI I have a buffer just before the off board connectors. This dual buffer buffers SCK and MOSI. Each output drives a max. of two SPI slaves (because there's a buffer per PCB). Right at the buffer I have a source terminator resistor whose value I intend to find empirically. To illustrate:

MOSI and SCK from uC -> Buffer -> Ribbon Cable to nth PCB -> SCK and MOSI drive two SPI slaves.

So far so good - the slaves are located fairly near to each other so I think source termination will work OK here for both MOSI and SCK.

My main concern is regarding MISO. How do I effectively route and terminate this line? There's just one load (the master) but several slaves. Do I use source termination for this as well? Each slave could have a source resistance and the traces can join at some point on the slave PCB and then travel via the ribbon cable to the master. To illustrate:

Slave #1's MISO -> Source Resistor ___________________________ -> Ribbon Cable.
Slave #2's MISO -> Source Resistor ______________|

The ____ represents the trace on the PCB.

Note: I have already tried to slow down the rising edges on the current revision via series resistances. This works well but only to an extent. I feel I should make the effort to have proper termination on the next revision of the board.
 
Engineering news on Phys.org
Yes, source terminations are the way to go with SPI. How far apart are the slave ICs? I think I would use a source resistor for each slave's MISO signal, but if they are all within a couple cm of each other, you might be able to get away with a single source termination resistor.
 
BTW, it is probably easiest to empirically determine the value for the source resistors. Just put a potentiometer in the position and tune it to minimize the ringing...
 
Thread 'I thought it was only Amazon that sold unsafe junk'
I grabbed an under cabinet LED light today at a big box store. Nothing special. 18 inches in length and made to plug several lights together. Here is a pic of the power cord: The drawing on the box led me to believe that it would accept a standard IEC cord which surprised me. But it's a variation of it. I didn't try it, but I would assume you could plug a standard IEC cord into this and have a double male cord AKA suicide cord. And to boot, it's likely going to reverse the hot and...

Similar threads

Replies
3
Views
1K
Replies
5
Views
2K
Replies
2
Views
3K
Replies
11
Views
14K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 1 ·
Replies
1
Views
9K