MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

Direct Digital Synthesis with the AD9102
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author Direct Digital Synthesis with the AD9102
Grumble
So I got some samples of the AD9102 DDS chip from Analog Devices.



The great thing about this chip is that is can put out a sine-wave, pos. saw, neg. saw, triangle wave, noise or a constant voltage, but the best feature is that this chip contains 4096 x 12bit RAM grin
So an arbitrary waveform generator is very possible with this!
The RAM can be used to store the waveform or may be used to modulate the frequency of the DDS.
The clock signal of both micro processors are put out to a post pin and used to clock the AD9102.
I made two experiment boards, one with an arduino nano and one with a small board I made with an ATxMega32E5. They both are capable to put out a sine wave to start with but I would like to use the internal RAM of the AD9102 but I'm afraid my programming skills are insufficient to whip up a decent C++ program. I think I will get it done but it would take a lot of efford for me and maybe there is somebody out there who is willing to help me out?

jorg
Wow that's a cool chip! Saw, triangle, sine, and noise are all available even without programming the wavetable RAM. You can use the RAM as a direct waveform, or as AM or FM modulator waveform. You can make it output a series of bursts.

The hard part will be exposing all that stuff to the user in a convenient way.

One open question for me is the clock rate. It's intended for RF; would there be any issues with clocking it 1000 times slower than normal?
Grumble
This chip is intended for 180MHz, but the one with the NANO is clocked with 16MHz and the other one with 32MHz.
guest
thats a pretty cool chip, although a bit expensive. the lack of reprogrammable ram is a bit of a bummer on their lower cost versions. i like that this one is externally triggerable as well.

as for writing code, if you can send it commands to configure it for a sinewave, then you can send the commands to stuff the memory, as its the same memory space. it is a bit tedious, though, as you have to give the address and value for each value (there is no auto-increment).
Synthiq
guest wrote:
as for writing code, if you can send it commands to configure it for a sinewave, then you can send the commands to stuff the memory, as its the same memory space. it is a bit tedious, though, as you have to give the address and value for each value (there is no auto-increment).

It's not quite that bad. It is possible to auto-increment, but only if chip select is held low between words so I would use a regular output pin to control chip select as I don't know how (or if) Arduino automatically sets this pin high and low between bytes.

My guess is that writing the waveform data to the AD9102 is a lot less work than generating the waveform itself.
Grumble
For both the boards I set and reset the chip select line, so creating a subroutine that copies a part of memory of the processor to the dds is not that hard.
Grumble
I downloaded the software suite for dds from Analog Devices HERE and after install there are files in a map called RAM Vectors, regval_files and seq_files, so I guess they will prove to be very helpfull.
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 1
Powered by phpBB © phpBB Group