Buffers for long SPI bus

Hi guys! I want to use many shift registers 74hc595 in long spi bus (daisy chained). Every 4 shift registers (every 50cm) I want to use buffer for Clock, Data, Latch lines.
Buffers must improve signals and have small delay.
Which are buffers better for such solution?

74ac244, 74ac125, 74ac541 or something else?

You only need buffer for latch & clock.
Data is chip to chip already, no buffer needed.
74ac125 is good for a buffer, just 7nS propogation delay.
How many total? I've done 45, 5 boards each with 9 TCIP6B595s and a buffer chip, but not spread out like you have.

Hi Cross!

CrossRoads:
You only need buffer for latch & clock.
Data is chip to chip already, no buffer needed.

If data will not be buffered then it will be unsync between clock and data for some next register. So, I think data is also needed.

CrossRoads:
74ac125 is good for a buffer, just 7nS propogation delay.

Did you use 74ac244? In datasheet I see that it's specially for clock buffering.

CrossRoads:
How many total? I've done 45, 5 boards each with 9 TCIP6B595s and a buffer chip, but not spread out like you have.

30 boards with 4 shift registers (total 120 registers). Distance between each board is 30-50cm. Each board must has buffer in the beginning. Will it work at all? :slight_smile:

At 8 MHz, SPI clock is high for 62.5nS and then low for 62.5nS. If you are seeing less than stellar results, slow it down to 4 MHz (default speed) or maybe 2 MHz. Best if you had an oscilloscope and could observe waveforms, especially SCK.
Data comes out of Q7' about 15nS after RCLK goes low to high. The data will thus be at the input to the next chip in plenty of time to be clocked in by the next SCK. You don't need to delay it any with a buffer.
I used 74ac125. I didn't want the larger package of the 74ac244.

If you're concerned about the +/-6mA of the HC595 driving 30-50cm of wiring, okay go ahead and buffer it. I had the 5 cards with 9 '595s stacked up about 3/4" above each other with just a couple inches of interconnecting ribbon cable.

You could also have the cards much closer together, and just run longer wires from the HC595 outputs to whatever they are driving. If LEDs, I'd recommnend TPIC6C595 or TPIC6B595 instead, 100 and 150mA output drive from each output vs 70mA for the whole HC595 chip.

BTW there is anhanced TPIC6C596 (not 595). Q7' is clocked out on the falling edge. So, clock rising edge is always in the middle of data.
Perhaps 596 is better fo cascading.
Did you try this?

No, I have only used 6B595 & 6C595.
With 8 MHz clock (and with 16MHz system clock that is the fastest you get), there is plenty of setup time from Q7' to the next SRCLK.

Thank you, Cross