0
\$\begingroup\$

What's the best way to design a single activation falling edge detector?

I have a 3.3V power supply, and a separate GPIO signal that will begin toggling after power is applied. I need a signal to permanently toggle after the first falling edge, and then it should never toggle again no matter what the input does. This should be asynchronous and only depend on the input signal (or derivatives or maybe an inverted copy of the input signal).

schematic

simulate this circuit – Schematic created using CircuitLab

One thought I've had is to use a negative edge triggered DFF, with my INPUT signal as the DFF's CLK input, and PWR as the DFF DATA input. Then when INPUT toggles low, output toggles. The problem is next time the input toggles low, the output will change again, and I only want it to happen one time.

Any thoughts on how to accomplish this will be appreciated.

\$\endgroup\$
  • \$\begingroup\$ Why would the output change again on the second clock? If the data input (PWR signal) hasn't changed, the output won't either. \$\endgroup\$ – Dave Tweed Jan 14 '17 at 20:57
1
\$\begingroup\$

If using a flop, please check the power-on state of its output is well determined, which might need a special reset circuit.

Myself, I'd use this:

  • PNP+NPN wired as thyristor
  • PNP base acts as trigger
  • Trigger is capacitive-coupled to your toggling GPIO.

Power-up behavior is known: a thyristor wakes up open.

Slow voltage changes (ie, stuff that happens at supply ramp-up) does not pass through the capacitor, which should be small enough to only trigger the circuit on a fast edge from the GPIO pin.

Just my 2c.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

The output of a d-type flip flop wont change unless PWR has changed. I guess you are thinking of a j-k flip flop which toogles its output with a clock edge

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Ok thank you, I think I had just confused my flip flop types. Will revisit this. \$\endgroup\$ – 8675309 Jan 15 '17 at 0:34
0
\$\begingroup\$

Causing a low to high transistion from the first falling edge is easy. There are various ways to do this with a flip-flop. For example, a negative edge triggered D flip-flip with input high and initially cleared (output low) will do it.

Triggering on the falling edge is easy. Probably the more complicated issue is when to reset this device, unless you want it to output high forever after. Having a reset input needs to be taken into account up front.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ It will never reset, once per power on. So I think this simplifies things for me based on your comment for a negative edge triggered DFF with input high and initially cleared. What is the best way to "initially clear"? Pull up/down, or do some DFFs have a clear function? \$\endgroup\$ – 8675309 Jan 15 '17 at 0:37
0
\$\begingroup\$

If you are familiar with finite state machines(fsm), a 2-state-moore-fsm would do your work. You can use pwr as input, input as clock(your dff should be falling edge), output as output. The transition from the first state to the second should only occur when pwr is 1 by the first state. By the second state, the state shouldn't change no matter what value pwr has.

But if you are using a master clock in your system, i wouldn't actually recommend input line to be used as clock. Then you should use input as the second input and use the master clock as clock. But in this case your fsm will probably contain more than two states.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Thank you, I don't have a master clock. The 2 state fsm is a good idea. Do you recommend using DFFs to implement the FSM or other ICs? \$\endgroup\$ – 8675309 Jan 15 '17 at 0:36
  • \$\begingroup\$ Some type of ff ics should do your work, it is up to you actually. By the way, i didn't think of the initial reset as @Olin Latroph mentioned. That clear operation should be done at some time. I suggest connecting pwr line to the resets of the flip flops you use(the resets should be active low obviously). \$\endgroup\$ – packt Jan 15 '17 at 16:17

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.