AnsweredAssumed Answered

AD9915 - SPI communication and no SYNC CLK output

Question asked by Joffray on Feb 8, 2013
Latest reply on Feb 8, 2013 by Joffray

Hi !

 

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.

 

1.

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.

 

2.

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.

 

3.

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;

wait_us(10);

syncio = 0;

wait_us(10); // 10us pulse for SYNCIO

 

cs = 0;

spi.write(0x00); // write CFR1

// Send the contents of the register

spi.write(0x00);

spi.write(0x01);

spi.write(0x00);

spi.write(0x08);

cs = 1;

 

// IO update : 10us pulse

io_update = 1;

wait_us(10);

io_update = 0;

wait_us(10);

 

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 ?

 

Thanks,

 

Joffray.

Outcomes