6
\$\begingroup\$

I must be blind... I'm trying to decide which of the '165, '166, and '597 shift registers is appropriate/inappropriate for a SPI input shift register. All are 8-bit parallel in.

It looks like the HC165 has a latching asynchronous load input (parallel load triggered by a pulse), the HC166 has a clocked synchronous load input (parallel load triggered by the same clock edge as the serial shift, when load enable is asserted), and the 597 has a separate set of load registers.

Can anyone add anything to the differences, or suggest which might be the most appropriate for SPI? (my gut call is the HC165, with the parallel load triggered by the inverted SPI CS line, and I'd have to add a 1-gate tristate driver for the MOSI signal)

\$\endgroup\$
7
\$\begingroup\$

The 74xx165 is the more typical choice. The 74HC597 is only better if it will be necessary to sample the input during a byte transition (and then make the sample available for the following transmission). Because the front-edge latch is rising-edge sensitive but the parallel-load latch is level sensitive, there will often not be any good signal anywhere to clock the parallel-load latch. The part would be much nicer if either both latches were level-sensitive, but otherwise the front-end latch is more likely to be a nuisance than to serve any functional purpose.

BTW, the similar timing issues exist with the 74HC595's asynchronous clear. If the parallel-load pin were level-sensitive, one could asynchronously drive the clear pin and the parallel load, so as to force all outputs to a known state. Unfortunately, the edge-triggered parallel-load pin gets in the way of such a design; one could asynchronously drive the clear pin, but one would have to then drive the parallel-load pin some time after the clear signal had registered.

\$\endgroup\$
6
\$\begingroup\$

Motorola, who invented SPI, designed the 74HC595 and the 74HC597 (they would have been LS parts then) to be SPI-compatible. The original data sheets for them had the pins identified with the standard SPI signal names, but this seems to have changed over the years. The 74HC597 has an additional non-SPI pin which loads data from the inputs to the shift register. I've used the 74HC595 with an SPI port on an MCU, but not the 74HC597.

I've heard that the 74HC165 is not fully SPI-compatible because the output remains active when the device is disabled, instead of being tri-stated, and there are one or two other differences.

\$\endgroup\$
  • \$\begingroup\$ Yeah, the HC595 is perfect for SPI outputs, there just doesn't seem to be the same kind of match for inputs... 597s are being made by fewer manufacturers and don't support very high clock rates unless you use 5V logic supplies. \$\endgroup\$ – Jason S May 4 '11 at 17:31
  • \$\begingroup\$ @JasonS Speaking of the SPI input problem, I've raised it as my own question here electronics.stackexchange.com/questions/121249/… \$\endgroup\$ – LeoNerd Jul 15 '14 at 6:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.