Current Mirror Baxandall Class-D Oscillator
This is a proof of principle circuit for my current mirror variant of the Baxandall oscillator. It's just an LTSpice simulation.
The transistor pair Q3A and Q3B should be an ON-Semiconductor dual pnp - NST45010MW6T1G - and Q6A and Q6B should be the npn equivalent - NST45011MWT6T1G.
These parts offer two transistors matched to 2mV on base-emitter voltage and 10% on current gain. They are cheap and widely available.
It is set up to oscillate at 17kHz (or 100,000 radians per second) and delivers 1V rms with respect ground at Vout+ and Vout- . The load resistor - R11 - sees 1mA of rms current.
The peak current into the centre tap to sustain this peaks at 630uA, and this is multiplied up by a factor of about six from the current being fed into Q6A. Q6A and Q6B form an asymmetrical current mirror, and the level of multiplication is set by the voltage at the emitter of Q6A which stabilises at 47.1 mV.
L1 and L2, and C1 form the tank circuit. The BSS84 MOSFETs M1 and M2 drive the oscillation. L3 and L4 provide the feedback to sustain the oscillation via Q1 and Q2 (which are shown as 2N5089 parts but an NST45011MW6T1 would do the job a little better. This drive arrangement means that we can be sure that both M1 and M2 will have enough gate drive to let the circuit start up from thermal noise when first turned on.
We have to regulate the gain through the asymmmetrical current mirror to make sure that voltage at the centre-tap (Vct) doesn't get too close to the 0V rail to stop the current mirror working correctly.
This circuit monitors this directly - via resistors R6 and R7 - which feed an integrator wrapped around U1A which compares the average voltage at the centre tap with a 5.00V reference voltage (referred to the +12V) generated by U2.
This isn't an ideal scheme for regulating the output amplitude - the only time I used the circuit in a real application I demodulated an output and monitored that - but it saves the extra components you'd need for a demodulator or a precision rectifier.
The 56k resistor - R9 - in series with the integrating capacitor C3 - prevents the phase lag around the amplitude control loop from getting up to 360 degree, and stops it oscillating.
The Sallen and Keys low pass filter around U1B reduces the residual 34kHz ripple from the output of the integrator, and Q4 converts the signal into a current that is fed into R3 to control the gain through the asymmetrical current mirror formed by Q6A and Q6B.
Using Q3 to pick off the voltage at the centre-tap adds a Vbe to the voltage across R2, neatly compensating for the voltage drop across Q3B. You can do better, but this is good enough.
It also allows me to use R12 to compensate for the 34kHz ripple in the current through R3.
C6 is a more brute force way of getting the same result.
When I simulate the circuit, it takes about 200msec to settle down. If I do a fast Fourier transform on Vout, from 400msec to 900msec, the third harmonic content (52kHz) is about 74dB below the fundamental, and the fifth harmonic is closer to 84dB down. There is a bit of second harmonic distortion but it's 96 bB below the fundamental. This wouldn't be wonderful in Wien Bridge oscillator, but it isn't too bad.
Magnetic hysterisis in ferrites limits you to about 80dB in this kind of LC oscillator. I spent some time getting close to this at one point before I got into the John Chan model for inductors (which LTSpice does offer) and decided that it was a waste of time.
What follows is the text content of the .asc file represented in the circuit diagram
Version 4
SHEET 1 1572 988
WIRE -992 -496 -1312 -496
WIRE -784 -496 -992 -496
WIRE -592 -496 -784 -496
WIRE -496 -496 -592 -496
WIRE -352 -496 -496 -496
WIRE -224 -496 -352 -496
WIRE 16 -496 -224 -496
WIRE 240 -496 16 -496
WIRE 448 -496 240 -496
WIRE 640 -496 448 -496
WIRE 784 -496 640 -496
WIRE 1056 -496 784 -496
WIRE 1328 -496 1056 -496
WIRE 1488 -496 1328 -496
WIRE 784 -464 784 -496
WIRE 1328 -464 1328 -496
WIRE 1056 -448 1056 -496
WIRE -352 -352 -352 -496
WIRE 16 -352 16 -496
WIRE 240 -352 240 -496
WIRE -592 -336 -592 -496
WIRE -224 -336 -224 -496
WIRE 640 -320 640 -496
WIRE 1488 -320 1488 -496
WIRE 112 -304 80 -304
WIRE 176 -304 112 -304
WIRE 784 -304 784 -384
WIRE 784 -304 688 -304
WIRE 1328 -304 1328 -384
WIRE 1440 -304 1328 -304
WIRE 448 -256 448 -496
WIRE 112 -224 112 -304
WIRE 240 -224 240 -256
WIRE 240 -224 112 -224
WIRE 544 -208 512 -208
WIRE 240 -192 240 -224
WIRE -496 -160 -496 -496
WIRE 784 -128 784 -304
WIRE 1328 -128 1328 -304
WIRE -1312 -112 -1312 -496
WIRE -720 -96 -896 -96
WIRE 896 -80 848 -80
WIRE 1056 -80 1056 -368
WIRE 1056 -80 976 -80
WIRE 1072 -80 1056 -80
WIRE 1136 -80 1072 -80
WIRE 1264 -80 1216 -80
WIRE -896 -48 -896 -96
WIRE -720 0 -720 -96
WIRE 784 0 784 -32
WIRE 1328 0 1328 -32
WIRE 1328 0 784 0
WIRE -1056 32 -1104 32
WIRE -896 32 -896 16
WIRE -896 32 -1056 32
WIRE -1104 64 -1104 32
WIRE 240 64 240 -112
WIRE 240 64 -96 64
WIRE 448 64 448 -160
WIRE 448 64 240 64
WIRE 640 80 640 -224
WIRE 720 80 640 80
WIRE 800 80 720 80
WIRE 1232 80 864 80
WIRE 1488 80 1488 -224
WIRE 1488 80 1232 80
WIRE 1072 112 1072 -80
WIRE -784 128 -784 -496
WIRE 448 128 448 64
WIRE -720 144 -720 80
WIRE -720 144 -752 144
WIRE -464 144 -720 144
WIRE -352 144 -352 -288
WIRE -352 144 -384 144
WIRE -320 144 -352 144
WIRE 240 144 -240 144
WIRE -896 160 -896 32
WIRE -816 160 -896 160
WIRE -1104 176 -1104 144
WIRE -1104 176 -1264 176
WIRE -496 176 -496 -96
WIRE -496 176 -752 176
WIRE -1104 208 -1104 176
WIRE -96 208 -96 64
WIRE -1264 224 -1264 176
WIRE 640 240 640 80
WIRE 688 240 640 240
WIRE 880 240 768 240
WIRE 1200 240 880 240
WIRE 1488 240 1488 80
WIRE 1488 240 1280 240
WIRE 240 304 240 144
WIRE 544 304 544 -208
WIRE 544 304 240 304
WIRE 608 304 544 304
WIRE 816 304 608 304
WIRE 880 304 880 240
WIRE 880 304 816 304
WIRE -1072 336 -1216 336
WIRE -944 336 -1072 336
WIRE -816 336 -864 336
WIRE 240 336 240 304
WIRE -224 368 -224 -256
WIRE -224 368 -336 368
WIRE 16 384 16 -256
WIRE 176 384 16 384
WIRE -224 400 -224 368
WIRE 688 400 640 400
WIRE 752 400 688 400
WIRE 912 400 832 400
WIRE 1200 400 912 400
WIRE 1392 400 1280 400
WIRE 1488 400 1392 400
WIRE -992 416 -992 -496
WIRE 16 416 16 384
WIRE -1072 432 -1072 336
WIRE -1024 432 -1072 432
WIRE -816 448 -816 336
WIRE -816 448 -960 448
WIRE -752 448 -816 448
WIRE -720 448 -752 448
WIRE -592 448 -592 -256
WIRE -592 448 -640 448
WIRE -432 448 -592 448
WIRE -288 448 -432 448
WIRE 1488 448 1488 400
WIRE -1104 464 -1104 288
WIRE -1024 464 -1104 464
WIRE 144 464 80 464
WIRE 240 464 240 432
WIRE 240 464 144 464
WIRE -1264 528 -1264 288
WIRE -752 528 -752 448
WIRE -752 528 -1264 528
WIRE -496 560 -496 176
WIRE -336 560 -336 368
WIRE 240 560 240 464
WIRE -1216 576 -1216 336
WIRE -224 576 -224 496
WIRE -96 576 -96 288
WIRE -96 576 -224 576
WIRE 16 576 16 512
WIRE 16 576 -96 576
WIRE 640 576 640 400
WIRE 1488 576 1488 528
WIRE 1488 576 640 576
WIRE -1104 592 -1104 464
WIRE 144 608 144 464
WIRE 176 608 144 608
WIRE 1328 608 1328 0
WIRE -224 624 -224 576
WIRE 16 624 16 576
WIRE 608 624 608 304
WIRE 240 672 240 656
WIRE -1312 736 -1312 -32
WIRE -1216 736 -1216 656
WIRE -1216 736 -1312 736
WIRE -1104 736 -1104 656
WIRE -1104 736 -1216 736
WIRE -992 736 -992 480
WIRE -992 736 -1104 736
WIRE -784 736 -784 192
WIRE -784 736 -992 736
WIRE -496 736 -496 640
WIRE -496 736 -784 736
WIRE -336 736 -336 640
WIRE -336 736 -496 736
WIRE -224 736 -224 688
WIRE -224 736 -336 736
WIRE 16 736 16 704
WIRE 16 736 -224 736
WIRE 240 736 16 736
WIRE 448 736 448 208
WIRE 448 736 240 736
WIRE 608 736 608 688
WIRE 608 736 448 736
WIRE 912 736 912 400
WIRE 912 736 608 736
WIRE 1072 736 1072 192
WIRE 1072 736 912 736
WIRE 1328 736 1328 688
WIRE 1328 736 1072 736
WIRE -1312 768 -1312 736
FLAG -1312 768 0
FLAG 816 304 Vct
FLAG 720 80 tank-
FLAG 1232 80 tank+
FLAG 688 400 Vout+
FLAG 1392 400 Vout-
FLAG -1056 32 Integral
FLAG -432 448 control
SYMBOL ind2 672 256 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 4 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value 1m
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.088
SYMBOL ind2 1184 256 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 4 56 VBottom 2
SYMATTR InstName L2
SYMATTR Value 1m
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.022
SYMBOL cap 864 64 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 46 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 22n
SYMBOL voltage -1312 -128 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 132 Left 0
SYMATTR SpiceLine Rser=0.001
SYMATTR InstName V1
SYMATTR Value 12
SYMBOL ind2 848 416 M270
WINDOW 0 44 45 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L5
SYMATTR Value 40µ
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.006 Cpar=100pF
SYMBOL ind2 1296 416 M270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L6
SYMATTR Value 40µ
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.006
SYMBOL pnp 176 -256 M180
WINDOW 3 84 -9 Left 2
SYMATTR Value 2N5087
SYMATTR InstName Q3B
SYMBOL pnp 80 -256 R180
WINDOW 0 110 68 Left 2
WINDOW 3 46 31 Left 2
SYMATTR InstName Q3A
SYMATTR Value 2N5087
SYMBOL res 224 -208 R0
SYMATTR InstName R2
SYMATTR Value 75k
SYMBOL npn 176 336 R0
SYMATTR InstName Q5
SYMATTR Value 2N5089
SYMBOL npn 176 560 R0
SYMATTR InstName Q6B
SYMATTR Value 2N5089
SYMBOL cap -368 -352 R0
SYMATTR InstName C2
SYMATTR Value 4n7
SYMBOL Opamps\\LT1013A -784 96 M0
SYMATTR InstName U1A
SYMBOL cap -912 -48 R0
SYMATTR InstName C3
SYMATTR Value 470n
SYMBOL res -736 -16 R0
SYMATTR InstName R9
SYMATTR Value 56k
SYMBOL Opamps\\LT1013A -992 384 R0
SYMATTR InstName U1B
SYMBOL res -1120 192 R0
SYMATTR InstName R10
SYMATTR Value 51k
SYMBOL res 1472 432 R0
SYMATTR InstName R11
SYMATTR Value 2k
SYMBOL res 0 608 R0
SYMATTR InstName R3
SYMATTR Value 220
SYMBOL res -1120 48 R0
SYMATTR InstName R17
SYMATTR Value 51k
SYMBOL cap -1280 224 R0
SYMATTR InstName C4
SYMATTR Value 1n
SYMBOL ind2 1120 -96 M90
WINDOW 0 4 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 10µ
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.004 Cpar=100pF
SYMBOL ind2 880 -96 M90
WINDOW 0 4 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L4
SYMATTR Value 10µ
SYMATTR Type ind
SYMATTR SpiceLine Rser=0.004 Cpar=100pF
SYMBOL res 1040 -464 R0
SYMATTR InstName R1
SYMATTR Value 5k6
SYMBOL res 1056 96 R0
SYMATTR InstName R14
SYMATTR Value 6k8
SYMBOL res -512 544 R0
SYMATTR InstName R15
SYMATTR Value 6k8
SYMBOL pmos 1440 -224 M180
SYMATTR InstName M1
SYMATTR Value BSS84
SYMBOL pmos 688 -224 R180
SYMATTR InstName M2
SYMATTR Value BSS84
SYMBOL npn 1264 -128 R0
SYMATTR InstName Q1
SYMATTR Value 2N5089
SYMBOL npn 848 -128 M0
SYMATTR InstName Q2
SYMATTR Value 2N5089
SYMBOL res 768 -480 R0
SYMATTR InstName R16
SYMATTR Value 2k2
SYMBOL res 1312 -480 R0
SYMATTR InstName R18
SYMATTR Value 2k2
SYMBOL npn 80 416 M0
WINDOW 3 58 65 Left 2
SYMATTR Value 2N5089
SYMATTR InstName Q6A
SYMBOL res 1312 592 R0
SYMATTR InstName R19
SYMATTR Value 3k3
SYMBOL res -224 128 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 100k
SYMBOL res -368 128 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R7
SYMATTR Value 100k
SYMBOL References\\LT1389-5 -496 -128 R0
SYMATTR InstName U2
SYMBOL res -240 -352 R0
SYMATTR InstName R8
SYMATTR Value 39k
SYMBOL cap -1120 592 R0
SYMATTR InstName C5
SYMATTR Value 1n
SYMBOL res -624 432 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R22
SYMATTR Value 18k
SYMBOL npn 512 -256 M0
SYMATTR InstName Q3
SYMATTR Value 2N5089
SYMBOL res 432 112 R0
SYMATTR InstName R4
SYMATTR Value 33k
SYMBOL pnp -288 496 M180
WINDOW 3 84 -9 Left 2
SYMATTR Value 2N5087
SYMATTR InstName Q4
SYMBOL res -608 -352 R0
SYMATTR InstName R5
SYMATTR Value 100k
SYMBOL polcap -240 624 R0
SYMATTR InstName C6
SYMATTR Value 10µ
SYMATTR SpiceLine V=16 Rser=8
SYMBOL res -1232 560 R0
SYMATTR InstName R13
SYMATTR Value 56k
SYMBOL res -848 320 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R21
SYMATTR Value 18k
SYMBOL res -352 544 R0
SYMATTR InstName R23
SYMATTR Value 470k
SYMBOL diode 624 688 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D2
SYMATTR Value 1N914
SYMBOL res -112 192 R0
SYMATTR InstName R12
SYMATTR Value 75k
SYMBOL FerriteBead 240 704 R0
SYMATTR InstName L8
SYMATTR Value 1000n
SYMATTR SpiceLine Ipk=0.2 Rser=0.562 Rpar=750 Cpar=350f mfg="Würth Elektronik" pn="782422601 WE-CBA 0402"
TEXT -520 800 Left 2 !.tran 0 900m 0m 100n
TEXT -520 832 Left 2 !.ic V(tank-)=11.9992 V(Vct)=11.9995 V(tank+)=11.9999 V(Integral)=10.32 V(control)=10.58
TEXT -520 864 Left 2 !K1 L1 L2 L3 L4 L5 L6 0.99