The new frequency seems to ignore the phase of the previous frequency, causing an undesired phase change.
I am generating with very low frequencies (2 Hz to 60 Hz) using a 1 MHz oscillator to the AD9834. I take the desired word for 2 Hz, for example (0000219), create four bytes (40h, 00h, 42h, 19h) and send them to the AD9834 as "42h, 19h, 40h, 00h. The device gives me the frequencies I ask for, but there are these strange phase jumps.
A DDS is a phase continue device, unless the phase is changed...
Could you provide a plot of this behavior and the commands used to update the frequency?
On page 21 of the data sheet in the paragraph just above table 11 is stated that you should alternate between the frequency registers to avoid intermediate updates of the active frequency register between the two 16 bit SPI writes.
Are you doing that?
May I ask which signal are you using to trigger the scope?
If you are using auto mode or Iout pin may happen that the phase problem is not genuine and it is created by the scope itself... Can you use FSYNC signal instead?
And as Klaus mentioned... if you want to update the frequency, better to alternate between register... otherwise you will create intermediate frequencies..
If I alternately write to freq0 then freq1, do I have to write a new control word each time?
Yes, unless you are using the FSELECT pin two swap between the two registers.
What did you write to the control register?
This will affect the meaning of the writes to the frequency register...
Retrieving data ...