Post Go back to editing

Failure powering up PLL2 on AD9523-1

Category: Software
Product Number: AD9523-1

We are using AD9523-1 as clocking source for our ADC system, working along with AD9680 and Xilinx Zynq, with a similar design as FMCDAQ2 provided by ADI. 

We are now testing our board, but it seems that the clocking chip cannot power up its PLL2 component. Once we write "1" to bit 1 at register 0x233 and then write 0x01 to register 0x234, the chip fails, and all the registers get restored to default state, all our settings get lost, and register 0x233 still reads 0x07. 

We also tried writing 0x05 to register 0x233 (without powering up PLL2), and the readback from the chip is nonetheless correct, and status VCXO is OK (bit 5 of register 0x22c reads 1). We also tried to disable (tristate) all the outputs before powering up PLL2, but the chip still fails. 

The software code is simply adapted from ADI's NO-OS driver, and the SPI bus as well as the oscillator (125 MHz, differential LVDS) works correctly. 

Attached you can find the schematic of our design and the register configuration. We appreciate your timely assistance. 

register.zip



Added description of register configuration
[edited by: torwa at 5:27 AM (GMT -4) on 16 May 2022]
Parents
  • Hi Torwa,

    I find your comment somewhat confusing.  Your register file shows that you are writing "&h233,&b00000000   ;00 Hex, 000 Dec" to register 0x233.  This is appropriate to power up 3 main sections of the AD9523-1 - PLL1/PLL2/Distribution.  However, your comments above indicate that you are writing a "1" to 0x233 bit 1.  This would power the PLL2 down.  It appears that you may be misunderstanding the Power Down polarity of register 0x233.  Please confirm that you are programming the AD9523-1 as noted in the Device Initialization Flowcharts as described in AD9523-1 Rev C datasheet.  Once you have confirmed and if there is still a problem, please send us all of your programming steps for further review.

  • Sorry, that was a typo. We were actually writing 0x0 and 0x2 to register 0x233 accordingly, instead of 0x7 and 0x5. 

    Attached you can find the initialization code implemented in C. The code was adapted from the NO-OS driver by ADI and we have confirmed that the programming sequence is as described. 

    The initialization procedure include calling of 2 functions, that is clk_init() in "foundation.c" that specifies the behavior of PLL2 and output channels, and ad9523_setup() in "ad9523/ad9523.c" that writes the registers of AD9523 in sequence. 

    Best regards

    7776.init_code.zip

Reply
  • Sorry, that was a typo. We were actually writing 0x0 and 0x2 to register 0x233 accordingly, instead of 0x7 and 0x5. 

    Attached you can find the initialization code implemented in C. The code was adapted from the NO-OS driver by ADI and we have confirmed that the programming sequence is as described. 

    The initialization procedure include calling of 2 functions, that is clk_init() in "foundation.c" that specifies the behavior of PLL2 and output channels, and ad9523_setup() in "ad9523/ad9523.c" that writes the registers of AD9523 in sequence. 

    Best regards

    7776.init_code.zip

Children
No Data