cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
3,244 Views
Registered: ‎03-03-2011

DDS for CPFSK in System Generator

Jump to solution

Hi,

 

I'm hoping to use the DDS 5.0 to produce a continuous phase 2FSK signal. My Fclk = 125MHz and I want to generate a 5MHz tone and a 10MHz tone. I was hoping to do this using the 'streaming' option muxing between two values of PINC to modify the output frequency.

 

Initially i'm just trying to get a 5MHz tone output when the DDS is set to streaming in the output frequency tab. Using the formula given in the datasheet:

 

delta_phi = (Fout x 2^phase_width) / Fclk

 

(5MHz x 2^17) / 125MHz = 5242.88

 

However, the input to the DDS phase_tdata_pinc wants a UFIX_17_17 value so I can only give it a value between 0 and +1. So I set a constant UFIX_17_0 of 5243, cast it to UFIX_17_17 and fed that to the phase_tdata_pinc input but no joy. My scope shows nothing like a sine wave.

 

Any idea what i'm doing wrong?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
3,711 Views
Registered: ‎03-03-2011

Looks like I may have sorted this problem.

 

I came across this whilst having a dig around:

http://www.xilinx.com/support/answers/18288.htm

 

Which states: The output frequency of the DDS is controlled by its phase increment. A phase increment of one tenth (1/10) for the DDS implies that in ten time samples, one sinusoid is completed.

 

My system clock is 125MHz. If I divide the frequency required (let's say 5MHz) by the clock speed we get 5/125 = 0.04. If I apply 0.04 in to the phase_tdata_pinc input I get my 5MHz tone out. The other tone I was looking for is 10MHz so 10/125 = 0.08. Again assigning that value to phase_tdata_pinc I get my 10MHz tone. I'm not really sure why this works as it disagrees with the DDS datasheet formula which I detailed in the previous post.

 

Now if I MUX these two constant values of 0.04 and 0.08 and have the SEL input of the MUX as my binary stream that I want to CPFSK modulate I get the desired continuous phase output from the DDS.

View solution in original post

0 Kudos
1 Reply
Highlighted
Explorer
Explorer
3,712 Views
Registered: ‎03-03-2011

Looks like I may have sorted this problem.

 

I came across this whilst having a dig around:

http://www.xilinx.com/support/answers/18288.htm

 

Which states: The output frequency of the DDS is controlled by its phase increment. A phase increment of one tenth (1/10) for the DDS implies that in ten time samples, one sinusoid is completed.

 

My system clock is 125MHz. If I divide the frequency required (let's say 5MHz) by the clock speed we get 5/125 = 0.04. If I apply 0.04 in to the phase_tdata_pinc input I get my 5MHz tone out. The other tone I was looking for is 10MHz so 10/125 = 0.08. Again assigning that value to phase_tdata_pinc I get my 10MHz tone. I'm not really sure why this works as it disagrees with the DDS datasheet formula which I detailed in the previous post.

 

Now if I MUX these two constant values of 0.04 and 0.08 and have the SEL input of the MUX as my binary stream that I want to CPFSK modulate I get the desired continuous phase output from the DDS.

View solution in original post

0 Kudos