Electronics > Projects, Designs, and Technical Stuff

Programmable sine wave oscillator




--- Quote from: AcHmed99 on April 04, 2011, 01:50:42 pm ---Anyone know of a programmable sine wave oscillator single chip?

I know of AD’s DDS IC’s but they are overkill and expensive.

Ideally I’m looking for I2C control frequency range 120Hz to 250kHz. Even a multiple output freq osc of 120Hz, 100kHz and 250kHz. Distortion requirements aren’t crucial it’s for measuring ESR at the most common frequencies. I can find some multiple outputs PLL type ones but they are all in the MHz range. Counters /divders that I found are all square wave output.

Fairchild made something that looks like it would have been ideal the ML203X series.


They are of course no longer making them. Anything similar out there cheaper then a full blown AD DDS IC? 

--- End quote ---

As the exact frequencies probably aren't that critical, you could make a free-running oscillator, either three different ones for the three frequencies or one with switched capacitors controlled by mosfets. Then feed the outputs into active low-pass filters using an op-amp or two. The design could be quite compact as you could use SOT23 op-amps, or SO8 dual op-amps. If you wanted the frequncy to be a little more accurate, you could program a small pic (or use your existing controller) to output the right frequencies and the feed the low-pass filter as before.

I see a few ways for doing this: a PLL made by an analog sine output VCO and (squarer +) programmable divider feedback (but I doubt there are any VCO ICs working at 120Hz), filtered PWM or DAC.
PWM should be the most economical. With a 500kHz carrier PWM, even with a 48MHz MCU (e.g. a cheap PIC) you have about 1% resolution (48M/500k = 96), there can be multiple outputs and it can deal with receiving customized I2C commands.

Jon Chandler:
EDN had an interesting Design Idea in the September 1st, 2006 edition for a sine generator.  It uses a programmable clock chip and a switched capacitor filter to filter out the harmonics of the square wave.  They use a PC parallel port interface to control the I2C clock chip but this can be eliminated and the clock chip added to your I2C bus.  By my calculations, the 3rd harmonic is 64 dB down from the fundamental so the simple circuit yields reasonable results.

The text of the original article is available at EDN but not the schematic as far as I can tell.  Here's a copy of the original pdf plus some of my calculations.

What about doing it the old analogue way with a VCO?

The LM399 can be used to make a triangle wave VCO tunable from 700Hz to 100kHz. It shouldn't be hard to increase the range by using a faster comparator and a relay to change the capacitor or resistor values for different ranges, see datasheet.

The triangle can be converted to a sine using a wave shaping circuit, see below. I got the circuit from a website I can no longer find, if I do, I'll post a link.


[0] Message Index

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod