Serial programming AD9852

Discussion created by Jacob87 on Oct 8, 2012
Latest reply on Oct 8, 2012 by Jacob87



I've got an AD9852pcbz eval. board that I am trying to program via serial communication from a microcontroller (ATmega1284P).

I've been trying to figure out how to do so via the datasheets for a couple of days now, to no avail.

Looking at an oscilloscope, the signal from the ATmega seems fine, but the DDS just wont work.

Programming the DDS via my PCs parallel port and the software works fine.


Here's how I'm doing it:

Set master reset high for more than 10clk cycles.

Set master reset low.

Send 0x07, 0x00, 0x20, 0x00

Do an I/O reset

This should set the DDS to use external I/O clocking.

I then send the control register and freq tuning word.



Here's what I _think_ I know from the datasheets:


The first 4 bytes myst be sent between I/O update clocks. At 16MHz clocking (both for DDS and ATmega) this gives me 8us to transfer these bytes.

The bytes I'm sending should tell the DDS to use external I/O update clocking and no I/O update signal should be found on the I/O update pin on the board.


The DDS is not giving me any output, and the I/O update clock can still be found on the I/O update pin, at an 8us period.


I'm using the WRB pin for the serial communications clock

Pin A0 for data, A2 for I/O reset

The jumpers on W9, W11, W12, W13, W14, W15 are removed.

RDB and PMODE are tied to gnd.


What am I doing wrong?


Very greatful for any assistance


/ Jacob