New VCO
Ian Fritz
ijfritz at earthlink.net
Mon May 22 03:39:20 CEST 2000
Hello all --
This is the wrapup report on the development of the differential-integrator
triangle VCO that I've been working on for the last few months.
For those who don't remember (/ didn't see) the previous descriptions here's
a quick summary of the circuit. The core is a differential integrator whose
current directions are periodically reversed by a pair of transistors. As a
threshold voltage is crossed, the two halves of an LM319 comparitor switch
in opposite directions, and the two outputs are fed back to switch the
transistors. The circuit is thus highly symmetric in operation, yielding a
very nice triangle with imperceptable distortion over the audio range.
The comparitor outputs (and, therefore, the switching thresholds) are
clamped by a zener-diode / switching-diode bridge circuit. Using an 8.2V
zener produces a nearly temperature independent threshold, since this value
of zener has the same, but opposite, temperature coefficient as two Si
switching diodes. (See Horowitz/Hill sec. 6.14.)
For the expo converter I decided to try an NPN pair from a CA3083 array. A
standard matching measurement showed less than 0.2mV offset and h_fe's are
around 250.
One of the biggest problems in getting a tri osc to work well is the
inevitable dc offset voltage that develops around the loop. This offset
affects tracking and symmetry. In my circuit I was able to get the offset at
the output down to about +/- 2mV over the audio range. Beyond 30kHz or so it
suddenly increases to about 30mV, causing a bit of overtracking in the 20kHz
to 40kHz octave. Getting this offset value down was probably the trickiest
part of the circuit development. In the end, it required running the LM319
at a reduced power supply voltage (+/- 6.9V works OK), carefully choosing
the LM319's output and pullup resistors and carefully matching the diodes in
the clamp.
The final result on tracking is an essentially perfect curve measured from
100Hz to 20kHz. Per octave, the control voltage changes are all1.000 +/-
0.001V, or 0.1% tracking accuracy over the entire range.
Temperature compensation was achieved by a fairly long and tedious series of
measurements and tweaks. First the bare oscillator (no expo converter) was
measured at a couple of frequencies and found to have about a 400ppm/K
drift. This was corrected by making the voltage divider setting the
trip-point temperature dependent. This was done simply by using a
carbon-film resistor in one leg and a metal-film resistor in the other.
Next, the expo converter was hooked up, but with both transistor bases
grounded. This added a bit of drift whose source I couldn't track down. I
suspected transistor mismatch, but swapping the two transistors didn't
change the drift at all. I ended up compensating by using a carbon-film unit
for the current-defining resistor, which worked just right (luckily).
(Hmm... The two drifts just described are about equal and opposite. Maybe I
didn't need to fix either!)
Finally the input summing amp was added, using a 2k 3500ppm/K tempco
resistor for feedback. The temperature drift was then measured two octaves
below and above the quiescent frequency (dVbe=0, 1kHz). I found that the
tempco resistor was overcompensating slightly, which was fixed by adding a
small (40R) series resistance.
The final result is temperature drift that is really too small to measure.
It's certainly less than 100ppm/K from 250Hz to 4kHz and probably less than
50ppm/K. Again, this was achieved by simple passive compensation.
My schedule is pretty busy the next few weeks, but I'll try to get a full
schematic up on my website soon.
Ian
More information about the Synth-diy
mailing list