AD9520-1 BCPZ

Hello Sir , I have a customized board in which We have used AD9520 IC. I have checked the IC in default mode it is alive i.e. it is giving a response of 6.25 MHz.
I am trying to write a code through which I can write some value into the register and read it back the same value so that I can get a confidence that What I want to write into specific registers it is written correctly. I have tried hard but I am not getting the response.
I am attaching a copy of code with this mail. Kindly find the attachment and let us know where I am doing the mistake. 
SCLK frequency is 25 MHz.  It is very Urgent Sir. kindly do the needful as soon as possible.
  • 0
    •  Analog Employees 
    on Jan 3, 2018 3:19 AM

    Dear ,

    I can't tell from your email which problem you're having. Are you able to write and read registers? If so, then do you have a programming sequence problem?

    When debugging a serial port, it's far easier to look at the serial port waveform, and start with a simple write and read.

    For example, register 0x003 will always read back the same value, which varies depending on which version of the AD9520 you have. Also, after power-up, you can read a 7-byte long sequence starting at Register 0x10, and already read the same value, provided you're not loading from the EEPROM.

    If you wan to debug a register write, you should consider doing the following:

    1. Registers 0x05 and 0x06 do affect the rest of the chip, and because of this, they are good for debugging a write sequence. Now, it is important to write R0x232=0x01 after writing so that the written values are transferred into the active register space. If you don't want to write to R0x232 yet, you can write 0x01 to R0x04, and if you're successful with that, you'll be able to immediately read back a value.

    2. You can use the LD pin to debug the serial port. If you write R0x1A=0x30, and R0x232=0x01, the LD pin will be high. Writing R0x1A=0x00, and R0x232=0x01 will make it low.

    If you're reading and writing correctly, let me know and I'll give you a good tip for part programming sequence.

    If you're not reading and writing correctly, you may need to use an oscilloscope to debug what is happening.

    -Paul Kern

  • Thanks Mr. pkern for your advice. I want to debug a register write as well as I want to know the sequence of writing and reading it back.

    It is very urgent for me  to configure this IC So kindly send me the reference code for the same IC.


  • 0
    •  Analog Employees 
    on Jan 4, 2018 10:35 PM

    Hi Shailendra,

    Before doing anything else, ensure that the EEPROM pin is low at power-up. That way, you can be assured that the default values will be present after power-up.

    To debug the serial port, see what I wrote above. I also have a correction. R0x005 and R0x006 do NOT affect the rest of the chip, so they're perfect for testing. Register 0x003 is also read-only and is ideal for debugging.

    For a register write sequence, the best way to configure the part is to use the evaluation board software, and you do not need a board attached in order to use that.

    The software can be downloaded here:

    The evaluation board user's guide can be downloaded here:

    Use the evaluation software to create an .STP file, which is in a text format.

    To create a programming sequence, the .STP file will form the writing sequence, but make the following changes:

    1. Ensure that R0x018<0>=0 during the initial write sequence. This is the VCO calibration bit.

    2. Append the following three writes:

       a. R0x232=0x01 (what we call an IO_Update).

       b. Write R0x018 a second time, only this time with R0x018<0>=1.

       c. R0x232=0x01.

    (Note that you must ensure that you have a valid input clock present on the reference input pins before issuing this write.)

    -Paul Kern

  • Thanks Mr. P.Kern for your guidance. I have done the programming for using this IC in distribution mode. EEPROM pin is directly connected to the FPGA ,I have checked the EEPROM pin at power up, it is showing 2.4 V(i.e. High). I am not to programme the EEPROM section. Kindly give the suggestions.