AnsweredAssumed Answered

AD9851 erratic starting and incrementing a serial word

Question asked by AllenW on Jan 16, 2014
Latest reply on Jan 21, 2014 by AllenW



I have two questions regarding an AD9851 DDs.  I have been using the Analog Devices Application Note AN-557 as a guide for my own DDS VFO project and with its help I have been able to make a very nice working DDS VFO.  Presently I am trying to improve the microcontroller program I'm using, however, and have found two problems for which I haven't yet found solutions.  The first is that the DDS doesn't always start when power is applied.  Sometimes it's necessary to switch the DDS on and off a couple of times to get it to work.  I think the problem may be associated with the change from the default parallel programming to the serial programming I'm using.  The AD9851 is hardwired to change to serial programming on start up.  I have included initial w_clock and frequency update pulses in the program as well but these seem to make no difference i.e. the DDS works the same (and has the same startup problem) regardless of whether or not these pulses are included.  From looking at pages 13 to 16 in the AD9851 data sheet I think the problem may be related to uncleared data bits but I am not sure.  I would appreciate suggestions as to how to make the DDS start reliably every time power is applied. 


The second question I have is related to frequency change.  I have the microcontroller that controls the AD9851 connected to an optical encoder that produces a series of pulses as the encoder's shaft is turned.  Each pulse produces a 10 Hz shift, up or down, depending on the direction in which the shaft is turned.  This works really well if I use a parallel word (as outlined in the data sheet) shifted bit by bit to the right and sent to the AD9851.  In this case each encoder pulse causes a fixed increment to be added to the tuning word.  However, I'm now trying to use the serial word format outlined in the data sheet to do the same thing and I have yet to find any way in which I can add (or subtract) a fixed increment in order to produce the 10 Hz frequency changes I would like.  Again, I would appreciate any suggestions as to how this can be done.


Thank you.