I am indebted to Charles Bradshaw AMIMechE for pointing out a silly mistake in the first two diagrams.
They have now been corrected.
This is an edited version of the article which was published in "Electronics World". Since writing this page I have also uploaded a copy of the full article.
The oscillator in this generator is the XR-2206. Its frequency is determined by the capacitor between pins 5 and 6 and the resistor on pin 7. Specifically, it depends, linearly, on the current drawn from pin 7, (which is internally biased to 3V.) This current passes through a base-emitter junction within the 2206, so the frequency is not linearly related to the resistance value. At least not in the simple implementations mentioned in the manufacturer’s data sheet. This is overcome in the control circuit described later.
I have liberally used voltage followers in the design to reduce loading and increase isolation between stages. They don’t need any further mention.
Except for those in the output amplifier, where I tried the LF351, TL071 and 5534, all op-amps are OP-07s (low offset and low offset drift.)
To start with I generated a linear 0V to 10V ramp. This could have been done with a 555 and lots of messing around with offsetting but I decided that if I was going to have to use several ics I may as well follow the basic architecture of the 555 and roll my own.
A constant-current source linearly charges up the C (which should be a good quality tantalum type) at its collector. This linear voltage is applied to two comparators, one with a threshold at 0V the other at 10. Their outputs alternately change the state of an SR latch. One output from this discharges the C to 0V through a transistor and the other one provides blanking for an oscilloscope through another transistor.
The control circuit which follows is the part which demanded most thought. I was determined to be able to set the start and stop frequencies of the sweep independently and without interaction.
The 0 to 10V ramp at the output of IC6 is applied to the junction of two potentiometers which are connected in series between the 0 and 10V rails.
The output from IC7 will always finish at 10V (maximum frequency) but starts at a voltage set by the START pot.
The output of IC8, however, always starts at 0V (minimum frequency) but finishes at the voltage set by the STOP pot.
These two ramps are subtracted and inverted in IC9.
Added to them is the voltage which appears at the 2206’s pin 7, approx 3V. This results in a +3 to –7V ramp (at full span) at one end of the R on pin 7, whilst its other end is fixed at 3. It is the voltage across this R, and therefore the current through it, which is controlled so the actual value of the voltage at pin 7 is irrelevant.
Looking in a bit more detail at the 2206, the manufacturer says that the sine output amplitude from it is 60mV/kohm of resistance on pin 3. Pin 3 being returned, via this R, to mid-rail. However I found it to be much nearer to 100mV/k.
They also say that "the d.c. level at pin 2 is approximately the same as the d.c. bias at pin 3." I have measured around 200mV on a couple of samples. This is simply nulled out with the integrator IC16.
Adjust sine purity by first setting the variable on pins 15 and 16 to its mid point, adjusting the variable on pins 13 and 14 for minimum distortion and finally trimming on pins 15 and 16.
To adjust the pre-set frequency controls put the START and STOP controls at their minimum and maximum frequency positions respectively, and the Set Start/Set Stop switch to its Set Stop position. Note the frequency of the output.
Now put the switch in the Set Start position and adjust the 10 ohm variable at IC6 output to give an output frequency equal to the previously noted Stop frequency divided by 1000.
Then adjust the 470 ohm variable at the 2206’s pin 7 so that the start frequency is 20Hz. Note that this adjustment has the effect of moving the whole (1000:1) frequency range up or down, not affecting the actual ratio.