Simple circuit to get LOW pulse from LOW button hold

Thread Starter

stoopkid

Joined Mar 3, 2011
146
I have a chip that unfortunately cannot be woken up by external GPIO interrupts and only wakes up with a low pulse to the reset pin. I want to have two buttons that can send this low pulse but I still want to be able to see which was pressed after the chip resets. The button might be held as well. There would be one pulse per press and it could probably be any length keeping in mind how quickly a person might press a button.

The only thing I can think of would be a circuit that outputs a low pulse from the low button press. I don't want to do a latch or some kind of memory because that would make differentiating between length of press impossible.

My goal is to do this with simple components like transistors and passive components.
 

AnalogKid

Joined Aug 1, 2013
12,043
The question is not completely clear.

1. What do you mean by "see which was pressed after the chip resets"? Do you mean read the switch status with some other input pin?

2. Why do you want to differentiate between the length of press? Do you want the two buttons to generate low pulses of different lengths into the reset input?

3. Do you want the pulses to be of fixed length even if the button press is either longer or shorter than the circuit time?

Just read it again, still not clear. If you want to be able to read which button was pressed, you could do that by having the two buttons OR'd together to the input of a monostable that drives the reset pin, but also have each button connected to an I/O pin. As long as the button is held down long enough, the chip can reboot and quickly read the button inputs to wee which one is down and for how long. Something like that?

ak
 

WBahn

Joined Mar 31, 2012
32,703
So you not only want either button to cause a processor reset, but you also want to be able to know which button caused the reset and how long it was held down?

What if both buttons are pressed at the same time? Which one would you consider to be the one that caused the reset? The first one pressed? The last one released? What should the time measurement be in that case?

How long does it take your micro to reset and start running your program? How repeatable is that reset time?

What is it that you are really trying to accomplish? Perhaps there is another way altogether.
 
Top