AnsweredAssumed Answered

Program Single Tone Registers

Question asked by goldscott on Oct 13, 2011
Latest reply on Oct 14, 2011 by goldscott

Hi,

 

I'm trying to initialize the AD9910 via SPI using a Blackfin processor.

 

These are the steps I'm taking:

 

- Toggle Master Reset.

- Toggle IO Reset.

- CS low, write to register 0x00, CS high. Value: 0x00800202

- CS low, write to register 0x01, CS high. Value: 0x00400820

- CS low, write to register 0x02, CS high. Value: 0x0020C128

- CS low, write to register 0x03, CS high. Value: 0x000000FF

- CS low, write to register 0x04, CS high. Value: 0xFFFFFFFF

- CS low, write to register 0x07, CS high. Value: 0x00000000

- CS low, write to register 0x08, CS high. Value: 0x0000

- CS low, write to register 0x09, CS high. Value: 0x0000FFFC

- CS low, write to register 0x0A, CS high. Value: 0x00000000

- CS low, write to register 0x0B, CS high. Value: 0x0000000000000000

- CS low, write to register 0x0C, CS high. Value: 0x0000000000000000

- CS low, write to register 0x0D, CS high. Value: 0x00000000

- CS low, write to register 0x0E, CS high. Value: 0x3FFF000028F6

- CS low, write to register 0x0F, CS high. Value: 0x3FFF00004B18

- Toggle IO Update.

- Read back registers 0x00, 0x01, 0x02, 0x0E, 0x0F, 0x10 for testing.

 

I'm trying to program single tone registers 0x0E and 0x0F.

 

Everything seems to work except programming registers 0x0E and 0x0F.

 

I am testing this by reading back registers 0x00, 0x01, 0x02, 0x0E, 0x0F, and 0x10.

 

Registers 0x00, 0x01, and 0x02 (CFR1, CFR2, and CFR3) all read back exactly what I program in them.

 

Registers 0x0E, 0x0F, and 0x10 all read back the same value - the value that I program in 0x0F.

 

 

I'm running the SPI at 4MHz, and have put a 100us delay after asserting CS low and before deasserting CS high.

My IO_UPDATE toggle is 300+ns long and comes 1ms after writing to the last register (register 0x0F).

 

Is there anything I'm doing wrong, or something I am missing?

 

Thanks,

Scott

Outcomes