Electronics-Related.com
Forums

Quadrature Oscillator

Started by George Herold May 13, 2014
On Tuesday, May 13, 2014 3:58:36 PM UTC-4, Jim Thompson wrote:
> On Tue, 13 May 2014 12:50:50 -0700 (PDT), George Herold > > <gherold@teachspin.com> wrote:
> >> Yep, the Q is so high it takes a bare twiddle to make it go. > >OK.. From my limited oscillator experience it will depend on how good > >the cap is. (good, as in low dissipation.)
> >> > > >> I threw this together some 8 years ago to demonstrate the gyrator > >> band-pass effect. IRL I used an AGC loop. (An accurate clipper work > >> also.) > >> > >> You can get really low distortion with good OpAmps. I built one for a > >> Sperry Flight Systems synchronous detect at 400Hz... 0.001% harmonic > >> distortion :-) > > >> > > If you run the numbers you'll find that dissipation factor (in active > filters) is only a problem at low frequencies.
Hmm OK... I'll have to think about that. (I'm not even sure the dissipation factor is one number, it probably changes with frequency.) I've got an SRS LCR meter, but I don't really believe the dissipation numbers when they get low... Sometimes it gives me a negative number for instance. I did just do a simple Wein bridge oscillator, I used NPO ceramics, someone in production subbed in a film cap. And that caused it to stop working at the highest frequencies (80kHz.) George H.
> > See... > > <http://www.analog-innovations.com/SED/StateVariableFilter(P+1).pdf> > > for how I cured (in the early '70's) the dissipation factor problem in > telephone-signaling low-frequency filters. > > > > ...Jim Thompson > > -- > > | James E.Thompson | mens | > > | Analog Innovations | et | > > | Analog/Mixed-Signal ASIC's and Discrete Systems | manus | > > | San Tan Valley, AZ 85142 Skype: Contacts Only | | > > | Voice:(480)460-2350 Fax: Available upon request | Brass Rat | > > | E-mail Icon at http://www.analog-innovations.com | 1962 | > > > > I love to cook with wine. Sometimes I even put it in the food.
On Tuesday, May 13, 2014 4:15:54 PM UTC-4, John Silverman wrote:
> Tim Wescott <tim@seemywebsite.really> wrote:
> > I'd be tempted to integrate-integrate-invert. It would take three op- > > > amps, but you may have a better chance to get each section working > > correctly. Of course you'd need the obligatory teeny bit of lag > > somewhere, to make the oscillation start. > > > > > > > This is getting way too complicated. Analog circuits drift and can never > guarantee quadrature. A simple 74HC74 will. See > http://www.wb5rvz.com/sdr/ensemble_rx_ii_vhf/04_div.htm
Hmm that might work. (Well I'll have to figure it out first :^) Does it keep a fixed phase reference to the input LO? Thanks, George H.
On Tuesday, May 13, 2014 4:45:01 PM UTC-4, whit3rd wrote:
> On Tuesday, May 13, 2014 1:15:54 PM UTC-7, John Silverman wrote: > > > This is getting way too complicated. Analog circuits drift and can never > > guarantee quadrature. A simple 74HC74 will. See > > > > http://www.wb5rvz.com/sdr/ensemble_rx_ii_vhf/04_div.ht > > There's ways to make an analog signal lock-in to a digital > quadrature clock, of course. > There's also a switched-capacitor solution, see figure 15 > > <http://www.ti.com/lit/an/snoa572c/snoa572c.pdf>
OK, But I don't think that will go anywhere near 1 MHz.
> > And, if one wishes to go old-school, an LC oscillator > puts out sin(wt) voltage on the capacitor, and cos(wt) > current through the inductor; you can make a sense > coil lightly coupled to the inductor to pick off the second > phase. If Q is high, it needs no correction; if Q is low, > you can make a weighted sum of the two signals that is > tunable to get closer to 90.00 degrees phase, and > a simple multiplicative mixer makes a DC signal of the > error, to guide the tuning.
OK thanks, George H.
On Tuesday, May 13, 2014 9:12:24 PM UTC-4, John Silverman wrote:
> Tim Wescott <tim@seemywebsite.really> wrote: > > > > > On Tue, 13 May 2014 20:15:54 +0000, John Silverman wrote: > > > > >> This is getting way too complicated. Analog circuits drift and can > > >> never guarantee quadrature. A simple 74HC74 will. See > > >> > > >> http://www.wb5rvz.com/sdr/ensemble_rx_ii_vhf/04_div.htm > > > > > > If George can deal with square waves, yes, that's going to work way > > better than an analog solution. > > > > If he needs sine waves, by the time he's gotten the harmonics beaten > > out of that he'll be back to depending on analog components for his > > precision. > > > I dunno why he needs quadrature signals for a lockin, but presumably they > are for I-Q. Mixers work better with square waves.
Oh I wanted to do these CV measurments, so put an AC voltage across a cap and measure the out of phase current. I can do this other ways, But I was thinking if I started with a source that had both I and Q, then it might be easier. And yeah I think it will all get turned into square waves to turn switches or something on and off. So your D-flip flop circuit may do the trick. George H.
> > > > Also, the 74HC74 guarantees symmetry, which reduces the even harmonics. > > Analog methods can drift, so you never know what you have.
On Tuesday, May 13, 2014 10:45:08 PM UTC-4, Bill Sloman wrote:
> On Wednesday, 14 May 2014 00:36:36 UTC+10, George Herold wrote: >=20 > > Quadrature oscillator. >=20 > > Hi all, As part of the CV measurements (from a previous post)=20 > > I'm thinking about a 1 MHz lockin. > > (Maybe a different thread to talk about how to do the switching.)=20 > > I was wondering if I could make a quadrature oscillator from opamps. >=20 >=20 > Here something that might be interesting
http://www.janascard.cz/PDF/An%20ultra%20low%20distortion%20oscillator%20wi= th%20THD%20below%20-140%20dB.pdf
>=20
Got it... That looks a lot like what J. Williams did (AN43??) =20 He (JW) beat on the Wein bridge till he got distortion down below the origi= nal=20 HP200. It was in one of his Electronics compendiums also. =20 (Well worth a read if you haven't already.) George H.
>=20 > The LME49710 is much too slow to be interesting at 1MHz - it's amazing di=
stortion performance stops being amazing above a few kHz - but the amplitud= e control scheme might be worth looking at.
>=20 >=20 >=20 > I've played around (only in LTSpice) with using an AD734 to provide the v=
ariable part of the amplitude-controlling feedback for a 17kHz (100,000 rad= ian per second) oscillator. At 1MHz you might look at an AD834.
>=20 >=20 >=20 > My amplitude control scheme looks a bit different - e-mail me if you want=
to look at it (since I'm thinking about publishing it if I ever get around= to putting together and testing a real circuit).
>=20 >=20 >=20 > Using an AD825 or some other fast, low-distortion part to provide the bul=
k of the gain (tweaked so that the AD834 is nominally doing nothing, and as= likely to provide negative feedback as positive as the component values d= rift) is an attractive way to go.=20
>=20 >=20 >=20 > Even "low distortion" four quadrant multipliers like the AD734 and AD834 =
have much higher levels of distortion than regular, low distortion op amps,= but if you only use them to tweak the loop gain the amount of extra distor= tion they feed in is small - verging on negligible if you spend heavily on = stable passive components.
>=20 >=20 >=20 > --=20 >=20 > Bill Sloman, Sydney
On Thursday, 15 May 2014 02:41:55 UTC+10, George Herold  wrote:
> On Tuesday, May 13, 2014 10:45:08 PM UTC-4, Bill Sloman wrote:=20 > > On Wednesday, 14 May 2014 00:36:36 UTC+10, George Herold wrote: > > =20 > > > Quadrature oscillator.=20 > > =20 > > > Hi all, As part of the CV measurements (from a previous post)=20 > > > I'm thinking about a 1 MHz lockin. > > > (Maybe a different thread to talk about how to do the switching.)=20 > > > I was wondering if I could make a quadrature oscillator from opamps > > > > Here something that might be interesting >=20 > http://www.janascard.cz/PDF/An%20ultra%20low%20distortion%20oscillator%20=
with%20THD%20below%20-140%20dB.pdf=20
> > =20 > Got it... That looks a lot like what J. Williams did (AN43??) =20 >=20 > He (JW) beat on the Wein bridge till he got distortion down below the ori=
ginal HP200. It was in one of his Electronics compendiums also. =20
>=20 > (Well worth a read if you haven't already.)
Read it. It's much the same idea, but Linear Technology doesn't seem to hav= e an equivalent of the LME49710 so he didn't do quite as well. I still like= the AD734 and AD834 as the loop-gain twiddling elements, but they aren't c= heap. Jim Williams would not have used them because they are Analog Devices= parts, and Linear Technology doesn't seem to have any kind of decent multi= plier. Thaler does - the THAT 2181, which can live with lower supply voltag= es than the AD734. --=20 Bill Sloman, Sydney Bill Sloman, Sydney
George Herold <gherold@teachspin.com> wrote:

> On Tuesday, May 13, 2014 9:12:24 PM UTC-4, John Silverman wrote:
>> > On Tue, 13 May 2014 20:15:54 +0000, John Silverman wrote: >> >> This is getting way too complicated. Analog circuits drift and can >> >> never guarantee quadrature. A simple 74HC74 will. See
>> >> http://www.wb5rvz.com/sdr/ensemble_rx_ii_vhf/04_div.htm
> Oh I wanted to do these CV measurments, so put an AC voltage across a > cap and measure the out of phase current. > I can do this other ways, But I was thinking if I started with a > source that had both I and Q, then it might be easier.
> And yeah I think it will all get turned into square waves to turn > switches or something on and off. So your D-flip flop circuit may do > the trick.
> George H.
Yes, the idea is to feed a low level sine wave to the junction, then measure the in-phase and quadrature currents. Keithley has a brief article decribing some of the challenges of making the measurement at http://www.keithley.com/data?asset=52523 An example of a CV measurement is shown on Page 3 of <http://gato-docs.its.txstate.edu/cos-department-of- physics/manuals/CVanalyzer/CVanalyzer.pdf> The description reads: The block-diagram of the Keithley 590 CV analyzer is printed in Fig. 3. The system can be used to measure the real and the imaginary part of the impedance at two different frequencies (ie 100 kHz, and 1 MHz). The impedance is determined by applying an AC voltage of 15 mV to the sample and measuring the current that is in phase with the voltage and the current that is 90 degrees out of phase with the voltage. The quadrature measurement requires square waves with low asymmetry, which the 74AC74 provides. The trick will be to generate the 1MHz exitation sine wave and the 4X clock to the 74AC74. It needs to be in phase with the 1MHz sine wave. Frequency doublers can be made using a limiter driving a tuned circuit. The tuned circuit frequency can be adjusted to vary the phase. Two doublers will give the needed 4X clock. For broadband work, it would be desirable to minimize the number of tuned circuits needed. Wenzel shows how to make wideband doublers using switching diodes at http://www.wenzel.com/pdffiles1/pdfs/diodedbl.pdf A single tuned circuit at the output could be used to adjust the phase.
Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> wrote:

> On 05/13/2014 04:15 PM, John Silverman wrote: >> This is getting way too complicated. Analog circuits drift and can >> never guarantee quadrature. > > That isn't so. As long as slew limits are observed, an integrator > will give a very accurate 90 degree phase shift.
You are correct. I made a simple comparison model in LTspice and tried to break it. Nothing had much effect on the phase angle, except the op amp GBW needs to be above 50 MHz, preferably 200 MHz or higher. I post the LTspice files at the end.
> Servoing the frequency to > make the amplitudes equal isn't very hard. That makes the component > tolerances all come out as frequency shifts, and measuring the > frequency accurately gets rid of all of it, for the purposes of > capacitance measurement.
No need to go to that complexity. Simply adjusting the capacitance in the op amp feedback will trim the amplitude. See the LTspice file at the end. This allows the measurement to be made at a specific frequency, such as 1 MHz, which helps repeatability.
> A simple 74HC74 will. See >> >> http://www.wb5rvz.com/sdr/ensemble_rx_ii_vhf/04_div.htm > > Johnson counters are great in PLLs, where the square wave output is > just what you want, but not much use for making quadrature sine > oscillators (as others have noted).
The intended use is a CV analyzer. The quadrature signals are not applied to the junction. They are needed to apply switching signals to the in-phase and quadrature detectors. A CMOS switcher requires square waves at logic level, which is naturally provided by the 74AC74. Sine waves would need to be converted square waves, which requires a limiter. The switching signals need to have low even harmonic distortion. This may be difficult to achieve using sine waves and a limiter, but it is a natural result of dividing in a 74AC74. The integrator approach is single frequency, so different modules would be needed to cover specific frequencies. The 74AC74 is inherently broadband so a single ic can be used over a broad frequency range. The 74AC74 will clock at a minimum of 140 MHz. This would allow measurements up to 35 MHz. It may be difficult to get an op amp integrator to work at higher frequencies and still provide an accurate 90 degree phase shift. One difficulty with the 74AC74 approach is to get a 4X clock with the proper phase aligned with the 1 MHz exitation signal. I proposed several solutions in an earlier post.
> Cheers > > Phil Hobbs
Here are the LTspice files: Version 4 SHEET 1 980 696 WIRE 192 80 144 80 WIRE 304 80 272 80 WIRE -32 160 -96 160 WIRE 0 160 -32 160 WIRE 32 160 0 160 WIRE 144 160 144 80 WIRE 144 160 112 160 WIRE 208 160 144 160 WIRE 304 160 304 80 WIRE 304 160 272 160 WIRE -256 176 -256 160 WIRE -96 176 -96 160 WIRE 144 256 144 160 WIRE 160 256 144 256 WIRE -256 272 -256 256 WIRE -96 272 -96 256 WIRE 272 272 224 272 WIRE 304 272 304 160 WIRE 304 272 272 272 WIRE 160 288 144 288 WIRE 144 320 144 288 WIRE -256 384 -256 368 WIRE 192 400 144 400 WIRE 304 400 272 400 WIRE -256 480 -256 464 WIRE 0 480 0 160 WIRE 32 480 0 480 WIRE 144 480 144 400 WIRE 144 480 112 480 WIRE 208 480 144 480 WIRE 304 480 304 400 WIRE 304 480 272 480 WIRE 144 576 144 480 WIRE 160 576 144 576 WIRE 272 592 224 592 WIRE 304 592 304 480 WIRE 304 592 272 592 WIRE 160 608 144 608 WIRE 144 640 144 608 FLAG -256 480 0 FLAG -256 272 0 FLAG 192 240 +V FLAG -256 160 +V FLAG -256 368 -V FLAG 192 304 -V FLAG -32 160 INp FLAG 272 272 Vout FLAG 144 320 0 FLAG -96 272 0 FLAG 192 560 +V FLAG 192 624 -V FLAG 272 592 Vout2 FLAG 144 640 0 SYMBOL voltage -256 160 R0 SYMATTR InstName V1 SYMATTR Value +15 SYMBOL voltage -256 368 R0 SYMATTR InstName V2 SYMATTR Value -15 SYMBOL res 128 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 SYMATTR Value 100 SYMBOL voltage -96 160 R0 WINDOW 3 24 104 Invisible 2 SYMATTR Value PULSE(0 1m 0 1u 1u 10m 1) SYMATTR Value2 AC 1 SYMATTR InstName V3 SYMBOL cap 272 144 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C1 SYMATTR Value 1.5n SYMBOL res 128 464 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R3 SYMATTR Value 100 SYMBOL cap 272 464 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C2 SYMATTR Value 1.5n SYMBOL res 288 64 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R2 SYMATTR Value 10k SYMBOL res 288 384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 10k SYMBOL opamps\\universalopamp2 192 592 R0 WINDOW 123 22 35 Left 2 SYMATTR Value2 Avol=1e6 GBW=50Meg Slew=50Meg SYMATTR InstName U2 SYMBOL opamps\\universalopamp2 192 272 R0 WINDOW 123 22 35 Left 2 SYMATTR Value2 Avol=1e6 GBW=200Meg Slew=50Meg SYMATTR InstName U1 TEXT -72 24 Left 2 !.ac dec 512 100 1e8 TEXT -72 -8 Left 2 ;'Op Amp Integrator Comparison Model TEXT 152 24 Left 2 ;.tran 0 100m 0 1u Here is the PLT file: [AC Analysis] { Npanes: 1 { traces: 2 {524290,0,"V(vout)"} {524292,0,"V(vout2)"} X: ('M',1,1,0,1e+008) Y[0]: (' ',0,0.0398107170553497,7,125.892541179417) Y[1]: (' ',0,0,20,200) Volts: ('m',0,0,1,0,0.0001,0.0011) Log: 1 2 0 GridStyle: 1 PltMag: 1 PltPhi: 1 0 } } [Transient Analysis] { Npanes: 2 Active Pane: 1 { traces: 1 {524290,0,"V(vout)"} X: ('m',1,0,0.0003,0.003) Y[0]: (' ',1,-2,0.2,0) Y[1]: ('_',0,1e+308,0,-1e+308) Volts: (' ',0,0,1,-2,0.2,0) Log: 0 0 0 GridStyle: 1 }, { traces: 1 {524291,0,"(V(inp)-V(inn))/I(V3)"} X: ('m',1,0,0.0003,0.003) Y[0]: ('K',3,-2002,2,-1978) Y[1]: ('_',0,1e+308,0,-1e+308) Units: "ohm" ('K',0,0,0,-2002,2,-1978) Log: 0 0 0 GridStyle: 1 } }
John Silverman <Nospam@me.com> wrote:

> George Herold <gherold@teachspin.com> wrote:
>> And yeah I think it will all get turned into square waves to turn >> switches or something on and off. So your D-flip flop circuit may do >> the trick. > >> George H.
Here's another approach. You need a low level sine wave to apply to the junction to maintain linearity. Perhaps 10mV to 100mV or so. This means you don't need a separate high level oscillator with low harmonic distortion, which may be difficult to achieve at MHz frequencies. It means you can afford a simple resonant circuit on the 74AC74 output to generate the exitation sinewave. One advantage of the 74AC74 is the output square wave has very little even harmonics. This is desirable for the detection process. It also means very low even harmonics will be fed to the junction. A simple LC tank with a Q of 40 appears to work very well. Setting XL to around 500 ohms seems to be a good starting point. Most commercial inductors can achieve a Q of 35 - 40 at these frequencies. You may even want a lower Q to reduce the sensitivity to changes in stray capacity. You could have several tank circuits for different frequencies, such as 100KHz, 1MHz, 10MHz, and so on. You may need a small trim capacitor to set the phase angle to the exact value for each frequency. Here's the LTspice files. You can adjust C2 and watch how it changes the phase of the sine wave. With a Q of 40, it is a fairly sensitive adjustment. Version 4 SHEET 1 1300 680 WIRE 1136 -144 608 -144 WIRE 608 -48 608 -144 WIRE 640 -48 608 -48 WIRE 864 -48 800 -48 WIRE 944 -48 864 -48 WIRE 1248 -48 1104 -48 WIRE 1264 -48 1248 -48 WIRE 640 0 608 0 WIRE 832 0 816 0 WIRE 944 0 912 0 WIRE 1136 0 1136 -144 WIRE 1136 0 1120 0 WIRE 1248 0 1136 0 WIRE 1264 0 1248 0 WIRE 608 96 608 0 WIRE 672 96 608 96 WIRE 912 96 912 0 WIRE 912 96 672 96 WIRE 608 112 608 96 WIRE 864 144 864 -48 WIRE 1248 144 864 144 WIRE 1264 144 1248 144 WIRE 832 176 832 0 WIRE 1248 176 832 176 WIRE 1264 176 1248 176 WIRE 864 192 864 144 WIRE 608 208 608 192 WIRE 864 288 864 256 WIRE 944 288 864 288 WIRE 976 288 944 288 WIRE 1264 288 976 288 WIRE 864 304 864 288 WIRE 976 304 976 288 WIRE 864 384 864 368 WIRE 976 400 976 384 FLAG 608 208 0 FLAG 672 96 Clk FLAG 1248 144 A2Q FLAG 1248 0 A3!Q FLAG 1248 -48 A3Q FLAG 1248 176 A2!Q FLAG 976 400 0 FLAG 864 384 0 FLAG 944 288 C2L1 SYMBOL digital\\dflop 720 -96 R0 WINDOW 3 8 168 Invisible 2 SYMATTR Value TD=2n VHigh=0.95 SYMATTR InstName A2 SYMBOL digital\\dflop 1024 -96 R0 WINDOW 3 8 168 Invisible 2 SYMATTR Value TD=2n VHigh=0.95 SYMATTR InstName A3 SYMBOL voltage 608 96 R0 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName V1 SYMATTR Value SINE(0.5 0.5 4e6) SYMBOL cap 848 192 R0 SYMATTR InstName C1 SYMATTR Value 10pf SYMBOL cap 848 304 R0 WINDOW 3 23 53 Left 2 SYMATTR InstName C2 SYMATTR Value 299pf SYMBOL ind 960 288 R0 SYMATTR InstName L1 SYMATTR Value 82&#4294967295;h SYMATTR SpiceLine Rser=12 TEXT 616 -208 Left 2 !.tran 0 100u 95u TEXT 616 -240 Left 2 ;'I-Q Quadrature Generator With Sine Output TEXT 984 -208 Left 2 !.options plotwinsize=0 TEXT 984 -184 Left 2 !.options nomarch TEXT 1056 272 Left 2 ;Sine wave to buffer amp Here's the PLT file: [Transient Analysis] { Npanes: 4 Active Pane: 2 { traces: 1 {524293,0,"V(c2l1)"} X: ('&#4294967295;',1,0,5e-007,5e-006) Y[0]: (' ',1,-1,0.2,1) Y[1]: ('_',0,1e+308,0,-1e+308) Volts: (' ',0,0,1,-1,0.2,1) Log: 0 0 0 GridStyle: 1 }, { traces: 1 {524292,0,"V(a3q)"} X: ('&#4294967295;',1,0,5e-007,5e-006) Y[0]: ('m',0,0,0.09,0.99) Y[1]: ('_',0,1e+308,0,-1e+308) Volts: ('m',0,0,0,0,0.09,0.99) Log: 0 0 0 GridStyle: 1 }, { traces: 1 {524291,0,"V(a2q)"} X: ('&#4294967295;',1,0,5e-007,5e-006) Y[0]: (' ',1,-0.1,0.1,1) Y[1]: ('_',0,1e+308,0,-1e+308) Volts: (' ',0,0,1,-0.1,0.1,1) Log: 0 0 0 GridStyle: 1 }, { traces: 1 {524290,0,"V(clk)"} X: ('&#4294967295;',1,0,5e-007,5e-006) Y[0]: (' ',1,0,0.1,1) Y[1]: ('_',0,1e+308,0,-1e+308) Volts: (' ',0,0,1,0,0.1,1) Log: 0 0 0 GridStyle: 1 } }
George Herold <gherold@teachspin.com> wrote:

> Quadrature oscialltor.
[...]
> I was wondering if I could make a quadrature oscillator from opamps.
This is probably a bit too elaborate for your requirements. It uses PWM control of the time constants and the amplitude. http://www.poppyrecords.co.uk/other/images/MotorDriveInverter2.gif -- ~ Adrian Tuddenham ~ (Remove the ".invalid"s and add ".co.uk" to reply) www.poppyrecords.co.uk