Go Down

Topic: off-chip sine wave generation (Read 1 time) previous topic - next topic

estiers

Hi all-

I'm looking for an IC to generate a sine wave, ideally with an SPI control so that it could interface with the Arduino easily. For example, the Arduino could send a command via SPI to tell the chip to produce a 1000Hz frequency and then the IC would just run on its own until it got another command.

I found this with a bit of Googling around, it looks perfect other than the fact that it was discontinued in 2000 and you can't buy one anymore.

Any suggestions? Thanks much.

estiers

A bit more digging around revealed the AD9833 which may work assuming I can find an easy way to get a SOIC format chip into a breadboard-able format.

kg4wsv

Microchip has some DACs that may work for you, and they're available in DIP and SOIC.

The discontinued PCD3311 and 3312 would work, if you can find any.

-j


jluciani

If you only need frequencies above 1KHz take a look at the Linear Tech
LT7903/4.

For getting this on a breadboard just glue the chip upside down to a piece of vectorboard. Solder #30 wirewrap wire between the IC pins and vector board pins.

(* jcl *)
www: http://www.wiblocks.com
twitter: http://twitter.com/wiblocks

Grumpy_Mike


Quote
assuming I can find an easy way to get a SOIC format chip into a breadboard-able format.


Try this:-

http://uk.farnell.com/roth-elektronik/re933-08/adaptor-smd-tssop-38-0-50mm/dp/1426188

Anachrocomputer

If you want to set the frequency and then let the chip generate the signal, a DAC won't help.  You could make a clock circuit with a counter chip, and then synthesise a sine wave.  One way is to use "Walsh Functions" (there's a circuit in th Art of Electronics, by Horowitz and Hill):

http://en.wikipedia.org/wiki/Walsh_function

Basically, you generate some square waves, and then combine them with different weightings to make a sine wave.  It's a bit like Fourier synthesis, except with square waves.

kg4wsv

Ooops, yeah, a DAC would need constant attention to generate a sine wave.  Sorry, my mistake for not reading the original post closely enough.

-j


Fjornir

Here's the best I was able to do with a DAC:




Fjornir

Note: that's doing direct digital synthesis into the DAC with a function that will synthesize an arbitrary wave.



Above is a pregenerated wave being played from an SD card

estiers

Thanks for the responses. As some of you guessed, I'm trying to avoid a DAC type solution because I want to launch a sine wave into something and use the Arduino's processing power analyzing the returned signal in real time.

I think that with a converter board like the one Grumpy_Mike posted, or one from epboard I should be able to use the 9833 chip for a pretty neat solution. The 9833 takes a command via SPI that sets the frequency and a clock signal and then proceeds to generate sine waves on its own until you tell it to do otherwise. The ATmega48 has an SPI port and there is supposed to be a way to replicate its internal clock on one of the digital I/O pins so it seems like a good match.

I'll let you know if it works!

Go Up