Hi there,

I received a AD9910 and AD9959 last week. I am planning to create a sine wave of the form sin(2*pi*f*t + 2*pi*g(t)*t)

where f is an constant frequency of 60MHz, g(t) is a time dependent function, one form I am trying is of linear function like g(t)=4.5*t

It is easy to gain the output if g(t) is zero or any constant but if it is a function like 4.5*t, is AD9910/AD9959 appropriate for that purpose? How to do that.

I try the eval board some times ago to produce a sine wave of 60MHz without phase shifted. I can see a very good waveform. Also, I try the RAM mode to produce a different waveform. But I am thinking to produce a pulse train (12 pulses total), each pulse is of sin(2*pi*f*t) and apart like 2.5ms, do I have to create the waveform data and put them in the RAM to produce that train? But since the frequency is 60MHz, it seems the number of samples is quite a lot and I think it doesn't fit those samples in the RAM. Any other way to create those train? How do I control it will stop after output 12 pulses?

Thanks.

Hi Lwa Lee

For your first inquiry, sin(2*pi*f*t + 2*pi*g(t)*t) is equivalent to sin(2*pi*(f +g(t))*t). Since the input parameter of DDS is frequency, you can just add the constant f and time varying function g(t) prior loading it to the DDS, provided that g(t) is in terms of frequency and f + g(t) should not go beyond half of the clock frequency.

For the second inquiry, I suggest to use the profile pins. I think it is easier to implement your application by using this feature. You can use (for an example) Profile 1 (001b) to contain the 60 MHz value and Profile 0(000b) for a 0MHz value. Make a pulse to P0 which would correspond the pulse train that you wanted to create. So in your case, it would be 12 pulses that are 2.5 ms apart. Just take note that the time resolution for your sinusoidal pulses would depend on your SYNC_CLK frequency. Thus time resolution is 1/SYNC_CLK.

Best Regards

Louijie