AnsweredAssumed Answered

AD9834-frequency modulation problem

Question asked by Goncharov on Jun 1, 2015
Latest reply on Jun 2, 2015 by musach

My project is a frequency modulator DDS. From time to time I write frequency AD9834 ( 100,000 times per second) . The program is as follows:

 

//Init

Write_AD9833(0x2110);

Write_AD9833(0x4000); //first frequency lo

Write_AD9833(0x5900); //first frequency hi

Write_AD9833(0xC000);

Write_AD9833(0x2000);

 

//cyclic writing

while (1)

{

  // calculating freq,

  .............................................

  Write_AD9833(0x2000);

  Write_AD9833(0xXXXX); //freq lo

  Write_AD9833(0xXXXX);  //freq hi

}

 

This cycle operates , the output DDS is, frequency modulation is. To test , I gave the signal DDS to the frequency demodulator . The signal after frequency demodulation correct , DDS works .

But sometimes in the FM signal at the output of DDS is short jumps , they can be seen in the demodulation . It turns out that when the jumps are obtained when the frequency modulation changes the frequency of the high word , for example 1 in a loop

 

Example 1

while (1)

{

  Write_AD9833(0x2000);

  Write_AD9833(0x7FFF); //freq1 lo

  Write_AD9833(0x58FF);  // freq1 hi

 

Write_AD9833(0x2000);

  Write_AD9833(0x4000);   //freq2 lo

  Write_AD9833(0x5900);    //freq2 hi

}


The frequency at the output of DDS is almost unchanged , only one discrete . However, when the demodulation of the signal appearing at the output of the jump.


If you change the frequency of 1 discrete differently

Example 2

While (1)

{

Write_AD9833(0x2000);

  Write_AD9833(0x7FFF); //freq1 lo

  Write_AD9833(0x58FF);  // freq1 hi

 

  Write_AD9833(0x2000);

  Write_AD9833(0x7FFE);   //freq2 lo

  Write_AD9833(0x58FF);    //freq2 hi

}

The frequency is almost the same , but no jumps demodulation .So , my loop recording incorrect , it leads to a jump in the demodulation signal in example 1 .

Question: how to avoid a change of high word jumping in the signal demodulation? Why example 2 works well, but example 1 gives problems?


With best regards            A. Goncharov

Outcomes