By strange coincidence I've just been working on a circuit using a 555 timer to do just that. I needed a low cost, stable, low frequency, variable frequency, constant amplitude linear sawtooth so it could be converted easily to a sinusoidal waveform using a simple resistor - diode circuit.Over many years I've always had a soft spot for the extremely versatile 555 chip It may be old in the tooth (like me) but its still capable of surprises.
First of all the power line connections for the 555 ---- pin 4 and 8 to positive, pin 1 to negative or 0V if single supply. (as normal). See data sheet for you op amp pinouts.
The circuit concept:
(Would have posted the circuit diagram but as a noobee I'm not allowed)
--->---555--->--(INVERTER)-->INTEGRATOR--->---
! ! /\/\/\
---<----------------<--------------------<----
If you connect the input of a 'standard (RC, inverting) op amp integrator' to the output pin (3) of the 555 chip you can produce a ' one off ' linear ramp (not particularly useful).
The concept of this circuit is to change the output state of the 555 when the output of the ramp voltage from the integrator reaches fixed levels, a maximum and a minimum.
The 555 has TWO comparator inputs set at 2/3 V (max) and 1/3V (min) (where V is the supply voltage). So by connecting pins 2 and 6 together we can set the upper and lower FIXED voltages for the output ramp voltage (by comparison). Unfortunately the output of the 555 (pin 3) is 180 degrees out of phase with the signal needed. We need to add a simple inverter circuit between the output of the 555 and the input of the integrator in order to make it work as an oscillator.
By symmetry (charging and discharging times are equal if the input voltage voltages above and below the non-inverting input (+) voltage of the integrator have the same magnitude) the output of the 555 is a square wave (1:1).
Hey presto - when the output of the integrator is now connected to pins 2 and 6 on the 555 chip the system oscillates and produces a constant amplitude (1/3V - 2/3V) linear sawtooth wave at the output pin of the integrator. (the capacitor is effectively charged by a constant (bidirectional) current that is proportional to the INPUT VOLTAGE of the integrator)
This ramping output is relatively low impedance - unlike some circuits that try to take the voltage signal from across the capacitor (and alter the frequency). This means that quite small values of C and very high values of R can be used to produce low frequencies (better stability/accuracy).
By using a variable resistor (R) in the integrator we can easily change the output frequency but the upper and lower amplitudes of the wave are FIXED by the two input comparators of the 555.
The frequency (or period) could also be controlled by the value of the output voltage from the inverter (op amp) since charging time is inversely proportional to V(in). (Remember to take into account that is voltage is relative to the non inverting input pin of the integrator).
If you are using a single supply voltage the non-inverting inputs of the op amp should be tied to half the supply voltage (simple potential divider + capacitor), if using a split supply (say 2 x 9V batteries) these inputs should be tied to the mid point (nominally the '0V')
For a single supply voltage (say a 9v battery) the output from the integrator will swing between 3V and 6V with an average DC value of 4.5 volts.
For a split supply (9v plus 9V) the swing will be -6V to +6V with an average DC level of 0V. (useful if you don't want to decouple with big capacitors at very low frequencies)
To convert to a sinewave - there are many excellent circuits out there - remember to factor in the DC level of the output or use a big capacitor to decouple the DC.
Finally - do you have to use a 555?
No - you could build/design your own high/low comparator circuit using a couple of op amps (or any other suitable technology) and set the switching levels to your own requirements. A quad op amp package could well do everything (perhaps I'll look at that one myself to reduce the package count).
Its a very simple circuit - it works - its cheap and I'm certain it can be made to do many more things including linear ramps, vibrato circuits etc, enjoy!