Electronic – arduino – connect multiple SN74HC595 shift registers separately (without daisy chaining them) to the same Arduino

arduinoshift-register

I'm sort of a newbie to this whole idea of shift registers and the Arduino shift register handling library. I've found many demonstrations online, where shift registers are daisy chained. But I need to connect multiple shift registers to my Arduino without daisy chaining them. My common sense says, Yes! you can, But I'm not quite sure and I don't have that IC on hand so that I can physically build the circuit and test.

I'm really shy and uncomfortable to ask this question to you guys whether if it turns out a stupid question. So.. please mercy on my soul 🙂

Best Answer

Yes. Each shift register typically requires three pins (data, latch, clock), but if your application makes it possible to share clocks or both clock and latch, then your required pin count will be less.

Keep in mind that if two shift registers are connected separately (no shared pins), they cannot be updated simultaneously (footnote: you can use the SPI peripheral to drive shift registers, and this can actually run while you bit bang other pins, so you sort of can update shift registers simultaneously. Sort of).

To expand on sharing latch/clock (assuming you are bit banging pins, and not using the SPI peripheral):

Shared latch: the SRs will update (the internal registers will be latched to the outputs) simultaneously. However, you will still have to clock the data to both SRs separately. The sequence would be "unlatch, clock data 1, clock data 2, latch".

Shared latch/clock: you can update the SRs simultaneously and clock the data out in a single sequence. In your clocking loop, you simply update both data pins. So the sequence is "unlatch, clock both data streams, latch". This is faster, but for many applications, this distinction won't matter.