AnsweredAssumed Answered

AD9913 programming troubleshooting

Question asked by MikeD on Aug 11, 2015
Latest reply on Aug 13, 2015 by MikeD

Hi,

 

I have a programming problem with an AD9913. I also have an AD9912 which I have no difficulties in managing. But the AD9913 causes some head scratching even afte looking at some of the other posts in the forum.

 

My design for the AD9913

  • CS to ground permanently
  • Single tone mode only
  • Serial programming and MSB
  • No PLL is needed
  • Clock is 200 MHz and CMOS
  • SYNC_CLK unconnected
  • SPI speed is max 100 kHz and clock is idle low

 

The programming is like this

 

// Configuration

ddsMasterResetLow

ddsUpdatePinLow

delay_ms(1)

 

// Reset the DDS

ddsMasterResetHigh

delay_ms(1)

ddsMasterResetLow

delay_ms(1)

 

// Load Control Function Register 1

SPI(0x00)                // CFR1

SPI(0b00001000)    // CFR1[31:24]
SPI(0b00001000)    // CFR1[23:16]
SPI(0b00000000)    // CFR1[15:8]
SPI(0b00000000)    // CFR1[7:0]

 

// Load Control Function Register 2

SPI(0x01)                // CFR2

SPI(0b00000010)    // CFR2[15:8]

SPI(0b10100010)    // CFR2[7:0]

 

// Update registers

ddsUpdatePinHigh

delay_us(10)

ddsUpdatePinLow
delay_us(10)

 

// Set single tone, FTW

SPI(0x03)             // FTW address

SPI((ftw >> 24) & 0xFF)

SPI((ftw >> 16) & 0xFF)

SPI((ftw >> 8) & 0xFF)

SPI(ftw & 0xFF)

 

// Update registers

ddsUpdatePinHigh

delay_us(10)

ddsUpdatePinLow

 

Any ideas? Besides the device being dead.

Outcomes