Author Topic: swept sine generator AD9851  (Read 11549 times)

0 Members and 1 Guest are viewing this topic.

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
swept sine generator AD9851
« on: February 11, 2015, 04:18:45 pm »
Has anyone had any success designing a sine swept signal source with the AD9851?

I have manged to set up a sine sweep with the arduino and AD9851 but its seems to slow and the noise floor is very bad.
As the signal is swept the noise floor rises abruptly.

I needed a cheap swept sine source so that I can characterise filters up to 30MHZ


I'm suspecting the sweep function is not fast enough to allow for characterisation of filters due to slow nature of the hardware and the program being sequential? e.g the 48bit words can not be loaded into the AD9851 fast enough for say a 10us second sweep speed?
R_G_B
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Re: swept sine generator AD9851
« Reply #1 on: February 11, 2015, 04:40:10 pm »
The AD9851 takes 18 clock cycles to change frequency, so I don't think that's every going to limit your system.

The noise floor rising is while your sweeping is going to be largely due to the discontinuous nature of the sweep (something that might be a showstopper using the DDS).  If you really need low noise, then building an analog VCO maybe the simplest solution.


https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #2 on: February 11, 2015, 04:53:00 pm »
yes you are correct I just noticed in the time domain the abrupt changes when the signal frequency is changed this explains the noise like FFT bin splitting in the frequency domain. Thank you for your input.
R_G_B
 

Offline dom0

  • Super Contributor
  • ***
  • Posts: 1483
  • Country: 00
Re: swept sine generator AD9851
« Reply #3 on: February 11, 2015, 07:43:11 pm »
You'll need a DDS supporting continuous sweeps (i.e. no phase jumping, the '9851 probably clears the accumulator on a register load or something like that) like the AD5930.

If there is no hardware DDS meeting your requirements I'd consider a VCO (depending on your frequency ratios you might even want a RF VCO, a mixer and a LO to downconvert the VCO frequency) or building a DDS with a small FPGA and a parallel DAC.
« Last Edit: February 11, 2015, 07:45:20 pm by dom0 »
,
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #4 on: February 11, 2015, 10:41:55 pm »
I was doing frequency sweeping with the Analogue discovery but it is limited to 10MHZ this uses an FPGA which allows for close to continues sweep using luck up tables. The analogue VCO sweep won't be easy to obtain a flat frequency response over the entire sweep any suggestions? 

Thanks R G B
R_G_B
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Re: swept sine generator AD9851
« Reply #5 on: February 11, 2015, 11:22:19 pm »
Map the output of the VCO and compensate for this in software.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: swept sine generator AD9851
« Reply #6 on: February 12, 2015, 12:13:09 am »
I have done so with a PIC16F684. Very clean sweep over the entire range.
================================
https://dannyelectronics.wordpress.com/
 

Offline Guni

  • Regular Contributor
  • *
  • Posts: 60
Re: swept sine generator AD9851
« Reply #7 on: February 12, 2015, 12:37:31 am »
Yes, you can realize sine sweep on AD9850/1. Simplest option is Parralle interface described in Application note - sweep is implemented. You can buy ready Parallel module.
"Other operational modes (Frequency Sweeping, Sleep, Serial Input) are available. Frequency sweeping allows the user to enter a start and stop frequency and to specify the frequency step size. Sweeping begins at the start frequency, proceeds to the stop frequency in a linear manner, reverses direction, and sweeps back to the start frequency repeatedly."
Another option is Arduino + AD9850/1 ebay module. There is many project on PIC or AVR and AD9850/1 ebay module. Most complicated is to design your generator from scratch with AD chip because you need elliptic filter.
BTW
It's funny because AD9850 at official distributor cost ~25-50$ but chines module just 5-10$  :-DD
 

Offline mrflibble

  • Super Contributor
  • ***
  • Posts: 2051
  • Country: nl
Re: swept sine generator AD9851
« Reply #8 on: February 12, 2015, 01:12:58 am »
You'll need a DDS supporting continuous sweeps (i.e. no phase jumping, the '9851 probably clears the accumulator on a register load or something like that) like the AD5930.
Yup. For example the AD9913. Another thing that's nice about it is the programmable profiles. Select another profile and it's active the next clock cycle.
 

Offline nfmax

  • Super Contributor
  • ***
  • Posts: 1560
  • Country: gb
Re: swept sine generator AD9851
« Reply #9 on: February 12, 2015, 02:38:02 pm »
I was doing frequency sweeping with the Analogue discovery but it is limited to 10MHZ this uses an FPGA which allows for close to continues sweep using luck up tables. 

Luck up tables - you'll probably get the right value out. I like the concept!
 

Offline atferrari

  • Frequent Contributor
  • **
  • Posts: 314
  • Country: ar
Re: swept sine generator AD9851
« Reply #10 on: February 12, 2015, 02:45:20 pm »
One of these, the ID ending with "33" or "34" IIRC, was designed exactly for sweeping. Could you change the IC and use it?

Programming it looks as simple task.

My Siglent signal generator seems to be designed around that IC.

Edit:

It is the AD5932, more exactly. Sorry (but I was close..- :P)

/Edit
« Last Edit: February 12, 2015, 07:02:25 pm by atferrari »
Agustín Tomás
In theory, there is no difference between theory and practice. In practice, however, there is.
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #11 on: February 12, 2015, 04:31:05 pm »
Luck up == look up  thanks for the correction.
R_G_B
 

Offline Bud

  • Super Contributor
  • ***
  • Posts: 6911
  • Country: ca
Re: swept sine generator AD9851
« Reply #12 on: February 12, 2015, 04:58:54 pm »
As the signal is swept the noise floor rises abruptly.
Are you using a proper anti-aliasing filter and a proper clock frequency ?
Facebook-free life and Rigol-free shack.
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #13 on: February 12, 2015, 07:23:08 pm »
I got a head of myself and did a decade sweep e.g increments of 1 up to 10 then 10 upto 100 ....100  upto 1000. Then realised what i was doing was not correct the increments should be very small to avoid large phase jumps and large discontinuous frequency changes.

Its A9851 board interfaced with an arduino DUE.

the data needs to be loaded in parallel if i'm going to be able to do fast sweeps. I have three a choices to hand  use the parallel printer port, the DE0 nano FPGA or a UART via USB. 
R_G_B
 

Offline Pjotr

  • Frequent Contributor
  • **
  • Posts: 461
  • Country: nl
Re: swept sine generator AD9851
« Reply #14 on: February 12, 2015, 08:49:45 pm »
Indeed, to minimise this noise you have to update the phase increment as fast as possible to keep the steps as small as possible. Ideally update at fs as the maximum theoretically possible.
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #15 on: February 15, 2015, 10:58:38 am »
Just realized that I can use the analogue discovery pattern generator to drive DDS by loading the 8 bit data in parallel.
8-bits at a time. Should be able to get a much faster sine sweep time doing it this way instead of loading the data in series.

R_G_B
R_G_B
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #16 on: February 15, 2015, 11:02:32 am »
not enough data words!
R_G_B
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: swept sine generator AD9851
« Reply #17 on: February 15, 2015, 01:27:48 pm »
Quote
Should be able to get a much faster sine sweep time doing it this way instead of loading the data in series.

Depends on how fast is your fast. 40bits @ on 10Mhz spi is just 4us per frequency point.
================================
https://dannyelectronics.wordpress.com/
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #18 on: February 15, 2015, 01:43:49 pm »
looking at a total sweep speed of 10us. to get decent update on a digital oscilloscope in FFT mode. I see people have done this differently using a log detector and an ADC to capture the sample points. I just want to use a fast enough sweep so that it can be displayed on a digital scope in FFT mode. 
R_G_B
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: swept sine generator AD9851
« Reply #19 on: February 15, 2015, 02:20:36 pm »
Quote
looking at a total sweep speed of 10us.

You probably want to come back in 100 - 150 years for something like that to be available.
================================
https://dannyelectronics.wordpress.com/
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #20 on: February 15, 2015, 04:27:04 pm »
it is possible see the the attachment: the analogue discovery can do sweep down to 1us. The bandwidth is limited to10Mhz.

so its not possible to do a wide fast sweep up to 30Mhz with the ad9851?
R_G_B
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: swept sine generator AD9851
« Reply #21 on: February 15, 2015, 07:16:12 pm »
Quote
so its not possible to do a wide fast sweep up to 30Mhz with the ad9851?

Definitely possible, depending on how fast your "fast" is.
================================
https://dannyelectronics.wordpress.com/
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #22 on: February 15, 2015, 07:55:03 pm »
AS I have explained. I require a frequency sweep from 1hz to 30 Mhz in a sweep time of 10us. 
R_G_B
 

Offline sync

  • Frequent Contributor
  • **
  • Posts: 799
  • Country: de
Re: swept sine generator AD9851
« Reply #23 on: February 15, 2015, 08:24:43 pm »
AS I have explained. I require a frequency sweep from 1hz to 30 Mhz in a sweep time of 10us.
I don't think this will be useful in any way. 1Hz has a period of 1s. Which is 100000 times slower than your sweep time.
 
 

Offline R_G_B_Topic starter

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: gb
Re: swept sine generator AD9851
« Reply #24 on: February 16, 2015, 09:19:48 am »
I should be saying from 30Mhz to 1Hz. in other words I count down in frequency instead of up.
A filter has its specification independently of how the frequency is fed into it. This is the logical approach I should have gone with.


yes you are right the I need to take the waveform period into account.


AD9851 does not support Chirp signals:

http://members.ziggo.nl/mans-veldman/pa2hgj/doc/hamdoc/pdf/dds.pdf

Thanks for your inputs.
 
« Last Edit: February 16, 2015, 09:47:05 am by R_G_B_ »
R_G_B
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf