The versatile circuit shown can be used to realize several different circuit functions—an astable multivibrator, a monostable multivibrator, a switch debouncer, or a frequency discriminator (Fig. 1).

Inverters U1a and U1b are connected as a latch. When the input voltage (V_{IN}) is high, the output voltage (V_{OUT}) will go high. Due to the regenerative feedback through resistor R2, V_{OUT} will remain high until a reset condition occurs or power is removed. While V_{OUT} is high, capacitor C1 is charged through R3.

The output voltage of inverter U1c is high until the voltage on C1 exceeds the high threshold (V_{TH}) of U1c. At this time, the output voltage of U1c will go low. A low voltage at the output of U1c will reset the latch through diode D1. With the latch reset, V_{OUT} will be low and C1 will discharge through R3. When the voltage on C1 goes below the low threshold (V_{t1}) of U1c, it’s output voltage will go high. The circuit is now back to it’s original state.

This circuit has a natural period (T= t1 + t2) consisting of a high output that lasts for t1 seconds and a low output that lasts for t2 seconds (Fig. 2). During the entire time period T, the circuit can not be retriggered. The output pulse width (t1) is determined as follows:

(V_{TH}-V_{TL} ) = (V_{DD}−V_{TL}) (1−e^{−t/R3C1})

ln \[1 − ((V_{TH} − V_{TL})/(V_{DD} − V_{TL})\] −t/ R3C1

t = t1 = −R3C1 ln\[1 − ((V_{TH} V_{TL})/(V_{DD} − V_{TL})\]

The time (t2) is derived as follows:

V_{t1} = V_{TH} ( e^{−t/R3C1})

( V_{t1}/V_{TH} ) = e^{−t/ R3C1}

ln ( V_{t1} / V_{TH} ) = −t/R3C1

t = t2 = −R3C1 ln (V_{TL}/V_{TH})

Referring to Figure 1, if V_{IN} is a signal having a period T_{IN} that’s larger than T, V_{OUT} will be a pulse train. In this case, V_{OUT} will have a period equal to T_{IN} and a pulse width equal to t1. The duty cycle of V_{OUT} can therefore be adjusted by changing T_{IN}. In the case where V_{IN} has a period T_{IN} that’s much shorter than T, the circuit will continuously oscillate with period T. If T is in the audible range and used to drive a speaker, some unique sounds can be generated depending on T_{IN}.

During its natural period T, the circuit won’t respond to any input. An effective switch debounce function can be achieved by making T longer than the switch bounce time. The same characteristics make the circuit useful for generating a reset pulse.

Connecting V_{IN} to V_{DD} will cause the circuit to function as an astable multivibrator with an output period of T. Connecting V_{IN} to a signal that is high for a time longer than T creates a gated astable multivibrator. The number of pulses generated will depend on how long V_{IN} is high compared to T.

To customize the duty cycle of V_{OUT}, steering diodes and a second resistor can be added, as shown in Figure 3. For the circuit in Figure 3, t1 is calculated using R3C1 in the time constant. To calculate t2, R4C1 is used. The duty cycle is defined as:

Duty cycle (%) = 100\[t1/(t1 + t2)\]