Electrical – Add Delay to “Momentary to Toggle Button” Circuit

analogbuttondigital-logic

I have a simple circuit to take a momentary tactile button and make it toggle a power signal on and off. Unfortunately I was now asked to add a delay to the button. So you have to hold it for a second before it operates the circuit.

I am at a loss for any simple passive way to do it. I looked at a simple RC delay, but was unable to make anything work with a time-frame in the seconds without ending up with unrealistic values.

Anyone have any simple ideas that do not involve adding a micro controller?

I'm fine with an RC decay type of timer etc. that does not reset instantly, I am also fine if anyone has an application specific PMIC that does something like this. I just would like to avoid another code base and toolchain.
enter image description here

Best Answer

Here's a state diagram that approximates what I imagine you want:

enter image description here

It's robust, I think.

But as you can see, it's not going to be just a few discrete parts. A reliable timer on the order of seconds can be built with one mosfet and one BJT and a capacitor and a few resistors. The mosfet would be needed because BJTs make terrible multi-second timers as their base current requirements are a pain. But then you also need, probably, another two or three BJTs and a couple more capacitors, I think. So not discrete.

So the MCU idea has already been floated. You could hire someone to supply you with programmed parts (or the manufacturer can do that) and the software and take care of all the toolchain and pre-programming issues and provide you with software backup in case something happens to them. That means setting up a relationship, etc. So.. it's probably off the table, too.

I've already mentioned the ... well yes, boutique and largish and over-featured ... LTC2953. Just googled it up, actually. Never used one. But looks right in terms of features. I'm sure there are other companies making similar devices now with good specs.

Your "using logic" approach makes me think of a couple of D flops, a 74121 or 555 (used as a one-shot), and an xnor gate. Something like this:

schematic

simulate this circuit – Schematic created using CircuitLab

Some details are left out of the above. For example, I didn't provide the R and C values required by the 74121. I didn't deal with any proper resetting of the D flops. There's probably conditions that aren't robust. But it gets an idea across.

When the PB is pressed down (the A inputs are falling edge triggers), the 74121 triggers and Q goes HI. That edge causes the left D flop to capture a copy of the EN output. When the 74121 times out, /Q goes HI and that edge causes the right D flop to either take the inverse of the copied EN state or else just the same EN state as before... depending upon the state of the PB when the time-out occurs. If the PB has been released early then its input to the XNOR will be 1 and this will mean that the left D flop will just be copied back to the right D flop. But if the PB is still held down at this time, then its input to the XNOR will be 0 and this will mean that the copied EN state in the left D flop will be inverted and then latched to the right D flop.

Something like that.


What you really want is to go do the extra tool chain/MCU stuff. It will cost almost nothing, takes very little programming time to achieve, and you'll be off and running with a nice SOT-23-6 MCU that costs nothing much, takes up no space, and is probably more reliable.

Related Topic