Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Which low-frequency DDS should I use?

Status
Not open for further replies.

Eight

Member level 2
Joined
Mar 8, 2013
Messages
53
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
2,084
Hello,

I am relatively new to the idea of digital signal synthesis, and I need some help designing a certain circuit. In particular I'm asking for advice on which component to use for my project. The goal is to create a programmable circuit that will be able to output custom waveforms in the low frequency range from 1kHz to 10kHz (this is the frequency range of interest).

I've already managed to design a sine wave generator using a Wien bridge oscillator, but as it turned out, I'll also be needing other waveforms to generate a custom exciation signal. So I thought it would probably be best to use a programmable signal generator and synthesize the desired signal digitally. Someone on IRC suggested I use a chip called a DDS (direct digital synth).

I did some searching and found a number of them from Analog. Most of them are in the MHz range (can I use these for kHz range too?), and some are apparently limited to basic waveforms like sine, square, triangular and maybe saw. While these are the basic waveforms I'll be needing, I'd also like to have an option for custom/arbitrary waveforms like the middle one on the second image.

Which DDS IC do you recommend for this job? Preferably one with an I2C or a SPI serial interface (for interfacing with a microcontroller), and with dual supply voltage (I'm using +/- 9VDC). It only has to be strong enough to drive an external amplifier. Should I actually use a DDS IC here or would it be better to simply use a DAC and drive it with a microcontroller? I hear the audio DAC's normally operate in the frequency range of 20Hz to 20kHz.


Any ideas?

Thanks in advance!



Basic waveforms:
waveforms.png

Middle one is a custom waveform:
waveforms_2.jpg
 

You have mentioned the frequency range but what step size and accuracy are you looking for?
Given what you have said, especially the part about arbitrary waveforms, I would be looking at using a DAC, especially one that is built in to a microcontroller. These days you can get an MCU for a few dollars (which is probably about the same cost as the DDS).
That way you can simply set up a table with the appropriate waveform and the output frequency will determine how fast you step through it.
Susan
 

It depends on what is important to you.
DDS is very good for generating very stable and accurate frequency generation in fine increments. But that by itself will not provide you with all the different waveforms you may need.

A Wein Bridge will provide excellent low distortion sine waves, but the frequency output will not be so accurate, and sine waves are all you can get.

There are some low cost analog Function generator chips available that will do all of this pretty much in one chip, and +/- 9v would be about right for that too.

Take a look at an Intersil ICL8038:

Function gen.png
 

If you want a DDS chip then consider the very cheap ready built AD9850 modules available on eBay.
 

Thanks for the suggestions!

susan: Sorry, I forgot to mention that. Obviously the smaller step size the better, but I wouldn't exaggerate here. Let's say a 12-bit would do just fine. For accuracy I'd go for mid-range class since I won't be using this in any audio application or other sensitive devices. You said you'd go for a DAC, can you recommend one for me? I'm not sure about using a MCU since I've only programmed some Atmel MCU's, but it may be a possibility. Unsure, if Atmel has any interesting MCU's with a DAC. I'll have to inspect it.

Warspeed: Yeah, I've read some datasheets and I see most DDS chips can produce pre-programmed waveforms. Although I thing I read it is also possible to create arbitrary waveforms by directly manipulating some frequency and amplitude registers, bypassing the internal lookup table. I've looked at ICL8030 before, and at a quick glance it does not seem to be programmable. I would prefer something where I can control frequency, amplitude and maybe the waveform by an external microcontroller via a serial interface.

pjmelect: Thanks. The AD9850 was one of the IC's I've been considering. I found a large DDS collection from Analog:
https://www.analog.com/en/products/clock-and-timing/direct-digital-synthesis.html


Cheers!
 

I would prefer something where I can control frequency, amplitude and maybe the waveform by an external microcontroller via a serial interface.
One possibility is to generate the required base (square wave) reference frequency from a DDS.

Then use that in a phase locked loop that locks one the analog function generator chips to generate very clean sine, triangle, ramps, and square waves of adjustable duty cycle.

You get the best of both worlds, excellent frequency resolution and stability, and the ability to make very clean arbitrary waveforms of continuously adjustable duty cycle.

Usually these function generator chips require potentiometers to adjust amplitude and duty cycle, but the pots could be replaced with d/a converters, digital potentiometers, or R/2R resistor networks.

You are not going to find a DDS that gives variable output amplitude, and highly unlikely to find one with variable output duty cycle square, and triangle waves.

So how about marrying up a DDS front end, to an analog function generator chip, and it could be given complete programmability from a microcontroller.?
 
Last edited:

I'm not aware of a simple single chip DDS solution that includes arbitrary waveforms (RAM lookup table). For the intended low frequency range, a DDS generator with RAM lookup table can be well implemented in a single chip processor. ARM or dsPIC with built-in DAC could be used, otherwise an external DAC.

As your waveforms also include square waves etc. with steep edges, you should specify the generator bandwidth along with the frequency and design the DAC reconstruction filter respectively. Under circumstances, the output filter must be switched between fast mode with staircase-like output and smooth output for sine etc. Industry standard arbitrary function generators have similar features, review the datasheets.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top