I am trying to communicate with an AD9915 DDS using SPI. The AD9915 evaluation board run smoothly using AD eval software. Now I want to use SPI between a mbed microcontroller (http://mbed.org/) and my AD9915 DDS, but it does not work (no response when I try to read a register). I think the issue is I don't see SYNC CLK signal at the corresponding SMA output.
For SPI, on the evaluation board, I have set jumpers P203, P204, and P205 to desable.
I have set the jumpers P202 et Enable CLK Input (J111).
I have set jumpers IOCFG0 to IOCFG3 to 1000, respectively.
PS0, PS1 and PS2 are set to ground.
Between my mbed and my AD9915 DDS I have 7 wires : CS / SCLK / SDIO / SYNCIO for serial; and Reset / IO update / GND.
I have set my Ref CLK to 10MHz, 0dBm. (10MHz * 240 = 2400MHz, perfect for the PLL)
And I have two power supply voltages, 1.8 and 3.3V.
First, I power up my board (3.3V and 1.8V).
Then, I perform a master reset sending a 100ms pulse width (reset-buf PIN).
Here I see no signal on the SYNC CLK output.
After that, I initiate SPI :
spi.format(8,0); // 8Bytes, CPOL = 0 and CPHA = 0
spi.frequency(1000000); // f = 1MHz
and I try to write and read into the register
syncio = 1;
syncio = 0;
wait_us(10); // 10us pulse for SYNCIO
cs = 0;
spi.write(0x00); // write CFR1
// Send the contents of the register
cs = 1;
// IO update : 10us pulse
io_update = 1;
io_update = 0;
cs = 0;
spi.write(0x80); // read CFR1
int w1 = spi.write(0x00);
int w2 = spi.write(0x00);
int w3 = spi.write(0x00);
int w4 = spi.write(0x00);
cs = 1;
pc.printf("register = 0x%X\n", w1);
pc.printf("register = 0x%X\n", w2);
pc.printf("register = 0x%X\n", w3);
pc.printf("register = 0x%X\n", w4);
Finally I read 0x 00 00 00 00. I think the issue is I have no signal on the SYNC CLK output. However, I have sent a Reset pulse just after turning on the power supply. Do you have an idea why I don't see SYNC CLK output ? Jumpers are well set ? Concerning IO update-buf, which is the input to use, the PIN of the external header connector or the SMA input ?