I have seen the CMOS Schmitt waveform generator circuit (i.e. figure 2nd) from the following link http://www.electronics-tutorials.ws/waveforms/generators.html I tried to simulate the circuit in MULTISIM using 40106BD to get different frequencies by varying capacitor. It is given that the formula to calculate the frequency is 1/(1.2*R*C) but I am not getting the frequencies correct using these formula. I am using range of R as 100K and capacitor range 1pf to 1nf . I want to know why I am getting different frequency than calculated. Also how does this circuit works and how do we get the expression for frequency.

  • \$\begingroup\$ Don't expect the formula to spot-on regarding the frequency. In the linked articel they are using an 74LS14 which is quite different from the 40106. I suggest that you try with a 10 nF capacitor and a 10 kohm resistor, do you then get the frequency you expect ? If that works, then stepwise change the values to what you want and see where it deviates from the formula. How the circuit works is explained in the link you provided ! \$\endgroup\$ Jun 30, 2015 at 9:04
  • \$\begingroup\$ Please your linked article more closely. In the CMOS section it specifically states, "The frequency of oscillation may not be the same as: ( 1/1.2RC ) as CMOS input characteristics are different to TTL." \$\endgroup\$ Jun 30, 2015 at 14:57
  • \$\begingroup\$ @IC_designer_Rimpelbekkie I tried it with 10nF and 10Kohm but still not getting the frequency according to formula. And one more thing for less values like 1p to 20pf I am getting equal frequencies for say 11pf tp 14pf and 4pf to 5pf. I used same 100K resistor. Is it because of the accuracy of simulation. If I make the circuit and then take the readings will I be able to make the correct formula for the oscillation frequency ? \$\endgroup\$ Jul 1, 2015 at 6:43
  • \$\begingroup\$ don't say 'I'm not getting the frequency I expect'. Do say 'I expect this frequency, but am getting that frequency'. Why? It tells us what is happening, rather than what's not. It gives us an idea of whether you're slightly out or a long way out, high or low, which might give us a clue as to what's wrong. \$\endgroup\$
    – Neil_UK
    Apr 22, 2018 at 16:09

1 Answer 1


Short explanation:
The \$C_T\$ is charged more or less slowly via \$R_T\$ until it reaches the OFF level of the Schmitt-Trigger-Inverter. Then the output turns low and \$C_T\$ is discharged via \$R_T\$ until the lower ON-level is reached and the whole process start over again.

This kind of osciallator is called Relaxation Oscillator, see e.g. at Wikipedia (paragraph about comparator based relaxation oscillator).

The frequency may differ depending on the actual levels of the ON and OFF thresholds of the 40106 Schmitt-Trigger-Inverter (see datasheet. As much as I know those values are not very precicely specified and may vary quite a bit. Probably your simulation used different threshold levels as the experiment description you linked). If you build this circuit in reality there will be another deviation from theory/simulation if you use small \$C_T\$s (just a few pF): the wiring itself represents a capacitance (maybe 5..20pF) wich inrceases the total capacitance.

Calculating the frequency:
Either see example from Wikipedia article and adapt or see e.g. here:

\$f = 1 / T\$ and
\$T = t_1 + t_2\$ (where \$t_1\$ is time for charging up and \$t_2\$ is time for charging down)

\$t_1 = τ \ln [((V_u - V_1) / (V_u - V_2)] \$ (time for charging up) and
\$t_2 = τ \ln[(V_2 - V_d) / (V_1 - V_d)]\$ (time for charging down)

(where \$V_u\$ is upper supply voltage, \$V_d\$ is lower supply voltage (in your case = 0V) and \$V_1\$ and \$V_2\$ are lower and upper thresholds, \$τ\$ is the time constant \$R_T C_T\$)

Determining frequency dependency by experiment:
From theoretical consideration above you know that frequency will be a function of capacitance of the following form:

\$f(C) = \frac{k}{C_{stray} + C}\$

Where \$k\$ and \$C_{stray}\$ are constants (but yet unknown). If you measure the frequency of the real circuit for two different known capacitances \$C\$ you'll get two equations you can solve for both constants simultaneously (or you can do more measurements and do a least square fit).

  • \$\begingroup\$ Thank you so much for the help. If I know the ON and OFF thresholds of the Inverter will I be able to derive the formula for oscillations? If yes, How to do that? I have one more doubt as I mentioned in the previous comment I am getting same values for 11pf to 14pf like that. Practically will I get different frequency. I want to measure the capacitance between 1pf to 100pf range using this circuit. So according to whatever u said I am assuming this won't be a accurate method to do so even if I know the formula. Please correct me if I am wrong. \$\endgroup\$ Jul 1, 2015 at 6:48
  • \$\begingroup\$ The Wikipedia article shows the calculation (last line in paragraph "Example: Differential Equation Analysis of comparator-based Relaxation Oscillator"). Be aware that you also have to take into account that you always will have stray capacitances and that the thresholds may vary from 40106 device to device. So the best is to measure the frequency of your circuit with some known capacitances and derive parameters for your frquency formula (which will be valid only for your particular circuit). \$\endgroup\$
    – Curd
    Jul 1, 2015 at 7:32
  • \$\begingroup\$ Thank you again. This was a great help. Will it be better to derive formula by implementing the circuit practically taking into consideration the actual parameters rather than depending on the simulation results ? \$\endgroup\$ Jul 1, 2015 at 7:40
  • \$\begingroup\$ Yes, because for simulation you need precise values for thresholds and stray capacitance (and probably also inductance). Since you don't know them it's easiest to measure frequency of the real circuit with at least two different known capacitances C and derive a fit for the model function f(C) = k / (Cs + C) where k and Cs are fitting parameters and C is the variable capacitance. \$\endgroup\$
    – Curd
    Jul 1, 2015 at 10:04
  • \$\begingroup\$ Using the equation given in the answer I got the formula keeping the lower and upper threshold values as 1.5 and 3.5V from the datasheet . when I did simulation in multisim the frequency values was quite similar to values from formula only for capacitance in nf range. It doesn't give correct values for capacitances in pf range. Why is this problem occurring ? How can I get correct values as I got from formula. \$\endgroup\$ Jul 8, 2015 at 14:29

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.