We needed a handheld, battery-powered signal generator with a sine-wave output that was continuously adjustable from 100 Hz to 10 kHz. For such a wide frequency range, we selected a function-generator type of oscillator, which requires a triangle-to-sine converter. Figure 1 shows a typical circuit used to accomplish this task. Unfortunately, this circuit needs very stable power supplies and doesn't work well at low voltages (i.e., less than ±12 V).
Our modification to the function-generator circuit allows low-voltage battery operation (Fig. 2). Current mirrors—Q1-R3, Q2-R4, Q3-R5, and Q4-R6—replace the resistors. They get their references, through Q5 and Q6, from the constant-current source that comprises Q7, R11, and R12. The output of the diode array (junction of D5, D6) is about 260 µA rms, which U2 converts to a voltage. RVOUT is computed to give the desired output voltage. The rms VOUT = (2.6 × 105)RVOUT.
Apply a triangle wave of about ±4 V (8 V p-p) to the input at R1 and observe the output via a scope, or employ a distortion analyzer. Then, adjust R12 for minimum distortion to compensate for errors in the input amplitude, R1, and/or R2. This circuit works well with power supplies from ±6 V to greater than ±15 V.
Use a diode array, such as a CA3019, and transistor arrays for best temperature stability and minimum distortion. Any adjustable current source that is capable of supplying about 2 mA, such as an LM334, may substitute for Q7. Such a source also will probably have better temperature characteristics. Figure 3 illustrates the complete sine-wave oscillator circuit.