Author Topic: Looking for DDS generator chip with arbitrary waveform  (Read 2994 times)

0 Members and 1 Guest are viewing this topic.

Offline leonerdTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
Looking for DDS generator chip with arbitrary waveform
« on: April 11, 2022, 01:51:39 pm »
Analog Devices make some nice and quite cheap DDS synthesizer chips, like the AD9833 or AD9834, which easily allow you to output a sine wave at a pre-programmed frequency. But what if you don't want a sine; you wanted some other shape?

I imagined someone would make a chip similar, but uses RAM instead of the hard-coded sine function ROM, which would then allow you to make any custom wave shape at any frequency. But I'm having trouble finding anything at all like that. I'm aware of the AD9102, which has a "pattern RAM" inside. But it can't do waveform generation out of that; it uses that for a programmed pattern of frequency or phase modulations of its (fixed sine) DDS engine. I know fancy solutions to this often involve a high-speed DAC connected to an FPGA, but that involves serious amounts of money and development software/hardware to create such an FPGA.

Does anyone do a pre-made chip for it?
 

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3248
  • Country: us
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #1 on: April 11, 2022, 02:54:51 pm »
« Last Edit: April 11, 2022, 03:16:34 pm by ledtester »
 

Online MarkF

  • Super Contributor
  • ***
  • Posts: 2652
  • Country: us
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #2 on: April 11, 2022, 03:31:46 pm »
There is the Analog Devices AD9102.  It looks like a bear to program though.
 

Offline hgl

  • Regular Contributor
  • *
  • Posts: 103
  • Country: de
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #3 on: April 11, 2022, 10:08:21 pm »
Take a look at the AD9910. It has a ramp generator, internal memory and a fast parallel interface. With this you can control frequency, phase and amplitude.

As an example: triangle generated with the ramp generator.

« Last Edit: April 11, 2022, 10:24:54 pm by hgl »
 

Offline leonerdTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #4 on: April 12, 2022, 10:29:32 am »
What specs do you need? Clock speed, buffer length, etc.

I think "need" is a strong word here ;) I'm really looking for something DIY'ed that's just better than I can make out of an AD9834. I'd say, if i can make 10MHz or so, with 256 8bit samples, I'd consider that good enough. Anything bigger/better would of course be nice ;)

Quote
What about using an RP2040?

https://www.instructables.com/Arbitrary-Wave-Generator-With-the-Raspberry-Pi-Pic/

and:

https://www.instructables.com/Poor-Mans-Waveform-Generator-Based-on-RP2040-Raspb/

Ooh, cute. I hadn't imagined an RP2040 would be anywhere near fast enough, but actually that doesn't look too bad.

It's not really a true fractional DDS though. A fractional DDS has a counter that is far wider than the count used to address the lookup table; it uses those fractional bits to carry over an increased resolution. E.g. the AD9834 uses a 28bit phase accumulator counter, only the top 14 bits of which are used to address the Sine ROM lookup table to convert it to a 10-bit DAC code. The more bits in your phase accumulator, the more precisely you can control the frequency.

The way this is implemented on the RP2040 looks like an interesting use of the available DMA and PIO hardware, but it doesn't look possible to add fractional support into that.
 

Offline leonerdTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #5 on: April 12, 2022, 10:33:00 am »
There is the Analog Devices AD9102.  It looks like a bear to program though.

Yes, I mentioned the AD9102 already. From the headline bullet points you'd think it lets you use the internal RAM as a DDS wavetable. But no, it can't. This chip can generate plain sine waves from its internal DDS engine, using the RAM to store modulation parameters; letting you do things like FSK and PSK on top of that generated sine wave. But the main carrier is still a fixed sine wave from fixed ROM.

Take a look at the AD9910. It has a ramp generator, internal memory and a fast parallel interface. With this you can control frequency, phase and amplitude.

As an example: triangle generated with the ramp generator.

As with the AD9102, this chip also uses that internal RAM to store control parameters for the fixed-sine DDS engine; this time allowing control of amplitude as well as frequency and phase, so letting you do ASK as well as FSK or PSK. But still, the actual output is just a sine wave. Additionally this chip does let you do some fancy control of sawtooth-type waves, with custom control of rising and falling edge times and top dwell time. It's parametric but it's not a true lookup-table style AWG.
 

Offline DC1MC

  • Super Contributor
  • ***
  • Posts: 1886
  • Country: de
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #6 on: April 12, 2022, 10:38:04 am »
There is the Analog Devices AD9102.  It looks like a bear to program though.

Huh ?!? you can program them with an Arduino classic, the development kit is specially designed for it ?!?  :-//
 

Offline leonerdTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #7 on: April 12, 2022, 10:45:26 am »
There is the Analog Devices AD9102.  It looks like a bear to program though.

Huh ?!? you can program them with an Arduino classic, the development kit is specially designed for it ?!?  :-//

Indeed; it's just SPI so really you can talk to it from any sort of microcontroller, PC-attached SPI master, or anything similar.

I suspect what MarkF may have meant is more that it's quite a complex chip with lots of inter-relating features and controls on it, so the work of understanding and designing something to control it isn't easy.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6757
  • Country: ro
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #8 on: April 12, 2022, 10:52:09 am »
But what if you don't want a sine; you wanted some other shape?

Seems like you are looking for an AWG (Arbitrary Waveform Generator).
A DDS works differently:  https://en.wikipedia.org/wiki/Direct_digital_synthesis

Tektronix - Choosing Between Direct Digital Synthesis (DDS) and Variable Clock Architecture ("True Arb")
https://www.eetree.cn/wiki/_media/tek_awg.pdf

I don't know any AWG single chip, and I don't think there are any single chip AWG - would be too impractical, or too limited to a small and frozen design - so an AWG is usually found as an entire instrument, made out of many specialized chips: Clock + MCU + RAM + FPGA + DAC etc.
« Last Edit: April 12, 2022, 11:05:47 am by RoGeorge »
 

Offline Marco

  • Super Contributor
  • ***
  • Posts: 6966
  • Country: nl
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #9 on: April 12, 2022, 04:05:14 pm »
If you can change the phase of a sinewave per sample can't you just use that for AWG?
 

Online Terry Bites

  • Super Contributor
  • ***
  • Posts: 2515
  • Country: gb
  • Recovering Electrical Engineer
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #10 on: April 12, 2022, 04:22:21 pm »
OLd school. Some SRAM and a DAC. You can remove processor overhead with a simple address counter. Keep your presets in EEPROM, load them to RAM keep on clocking....
I'm not sure if there is a big enough markets to support an ic that performs arb.
 

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3248
  • Country: us
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #11 on: April 12, 2022, 06:27:01 pm »

Ooh, cute. I hadn't imagined an RP2040 would be anywhere near fast enough, but actually that doesn't look too bad.

It's not really a true fractional DDS though.
...  The more bits in your phase accumulator, the more precisely you can control the frequency.

The way this is implemented on the RP2040 looks like an interesting use of the available DMA and PIO hardware, but it doesn't look possible to add fractional support into that.

That's true, but the rather large amount of memory you can use for the waveform data effectively gives you back some bits.

 

Offline hgl

  • Regular Contributor
  • *
  • Posts: 103
  • Country: de
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #12 on: April 12, 2022, 07:55:49 pm »
You can set phase and frequency to zero and manipulate only the amplitude as I did with the internal ramp generator. This is also possible over the parallel interface, with up to 100 Mhz clock.  The 3 parameters are independent of each other. The internal ram is a bit too small. 

At ebay you can find boards with the chip
https://www.ebay.de/itm/142445980703?hash=item212a712c1f:g:XBcAAOSw3QpZaZFj

 

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3248
  • Country: us
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #13 on: April 13, 2022, 04:36:54 am »
At ebay you can find boards with the [AD9910] chip ...

Depending on how exacting your requirements are you have to be careful about those aliexpress/ebay boards. These guys spun their own design after testing one bought on ebay:

https://create.arduino.cc/projecthub/afch/rf-signal-generator-dds-arduino-shield-ad9910-600mhz-1e086f

and:

https://gra-afch.com/catalog/rf-units/dds-ad9910-arduino-shield/

I know fancy solutions to this often involve a high-speed DAC connected to an FPGA, but that involves serious amounts of money and development software/hardware to create such an FPGA.

Here's a somewhat recent DIY project that someone could start from:

https://github.com/ts-manuel/DDS-Function-Generator
« Last Edit: April 13, 2022, 04:41:16 am by ledtester »
 
The following users thanked this post: Someone

Offline Circlotron

  • Super Contributor
  • ***
  • Posts: 3334
  • Country: au
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #14 on: April 13, 2022, 09:45:48 am »
A fractional DDS has a counter that is far wider than the count used to address the lookup table; it uses those fractional bits to carry over an increased resolution. E.g. the AD9834 uses a 28bit phase accumulator counter, only the top 14 bits of which are used to address the Sine ROM lookup table to convert it to a 10-bit DAC code. The more bits in your phase accumulator, the more precisely you can control the frequency.
That's rather interesting. Can someone point me to somewhere that explains this technique of increasing the frequency resolution in a bit more detail?
 

Online Someone

  • Super Contributor
  • ***
  • Posts: 4981
  • Country: au
    • send complaints here
Re: Looking for DDS generator chip with arbitrary waveform
« Reply #15 on: April 13, 2022, 10:01:15 am »
A fractional DDS has a counter that is far wider than the count used to address the lookup table; it uses those fractional bits to carry over an increased resolution. E.g. the AD9834 uses a 28bit phase accumulator counter, only the top 14 bits of which are used to address the Sine ROM lookup table to convert it to a 10-bit DAC code. The more bits in your phase accumulator, the more precisely you can control the frequency.
That's rather interesting. Can someone point me to somewhere that explains this technique of increasing the frequency resolution in a bit more detail?
Someone can:
https://en.wikipedia.org/wiki/Numerically-controlled_oscillator
 
The following users thanked this post: Circlotron


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf