AD9164-FMCC-EBZ Cannot Get Output

I have AD9164-FMCC-EBZ connected using just a 12VDC power supply and no FMC.  I am following the Start Up Sequence within the datasheet but the caveat is that I do not want to use JESD only SPI.  I want to run in NCO Only mode and simply generate a 500MHz output.

I run all of the instructions in Table 42 but run into an issue with DLL Clock lock.  I read the 0th bit to = 0b0 instead of 0b1.  I assume this might be my issue but I am not sure.  Moving forward, I do not run any commands in Table 43, and then run all of the commands in Table 44.  My commands are below.  I cannot figure out why it will not output.

# Initialize device to MSB first [6,1]=0, 4-wire [4:3] = 0b10
write_then_read(spi,cs,0x000,0x18)

# Reset internal calibration registers
reg_write(spi,cs,0x0D2,0x52)

# Clear the reset bit for the internal calibration registers
reg_write(spi,cs,0x0D2,0xD2)

# Configure the nonvolatile random access memory (NVRAM)
reg_write(spi,cs,0x606,0x02)

# Configure the NVRAM
reg_write(spi,cs,0x607,0x00)

# Load NVRAM. Loads factory calibration factors from the NVRAM
reg_write(spi,cs,0x604,0x01)

# (Optional) read the boot loader pass bit in Register 0x604, Bit 1 = 0b1 to indicate a successful boot load
read_data = reg_read(spi,cs,0x604)
if (read_data == b'B'):
print("Successful boot load",read_data,"\n")
else:
print("Unsuccessful boot load",read_data,"\n")

# Enable the band gap reference
reg_write(spi,cs,0x058,0x03)

# Power up the DAC clock DLL
write_then_read(spi,cs,0x090,0x1E)

# Enable the clock receiver
write_then_read(spi,cs,0x080,0x00)

# Enable the DAC bias circuits
write_then_read(spi,cs,0x040,0x00)

# (Optional) Enable the interrupts
write_then_read(spi,cs,0x020,0x0F)

# Configure DAC analog parameters
reg_write(spi,cs,0x09E,0x85)

# Enable the DAC clock DLL
write_then_read(spi,cs,0x091,0xE0)

# Check DLL_STATUS; set Register 0x092, Bit 0 = 1 to indicate the DAC clock DLL is locked to the DAC clock input
read_data = reg_read(spi,cs,0x092)
if (read_data == 0x01):
print("DAC clock DLL is locked to the DAC clock input",read_data,"\n")
else:
print("DAC clock DLL is NOT locked to the DAC clock input",read_data,"\n")

# Enable calibration factors
reg_write(spi,cs,0x0E8,0x20)

# Configure the DAC decode mode (0b00 = NRZ (normal), 0b01 = Mix-Mode, or 0b10 = RZ)
write_then_read(spi,cs,0x152,0x00)

# Configure device for SPI control
write_then_read(spi,cs,0x03F,0x80)

###############################################################################
# Configure NCO Sequence

# Perform this write if NCO only mode is desired
write_then_read(spi,cs,0x110,0x80)

# Configure NCO_EN (Bit 6) = 0b1. Configure other datapath options for Bit 7 (INVSINC_EN), Bit 4 (FILT_BW),
# Bit 2 (MODULUS_EN), Bit 1 (SEL_SIDEBAND), and Bit 0 (FIR85_FILT_EN). See the Register Summary section
# for details on the options. Set the reserved bits (Bit 5 and Bit 3) to 0b0
write_then_read(spi,cs,0x111,0x40)
#write_then_read(spi,cs,0x800,0x40)

# Configure DC_TEST_EN bit (bit 1): 0b0 = NCO operation with data interface; 0b1 = NCO only mode
write_then_read(spi,cs,0x150,0x02)

# Write amplitude value for tone amplitude in NCO only mode (Bits [15:8])
write_then_read(spi,cs,0x14E,0x7F)

# Write amplitude value for tone amplitude in NCO only mode (Bits [7:0])
write_then_read(spi,cs,0x14F,0xFF)

# Ensure the frequency tuning word write request is low
reg_write(spi,cs,0x113,0x00)

## fcarrier/fdac = M/N = 100MHz/5GHz = 1/50 = (X+A/B)/2^48
## For 100MHz: X = 5,629,499,534,213; A = 1, B = 12
# Write FTW, Bits[47:40]
write_then_read(spi,cs,0x119,0x19)

# Write FTW, Bits[39:32]
write_then_read(spi,cs,0x118,0x99)

# Write FTW, Bits[31:24]
write_then_read(spi,cs,0x117,0x99)

# Write FTW, Bits[23:16]
write_then_read(spi,cs,0x116,0x99)

# Write FTW, Bits[15:8]
write_then_read(spi,cs,0x115,0x99)

# Write FTW, Bits[7:0]
write_then_read(spi,cs,0x114,0x99)

# Write FTW, A
write_then_read(spi,cs,0x12A,0x03)

# Write FTW, B
write_then_read(spi,cs,0x124,0x05)

write_then_read(spi,cs,0x14E,0x7F)
write_then_read(spi,cs,0x14E,0xFF)

# Load the FTW to the NCO
reg_write(spi,cs,0x113,0x01)

Parents Reply Children
No Data