IntroductionAfter getting inspired by other designs and various discussions on the Synth-DIY mailinglist, I decided to build a new VCO in late 1998, and this is the result. The main difference to my other VCO schematics is that it is integrator based, has triangle and sine wave outputs, and makes use of a 2SC1583 for the exponential current source.
Design goalsThe design goal was to build a medium to high performance VCO with a high sweep range, several waveforms, and being relatively temperature stable. All that with moderately priced components. There are a few options to that which I will discuss below.
On top of my list of objectives was a high sweep range, from fractions of Hz to above the audio range. My measurements show that the circuit does that fairly well. The lowest frequency that I have measured is way below audio. I measured a cycle time of nearly 15 minutes corresponding to a frequency of 0.001Hz. On the top end of the scale 50kHz could be easily reached. Next on the list was several waveforms. The circuit makes the usual sawtooth, pulse, triangle and sine available. Of course these waveforms stay relatively clean over the whole range of frequencies. Stability was next on my list, and here I've made a compromise, the KTY-81 is not a real substitute for a Q81 tempco resistor. Its tempco is positive but nonlinear and larger (7900ppm @ 25deg). The fact that there is a resistor in series with it linearizes it somewhat, but it is not ideal. But this device could be included into the feedback path of A1. However as it is the circuit is rather stable, I never have to tweak the fine tune pot during a session, and from one session to another it only detunes very slightly.
Circuit operation overview
The operation of the circuit is easy to understand. A1 is the control voltage summing opamp. It sums all the control voltages from the pots (not shown in the drawing) and jacks. The combination of the 1.4k and the tempco resistor change the gain with temperature so that the 1V/oct scaling remains constant over a larger temperature range. The circuitry arround A2 converts the input voltage to an output current. This is a little temperature dependant, so it is necessary to compensate this by changing the input voltage accordingly. The output current from the 2SC1583 is fed into an integrator. The integrator converts the current into a rising voltage. The slope of the voltage is directly proportional to the applied current. Now the 7555 comes into play, its job is to monitor when the output reaches 10V. If that takes place it switches on the two fets which discharge the integration capacitor. The discharge stops when the output of the integrator has fallen below 5V. The cycle now repeats. The rest of the circuit is to levelshift the output down, so that there is zero dc (A4). Convert the sawtooth voltage into a pulse (A5, A6, A9), convert the sawtooth into a triangle via fullwave rectification (A7, A8, A10), and finally convert the triangle into a (not too bad) sinewave (A11, A12).
There are a number of tricks in that circuit, first and most obvious is the use of two jFETs in series as the discharge switch. Readers familiar with other VCO circuits may think this is a bad idea, but think what the 1Meg resistor does. This trick removes the leakage current which would otherwise delimit the lowest frequency. When the switch is open a small amount of current flows from the output of A3 into the right FET. It flows nearly 100% into the 1Meg resistor leaving a voltage drop of much less than a volt across it. Now the drain and source of the other FET have nearly equal potentials and only a tiny fraction of the current can flow into the opamps input. This works remarkably effective. The scheme has one drawback: since there are two fets in series, the discharge is slower than with a single fet. But still the discharge time is pretty small, around 1.5 microseconds. On the other hand it improves the sweep range by extending it towards the lower end. The second trick is the fullwave rectifier, which is pretty fast. A7 is wired as an optional inverter and A8 acts as a clamp, switching A7 as an inverting or noninverting amplifier. The trick is that this clamp is operated with a single supply so when the input goes over the zero crossing, A8 has only to swing about 0.3V until the clamp is effective. Even the moderatly slow CA3140 can do that sufficiently fast. Since that opamp is only powered on a single supply it must be a single supply type. To compensate for the finite discharge time of the sawtooth, I added the 220p, 150 ohm, 10k network, which cancels the glitch in the tri and sine waveforms by subtracting a differenciated version of the sawtooth. The values of this network can be dependant of your choice of components, i.e. different FETs and should then be adapted. Just fiddle with the values.
The ICM7555 can be substituted by a bipolar 555, but it draws a current spike of 150mA when transitioning. The 7555 is better. An XR555 or other CMOS timer can also be used. I've used BC245Cs instead of the 2N4391s without much difference. The opamps I've used were TL08Xs, TL07Xs will also do fine. The BC5xx transistors can be substituted by similar small signal transistors like 2N390x. The 2SC1583 is remarkably good compared to the CA3046, I've found that the transistors in it were matched to about 1mV. Also Rbe seems to be much smaller than in the CA3046, so that this circuit doesn't need a high frequency scale trimmer, and still has good octave linearity. However they might be difficult to obtain, you could as well use a MAT02, or LM394, but these will be expensive.