AnsweredAssumed Answered

AD9517 Internal VCO

Question asked by orenderj on Aug 26, 2015
Latest reply on Jan 6, 2016 by pkern



I am moving away from my ZedBoard with the AD9467 FMC card and towards my custom board. I just got the board up and running and am attempting to change my source code to make the AD9517 use the internal VCO instead of the external oscillator that I was using on the FMC card. From what I have found on the forums, this requires only changing the AD9517_cfg file to disable the refs and enable the vco. I am getting an output and I can read and write to registers, so I believe the chip is working, but the clock output is basically sputtering as if the PLL is not locked.


Here is my config data


struct ad9517_platform_data ad9517_pdata_lpc =
  /* PLL Reference */
  0, // ref_1_freq
  0, // ref_2_freq
  0, // diff_ref_en
  0, // ref_1_power_on
  0, // ref_2_power_on
  0, // ref_sel_pin_en
  0, // ref_sel_pin
  0, // ref_2_en

  0, // ext_clk_freq
  1500000000, // int_vco_freq
  1, // vco_clk_sel
  1, // power_down_vco_clk
  "ad9517-lpc" // name[16]

and in my initialization function:

xil_printf("AD9517 Setup: 0x%02x\n\r", ad9517_setup(SPI_DEVICE_ID, 1));
xil_printf("AD9517 CHIP ID: 0x%02x\n\r", ad9517_read(AD9517_REG_PART_ID));

xil_printf("AD9517 Power Mode: 0x%02x\n\r", ad9517_power_mode(6, 0));
xil_printf("AD9517 Power Mode: 0x%02x\n\r", ad9517_power_mode(7, 0));

xil_printf("AD9517 Frequency: 0x%02x\n\r", ad9517_frequency(6, 250000000));
xil_printf("AD9517 Frequency: 0x%02x\n\r", ad9517_frequency(7, 250000000));

xil_printf("AD9517 Update: 0x%02x\n\r\n\r", ad9517_update());


I tried to copy the initialization routine from the datasheet, but I dont think I was correct and looking through the AD9517 source files, I think most of the required registers are being written to. My AD9467 FMC board was running great with the oscillator, but I needed to do away with it for various reasons.


Any help would be appreciated.