#5e5ce6/projects

Shift Registers
...

Part NumberSN74HCS264PWRSN74HCS264DRSN74HCS595PWR74VHC9164FTSN74HCS594PWRSN74HCS594DYYRSN74HCS596PWR74VHC164FTSN74HC164PWR
Image`SN74HCS264PWR``SN74HCS264DR``SN74HCS595PWR``74VHC9164FT``SN74HCS594PWR``SN74HCS594DYYR``SN74HCS596PWR``74VHC164FT``SN74HC164PWR`
Supplier LinkDigiKeyDigiKeyDigiKeyDigiKeyDigiKeyDigiKeyDigiKeyDigiKeyDigiKey
Pins141416161616161414
Package14-TSSOP14-SOIC16-TSSOP16-TSSOP16-TSSOP16-SOIC16-TSSOP14-TSSOP14-TSSOP
Pin Pitch
Bits888888888
Input EnableYesYesNoNoNoNoNoYesYes
Schmitt InputsYesYesYesYesYesYesYesNoNo
Output EnableNoNoYesNoNoNoYesNoNo
Inverted OutputsYesYesNoNoNoNoNoNoNo
Output Storage RegisterNoNoYesNoYesYesYesNoNo
OutputPush-pullPush-pullTri-statePush-pullPush-pullPush-pullOpen-drainPush-pullPush-pull
FunctionS to PS to PS to PS to P, P to SS to PS to PS to PS to PS to P
Voltage
Max Current
Max Frequency
Clock EdgeRisingRisingRisingRisingRisingRisingRisingRisingRising
Cost (for 3)USD$1.08USD$1.08USD$1.11USD$1.20USD$1.29USD$1.41USD$1.29USD$1.32USD$1.56
RemarksInverted output so cannot naively chainInverted output so cannot naively chainBest so far
Preferred Device

The best device seems to be the SN74HCS594PWR with its shift & storage clocks tied together—so I will move forward with this

  • Adding two extra LED drivers, I realise I can improve the distribution per IC to be 7 columns per 24-channel LED driver, and 7 rows per shift register—this gives me an even distribution per IC
    7-7-7-7-7 by 21
    • This may make the shift registers more difficult to arrange (at least with an output register), as I cannot directly chain them together without skipping a row (due to the 8th bit not being used)
    • This should just be a case of connecting one of the earlier parallel outputs to the input of the next shift register, but I will just need to follow the timing/clock cycles detailed in the datasheet
    • This topology has an advantage of a better distribution of current per IC, making it easier to stay below the current limits
    • This topology still wastes bits (55 bits), but this is better than the 87 bits of the previous arrangement—it also uses a 32 bit integer instead of a 64 bit integer, which would be preferred if the microcontroller I use has a core width of 32 bits