0
\$\begingroup\$

I am doing a project for which I need to expand the IO pins available on NodeMCU. I plan to use 74HC595 for the same, I have a question regarding that as given below.

Is it possible to independently enable or disable output without interrupting the loads which are already active?

\$\endgroup\$
1
  • \$\begingroup\$ Have a look at the datasheet: ti.com/lit/ds/symlink/sn74hc595.pdf it shows that each output has it's own buffer. All these buffers are enabled/disabled by the same signal (OE). So all buffers on one chip are either all on or all off. That means all outputs are on or all are off. \$\endgroup\$ Commented Apr 23, 2019 at 12:21

2 Answers 2

4
\$\begingroup\$

The 'HC595 doesn't have individual output enables, so I assume you're really asking whether you can change the state (high or low) of a pin without affecting the other pins.

The answer is yes. Your firmware needs to remember the state of all 8 pins, and when it needs to change one (or more) of them, it needs to "refresh" all 8 values. There will be no glitches on any outputs that don't change.

\$\endgroup\$
1
  • \$\begingroup\$ The firmware would need to control the latch bit. \$\endgroup\$ Commented Apr 23, 2019 at 13:13
0
\$\begingroup\$

Having the outputs actively set to High or Low only happens if the OE/ pin is low. http://www.ti.com/lit/ds/symlink/sn74hc595.pdf You cannot have some pins actively driven high and low and others disabled.

What could be done is to use a TPIC6C595, which has Open Drain outputs. A pullup resistor is added to each output to bring it to a high level. When a 1 is shifted in, the output is active and goes low. When a 0 is shifted in, the output is inactive and gets pulled high by the resistor, and other devices can then pull it low if needed.

If the question is "If a pattern (byte) is shifted in and the data does not change for some bits, do the unchanged bits stay the same at the output?" the answer is yes, the unchanged bits do not change. You can shift on 00001111 and then 10101111, the two upper bits will change from 0 to 1 while the 4 lower bits just stay at 1. The outputs get updated on the rising edge of the RCLK pin.

\$\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.