Need DDS module, 2nd round

Mar 02, 2013 144 Replies

rote:

wrote=

s (Nic=

e:

After =

float=

t.

it har=

in(angle=

kHz

ent

are

or whi=

The to=

. It's=

ow tes=

That =

integ=

y
g

I'd probably add the few lines of 2's complement trickery so only one quadrant of sine table is needed or even use a taylor series, on a cpu with mul-acc is takes very few cycles

but the point was really that even if you use float to generate the sine wave I'd still use integers for the phase accumulator

-Lasse

The sine table doesn't need to be that long. If every value of the DAC is used then you'd have a sine table which has the maximum accuracy you can ever achieve. With some math that comes to 2*pi* dac resolution. So a 10 bit dac should need a 1024*2*pi=6434 samples.

The idea behind it is that every DAC value should be used at least once to get the maximum accuracy and no values need to be interpolated. This means you need to know the angle which causes a difference of 1 LSB where a sine wave is the steepest (=in the zero crossing). A simple approximation is: lsb_angle=arcsin(1/dac resolution). The number of samples in the table is 2*pi/lsb_angle.

Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------

wrote=

(Nic=

After =

float=

har=

output=3Dsin(angle=

whi=

to=

It's=

tes=

That =

integ=

Only if you're hurting for flash space. I once did a 16-in/16-out sine table with no folding, 128Kbytes of lookup table. Why not?

or even use a taylor

John Larkin Highland Technology Inc www.highlandtechnology.com jlarkin at highlandtechnology dot com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom timing and laser controllers Photonics and fiberoptic TTL data links VME analog, thermocouple, LVDT, synchro, tachometer Multichannel arbitrary waveform generators

In practice, we'd make the table have 2^n entries, which might be 8192 for a

10-bit DAC. That's only 16K bytes, a small fraction of the flash space on an LPC1754.

We've done DDS with table interpolation, but in FPGA hardware. It helps a little, sometimes.

John Larkin Highland Technology Inc www.highlandtechnology.com jlarkin at highlandtechnology dot com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom timing and laser controllers Photonics and fiberoptic TTL data links VME analog, thermocouple, LVDT, synchro, tachometer Multichannel arbitrary waveform generators

Joerg schrieb:

Hello,

Agilent has a DDS generator with FM:

formatting link

programmable via GPIB, LAN or USB.

Bye

Well, yeah, I am using something like that from a Chinese manufacturer right now. But that is not suitable because two of those would have to go into a smallish analog interface box. When you open up one of those generators the enclosure is quite full.

Currently I am hammering out an analog solution. Again.

Regards, Joerg http://www.analogconsultants.com/

So use the Armstrong method.

?-)

big

output,

easy it

it's

that

there

any

couple

change.

They were sweet chips for their time, but now they are up against DDS chips with 14+ bit dacs for not all that much. They can't compete, except in the hobbyist market which way too small.

?-)

Well, FM and sweep seems to be a problem :-)

Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------

What, erythropoietin? Some kind of growth hormone?

:-)

Regards, Joerg http://www.analogconsultants.com/

I think ADI has a DDS chip that sweeps.

Why is it that ADI is the only outfit that makes DDS chips? I asked one of their guys, and he didn't know.

We mostly do DDS in FPGAs.

John Larkin Highland Technology, Inc jlarkin at highlandtechnology dot com http://www.highlandtechnology.com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom laser drivers and controllers Photonics and fiberoptic TTL data links VME thermocouple, LVDT, synchro acquisition and simulation

The usuakl reason would be some sort of patent protection. But that's just a guess.

But then they probably need 10x the power :-)

Regards, Joerg http://www.analogconsultants.com/

Here is a link to the demo software for the AD8950 that does sweep.

I doubt that he can download it and get it to run, like so much other software. I had it installed on another computer and it works. You can use the parallel port to connect the demo board to the PC and see that it works.

They have sample code for the 8051 processor

i have a DDS function generator that does all of that and it does not have any problems?

I think you'll find if you don't have a latency problem with the serial link to the chip, you should be able to do all the FMing you want..

Jamie

So do I and it dopesn't have modulation problems. But these are too big even if I'd remove the enclosure and power supply.

The problem with the uC on these little boards is not the serial link. Well, at least not if 100Hz sweeps suffice. The problem is that they are too small to calculate the numbers on the fly and usually have to little flash left to store them in a LUT. Plus that would be a major time-consuming hack.

Regards, Joerg http://www.analogconsultants.com/

If its software then it is not a real sweep but a stepped sweep. If you use that to test a resonator or a notch filter you might be in for a nasty surprise.

Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------

??ftp://ftp.analog.com/pub/www/techSupport/designTools/evaluationBoards/downloads/AD9850_51_V2.41_Win2KXP.exe?

That depends on the step size. Do you think modern network analyzers are all analog?

??ftp://ftp.analog.com/pub/www/techSupport/designTools/evaluationBoards/downloads/AD9850_51_V2.41_Win2KXP.exe?

No, but they won't use a dead slow 8051 either :-) Probably some FPGA or ASIC.

Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------

??ftp://ftp.analog.com/pub/www/techSupport/designTools/evaluationBoards/downloads/AD9850_51_V2.41_Win2KXP.exe?

You mean an 8051 doesn't have infinite MIPS? Really? You do know that an FPGA won't be perfect either?

??ftp://ftp.analog.com/pub/www/techSupport/designTools/evaluationBoards/downloads/AD9850_51_V2.41_Win2KXP.exe?

No specification was given for a sweep time, was it?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required