Programming AD9914 over SPI


I would like to program the AD9914 eval board over SPI with a microcontroller.

I don't understand why it doesn't work, because my SPI interpreter decodes any good values.

I have attached a screenshot of my SPI diagrams (DAC calibration).

Thanks for your help,


  • Hi,

    Can you provide with us your schematic?

    Can you also try toggling your IO_UPDATE signal to 10ms and check if that works?


  • This is the schematic. With IO_UPDATE signal to 10ms, it doesn't work.

  • How about the connection of the DDS section? What is your Rset?

    What we have encountered before is that, we don't have any output because the IO_UPDATE is too small. Try increasing it, say up to 50ms.

  • Hi,

    I am trying to use SPI as well and could not get it to run.

    See the steps and pictures I have taken.

    Any ideas what went wrong?

  • 0
    •  Analog Employees 
    on Apr 7, 2015 7:53 PM

    If you're trying to program the AD9914 evaluation board externally, I would first  try something simple like program the AD9914 to disable the SYNC_CLK at SMA connector J100 . That way, you could simply monitor the SYNC_CLK SMA connector for ON/OFF operation. The SYNC_CLK defaults to enable. To disable the SYNC_CLK  write to register 0x01 register bit 11.

    The following guidelines should help.

    1) Tri-state IC U202 only via P203 jumper. That will allow external programming without BUS contention. Note, If you tri-state U204 via P204, you must control those floating digital inputs. For example, if reset or SYNCIO float, the SPI operation will become intermittent.

    2) Next use the AD9914 software GUI (via USB cable hook up to evaluation board) to send the master reset pulse. The master reset will place the internal registers in their default value state per the register map in data sheet

    3) Use your FGPA to externally program the SYNC_CLK disable bit to disable ( logic high)

    4) Send an IO_UPDATE pulse. Note the pulse width must be wider than the SYNC_CLK period, else it may not be registered.

    5) The SYNC_CLK should have turned OFF at SMA J100. If this works you have a valid programming connection and can proceed with other desired commands.

    Hope this helps.