1
\$\begingroup\$

I need use an shift register, but instead of the typical serial in/parallel out, the inverted functionality, parallel in/serial out. So, there is an several options, like the MC74HC165A. My plan is use two of them and tied to MISO line, but this chip can't put it's output to high-impedance state, so what happens with the MISO line?? I guess that if the MC74 force it's output to LOW, the other slaves on the bus can't be able to TX, right?

If I chain the output of the shift register with an 3-state buffer, would work?

Thank you!

\$\endgroup\$
2
  • \$\begingroup\$ Considered chaining them in serial instead of parallel? \$\endgroup\$ Commented Oct 20, 2021 at 9:21
  • \$\begingroup\$ Nop...in such case? can I tie to MISO? I think not, need a 3-state output \$\endgroup\$
    – A.martinez
    Commented Oct 20, 2021 at 9:27

3 Answers 3

1
\$\begingroup\$

First of all be aware of the phase of the SPI signals.

  • A SPI usually clocks and then samples the line, while the shift register always outputs the MSB and shifts on clock; so you'll miss the first bit unless you can reconfigure your master to one of the odd phases;

  • You are right, you can't tie together two pushpull CMOS outputs; in fact you risk damaging them.

Your idea of a 3s buffer is correct, a 74xxx1G125 would be a good part with the OE tied to the CS. Alternatively you could use a shift register which already has a 3s output, if it existed in the 74 lineup, I mean :D

The PCA9703 is more or less that but it's a far more complex part (it's also more SPI friendly)

\$\endgroup\$
0
\$\begingroup\$

The MC74HC165A is an 8-bit shift register with parallel and serial input. Consider chaining two of them in series to make a 16-bit shift register.

Connect the QH (output) of one chip to the SA (serial input) of the next chip, and parallel all the other control inputs, and they will act as a single 16-bit shift register. You can now shift 16 bits out without worrying about switching between chips.

\$\endgroup\$
2
  • \$\begingroup\$ I don't need 16 bits register, I need that they be totally independent. \$\endgroup\$
    – A.martinez
    Commented Oct 20, 2021 at 11:35
  • \$\begingroup\$ @A.martinez well if the extra delay isn't a problem, you can just read all 16 bits, and ignore half the bits \$\endgroup\$ Commented Oct 20, 2021 at 12:12
0
\$\begingroup\$

Consider the 74hc589. It has a 3-state serial out.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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