Pages: [1]   Go Down
Author Topic: off-chip sine wave generation  (Read 1190 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2526
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Boston, MA
Offline Offline
Edison Member
*
Karma: 0
Posts: 1024
wiblocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 *)
Logged


Manchester (England England)
Online Online
Brattain Member
*****
Karma: 626
Posts: 34134
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


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
Logged

Bristol, UK
Offline Offline
Edison Member
*
Karma: 1
Posts: 1197
Exhibitor at UK Maker Faire
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2526
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 163
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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



Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 163
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Pages: [1]   Go Up
Jump to: