0
\$\begingroup\$

I'm pretty new to electronics, so be forgiving.

I bought this electronics kit (basically in order to get my new ESP8266 working), and got a 74HC595 chip with it, so I read a little bit about shift registers, and now I want to experience with it. I managed to got it working with the ESP8266, i.e., to have the ESP8266 use shiftOut function to set the shift register values.

But I was wondering if there's a way to work with it manually, i.e. to set 1's and 0's in the shift register manually.

What I tried to do is to for e.g. connect the pin 14 (data) to power, and then connect for a moment pin 11 (clock) to power. As far as I understand, this should set a 1 to the shift register, shifting all the rest of the bits one position down.

As you might guess, this is not working as I expected. Can someone tell me why?

PS

I would be glad if someone could clarify what is the duty of the pins:

  • Pin 10 - MR
  • Pin 13 - OE
\$\endgroup\$
4
  • \$\begingroup\$ "...and then connect for a moment pin 11 (clock) to power." - exactly how did you do this, and what did you have pin 11 connected to when not connected to power? \$\endgroup\$ Apr 3, 2021 at 19:02
  • 1
    \$\begingroup\$ Can you tell us what it did do, and what you expected? Those both have huge bearing on your question. \$\endgroup\$
    – TimWescott
    Apr 3, 2021 at 21:15
  • 1
    \$\begingroup\$ YoavKlein, You have enough information here and below to realize that you can't just momentarily brush a wire (or use a PB) to connect pin 11 to power. It's too "noisy." You can't see it, but it's a mess if you knew how to set things up right to see it on an oscilloscope where you'd be able to go "Oh, crap. No wonder I'm not getting what I expected!" You should see things from the electronic device point of view! But it's not so easy and you'd need a scope plus knowledge how to set it up so you could see most of what's happening to you. \$\endgroup\$
    – jonk
    Apr 3, 2021 at 21:55
  • \$\begingroup\$ YoavKlein, I'd recommend that you put this idea on hold for a moment and go make yourself a nice "clocking tool." It should feature a simple pushbutton you can use to "cause one clock event." You may want to provide two outputs, one that is inactive low and goes high for a consistent moment to active high, and then returns to inactive low and another output that does the exact opposite. That's useful. You may also want a "slow clock" output, adjustable over some reasonable range, that you could select when you have something you want to watch "do its thing" without pushing the PB each time. \$\endgroup\$
    – jonk
    Apr 3, 2021 at 21:59

3 Answers 3

1
\$\begingroup\$

Mechanical switches will bounce multiple times, both on make, and surprisingly often on break. If you use one of these for the clock input, then on operation you will get a few to many 10s of clock pulses, messing up what you thought should happen.

This is one of those circumstances where it's usually simpler, if you have a working MCU that you can control, to hook it up to the MCU, as you'll then get nice clean predictable single edges. Use it from your debugger, and it's 'manual' operation.

There are lots of ways you can debounce a mechanical switch that you can find with a suitable search. But they need extra parts.

\$\endgroup\$
3
\$\begingroup\$

Anything that involves clocking- to use it with a mechanical switch usually requires debouncing and rise/fall times within some reasonable range.

The 74HC595 does not have Schmitt trigger inputs so you would need at least something like a 74HC14 externally (plus an R-C circuit) to debounce the inputs.

As well, CMOS chips require all the inputs to be tied to a valid logic level. Check out the datasheet.

There is a nSRCLR input which will reset the shift register bits to 0 when brought low. That's probably what you call MR. You would tie that high to use it normally.

The shift register outputs are only latched on the rising edge of RCLK. That input could do without debouncing since multiple edges will just latch the same value more than once.

SRCLK needs debouncing or you may get multiple bits shifted in each time you push the button.

enter image description here

You will also want to tie nOE low to enable the output.

So if you wire 3 pushbutton switches with one or two 74HC14 debounce stages you can operate the '595 'manually'. Press (or not) one button to set the 0/1 input, press/release a second to give a rising edge on SRCLK, repeat 8x to load the shift register, then press the third to latch the shift register value into the output latch.

\$\endgroup\$
1
\$\begingroup\$

If you do a web search for "74HC595 datasheet" you should get links to the full datasheet for that part which will tell you everything you need to know to use it.

I haven't looked at the datasheet, but "MR" will be Master Reset - it will set all bits of the shift register to 0. "OE" will be Output Enable - it must be active to enable the outputs. MR and OE are often "Active Low" - you connect them to ground to enable them - so MR should be connected to Vcc and "OE" should be connected to Ground for the part to work. (but consult the datasheet to be sure)

\$\endgroup\$

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.