A 74HC74 hysteresis mystery

74hc74small.jpgThe development ‘lab’ has moved to the kitchen table as the workshop is so cold that there is liquid nitrogen sloshing around on the floor.

And as well as my ‘scope, Dr Frustration appears to be in the house.

For two evenings I have been trying to fault-find a breadboard circuit with only four components that is so trivial I almost didn’t try it.

And am not even sure I am at the bottom of it yet.

The circuit is supposed to be a push button on-off control, and is one that can be found all over the web.

Simply, a D-type flop-flop is wired /Q to D so that every time the CLK input gets a positive edge, the outputs change state.

An RC network debounces the push button.

Or so it is claimed.

It should work, particularly as the 74HC74 has a level-sensitive input and is reputed to have hysteresis on the clock input.

What could go wrong?

push-circuit.jpgWell, I have tried R = 1M to 47k, and C = 0.1 to 1uF to no avail.

The flip-flop clocks nicely on the fast rising edge, then more often than not, clocks again on the slow negative edge.

It mostly works fine with no capacitor, except when the switch bounces.

Before you ask, /set and /reset are indeed wired to Vcc, and the 4th component is a decoupling cap.

I was assuming that the hysteresis – mentioned in data sheets from more than one manufacturer, was of the standard CMOS Schmitt type – with thresholds and 0.33 and 0.66% of Vcc.

But neither of the Nat Semi 74HC74s I have tried, nor the Motorola 54HC74, that I raided from my parts bin seem to have any noticeable hysteresis at all.

TI has two data sheets, one for SN74HC74 and one for CD74HC74, and only latter mentions hysteresis on the CLK input.
RCA also mentions hysteresis in my much dog-eared data book.

Does anyone know whether all 74HC74s have hysteresis?

And what the value it is when it does exists?

There are a whole bunch of mono, bi and n-stables on this blog and they were mostly hyperlinked until some IT changes at EW disconnected them all. As I can’t face putting all the links back in the right places, here is a list instead.
A 74HC74 hysteresis mystery
Hysteresis mystery solved, probably
Two leds for one
And now the pcb
Simple circuit selects LEDs? – a tri-stable
More push button bistables
A 74HC4060 monostable?
Thoughts on another EEVblog – a power on-off bistable

Related Tech News

7 Comments

  1. 'Alice'
    March 22, 2010 16:43

    Thanks John.
    I have used a similar approach with a microcontroller – responding to the interrupt with a 20ms delay, then checking the line to see if it has changed level in the right direction.
    It worked well.
    ‘Alice’

  2. Robert Wood
    February 11, 2010 16:11

    I designed a timer that turned on and was paused by micro-switches. A close examination of the switching of the switches showed as many as eight on-offs. A circuit which only used the first transition to switch the logic then took tens of milliseconds to recharge proved to be the always work solution.

  3. john
    February 11, 2010 12:28

    I remember in the past have problems caused by the outputs being connected to long cables. Reflections caused the output to toggle, appearing that the output had’nt changed wrt to the clock. By adding a buffer, then the erroneous switching problems went away.

  4. 'Alice'
    January 28, 2010 11:13

    Thanks Steve, PB and Anonymous.
    It turns out some 74HC74s don’t need a separate Schmitt buffer because they have proper hysteresis, and other 74HC74s have conventional CMOS inputs.
    I have formed the opinion that a CD74HC74 from any manufacturer will have hysteresis.
    See the blog ‘Hysteresis mystery solved, probably’
    I did indeed put a resistor, and by complete co-incidence exactly 100R, in series with the switch, and re-arranged the circuit to keep what remain of the current spike away from the power rails.
    BTW
    Slightly oddly, when I attached the loads and moved away from the lab supply to the application’s noisy dc-dc converter (the noise is on the -VE rail), I actually got perfect switching with the cap returned to the negative rail, and the occasional flaw when the cap was returned to the positive rail.
    100R added into the negative rail, which I was putting in to clean up the dc-dc converter transients, sorted out the occasional flaw as well.
    The whole thing looks clean now.
    ‘Alice’

  5. Anonymous
    January 25, 2010 15:26

    The resistor should be in series with the switch, before the clk input. The cap should then provide high freq. decoupling to ground of the clk input. May need some resistance in parallel to capacitor to discharge it when switch goes open circuit.

  6. PB
    January 25, 2010 08:00

    The switch together with the capacitor will generate a transient current peak at the moment the switch is closed (capacitor charging) which may disrupt the power supply playing havoc with fflop state and potentially the rest of the circuitry.
    I have seen switches damaged in similar circuit where capacitance was larger.
    It is advisable to add small resistance (100ohm) in series with the switch and use dedicated Schmitt gate HC132 etc

  7. Steve Kurt
    January 23, 2010 21:18

    “what could go wrong?”
    where have I heard those words before? ;-)
    The only issue that I can see is that the edge at the clock input could be fairly slow, and that might violate the 500ns max rise or fall time that TI recommends. I think that violating this guide risks latching up the input.
    In general, I’ve always thought that a 74HC14 was recommended to square up any inputs to a HCMOS circuit.
    good luck,
    Steve

Share your knowledge - Leave a comment