Electronic – Pausing a clock signal generated by 555 timer

555clockdigital-logicswitchestransistors

I am planning to make a simple integer adder/multiplier which needs a variable frequency, comparatively slow clock (around 1 to 200 Hz) for demonstration purposes. I used the following generic 555 timer circuit to generate the required clock signal.

schematic

simulate this circuit – Schematic created using CircuitLab

(Add more D flip-flops if more bits needed)

I want to pause the clock when the circuit detects a data overflow (sending a 3V logic signal) to stop the calculation process and hold its states. Not being the most familiar with electronics, I tinkered around in Falstad and noticed if you interrupt the connection between output and the "feedback" rail (Trigger, Threshold, and C1) , the timer will be stuck in its current state. The circuit will then be like such:

schematic

simulate this circuit

So, let me divide my question into two parts:

1. Can I simply use a switch (say, a BJT or a relay) to interrupt the the feeback rail to pause the clock?

2. Can I simply use BJTs or MOSFETs as the switch here? If not, can I use BJT-based octocouplers? The simulation from Falstad shows that BJTs/MOSFETs interfere with the clock signal.

Falstad schematics, using a relay controlled by a BJT

Best Answer

You can make the 555 oscillation stop without having to use any switch. Just connect your on/off signal to the RST input of the 555 chip. When the RST goes low the 555 will stop. When RST goes back high the 555 will resume generating the clock signal again.

If you want the circuit output to retain its last signal level when the clock becomes gated this is solved by running the 555 at twice the desired frequency. Then you use a D-Type FF to clock on the rising edge of the 555 output and connect it's D input to the QNOT Output. The FF will produce a nice 50% output duty cycle and will retain whatever state it was in when the 555 is forced into reset.