Wienbridge oscillator à la Jim Williams

Jim Williams was probably one of the best and most productive analog designers of the 20th century. He has written many application notes and design briefs in his career as application engineer for Linear Technology. Of course, it featured parts manufactured by his employer. His biggest contribution in the field of analog design, is that he not only showcased his extensive knowledge but also explained in great detail what he did and why he did it and how you can do it yourself. Basically, he was and excellent teacher as well as an engineer. In design note 70 “A Broadband Random Noise Generator”, he uses a current balance to control the amplitude of his generator.
This sine oscillator uses the same approach and this article highlights the math behind it.

This wienbridge oscillator uses a current balance for amplitude control.

The circuit around opamp A1 is a “classic” wienbridge oscillator. C1, R1, C2, R4 form the frequency determining components. If R1 = R4 and C1 =C4, the frequency is f0 = 1 / 2 π RC. The attenuation at f0 is equal to 1/3, so that A1 needs to amplify at least 3x to compensate for this. The amplification of A1 is given Av = (R2+ R3) / R3 (assuming that the resistance of Q1 is negligible). So Av = (22k + 10k) / 22k = 3.2x. This ensures that the oscillation will start reliably.

The attenuation of the wienbridge network is 1/3 and the gain of A1 is 3.2, thus the loop gain is > 1. This will cause the output to increase during each cycle until the output from A1 clips at the power rails. This is were JFET Q1 comes into play. The JFET is used here as variable resistance. If VGS is 0V, the resistance of Q1 is at minimum (up until now, we assumed zero but this is not really the case). If VGS gets close to the pinch-off voltage Vp, the resistance will increase sharply. A large resistance, will cause the amplification of A1 to drop right until the total loop gain is 1.0x.

Balance is reached when : \[ I_{D1} = I_{D2} \] \[I_{D1} = {V_{ref} – V_{D1} \over R6} \] The average voltage of a sine wave is \( {2 \over \pi} \) . Since only the positive half of the sine wave is used, this should be halved again. The average current through D2 is thus: \[ I_{D2} = {{ (V_p – V_{D2}) {2 \over \pi } {1 \over 2} } \over R7} \] So if the average currents through both diodes are equal: \[ {V_{ref} – V_{D1} \over R6} = {{ (V_p – V_{D2}) {2 \over \pi } {1 \over 2} } \over R7}\] Thus \[ { { (V_{ref}-V_{D1}) R_7 } \over {R_6 0.637 {1 \over 2} }} + V_{D2}= V_p \] If we fill in the values from the circuit and we assume Vd is 0.65V we get a value of Vp = 6.6V. Which is within 5% of the actual measured value. This is better than expected since the voltage reference has a tolerance of 1% and all resistors have a tolerance of 5%.
Ugle bug manhattan style proof of concept thingie..

Literature
A Broadband Random Noise Generator – Design Note 70, Jim Williams

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>