Post Go back to editing

AD9552 Automatic VCO Calibration

Category: Hardware
Product Number: AD9552
Software Version: AD9551/9552 Evaluation Software 2.1.0

I have found that the AD9552 PCBZ eval board appears to not be enacting automatic VCO calibration, contrary to the datasheet.  When I have the board configured for manual control through the dip switches (configured to use a 10 MHz reference to generate a 156.25 MHz output, according to the manual) it initially generates the wrong frequency (typically ~152 MHz as measured by my scope).  If I issue a reset by asserting/deasserting the DIP switch on S2, it begins generating the correct frequency.  According to the datasheet, the VCO calibration routine should run on power-up.  I suspect that it isn't, which is causing the poor frequency accuracy, and it only runs after issuing the reset manually.  Is there a direct method for me to test this suspicion? 

Additionally, when I configure the board for PC Control, every time I power on the board and read Register 0x0E, it reads back as b'01110100, indicating that SPI control of VCO calibration is enabled.  Is there a way to test whether the default register map setting of address 0x0E has somehow been changed?  I don't see any documentation on the "USB EEPROM Enable" feature, is it possible that this setting is being loaded from EEPROM?

  • Hi,

    This is from the data sheet rev E, page 17:

    The eval board comes with an installed 26MHz crystal resonator. You seem to want to use a 10MHz reference clock. Please make sure that when you power up the board, the 10MHz clock is applied. The schematic of the REF pin on the eval board is that of a dc coupled input. So you need to apply a 10MHz CMOS clock that has at least 1.62V high level and max 0.52V low level.

    If you want, please send me the stp configuration file you use, so I can play with it in the lab myself.

    The register 0x0E being 0x74: this is not the default value (0x70), so this means the register is changed when the chip is configured. The default values of the registers are in the Register Map section of the data sheet, page 23.

    Not clear to me what "USB EEPROM enable" feature you are referring to. Please point me in the right direction


  • Hi Petre,

    Thanks for the reply.  Yes, I am applying the 10 MHz clock of sufficient amplitude and specifying A[2:0] as b'000 accordingly.  I can send you an stp file, but overall I'm trying to run this in "manual" mode (controlled via the DIP switches) so ideally this will be run without the software.  I just used the software to try to debug this issue.

    I agree that the register 0x0E appears to not have the default values specified in the data sheet, so I'm trying to find out why that is.  One possibility is that it's only happening when I connect to the board with the software.  If that's the case though, I don't understand why, after I write 0x70 to the register 0x0E, then unplug the board's USB and plug it back it, the register reverts to 0x74.  That's what makes me think it could be something on the board that's loading a default value of 0x74.

    That's what led me to conjecture about this USB EEPROM - could this be what's setting the register 0x0E to 0x74?  There is no documentation on this feature, so I have no idea if this is at all possible, it's pure conjecture on my part.  You can see the USB EEPROM Enable on JMP1 in the image of the board in the user guide:

    This might be totally off-base, I just can't find any explanation of this jumper so I can only guess.

  • Hi,

    The USB EEPROM is only used in conjunction with the PC recognizing the eval board. There is no I2C communication between this EEPROM and the AD9552.

    The eval board is supplied by default using the USB cable. So when you unplug the USB cable, you power down the chip. When you plug the cable back in, you supply the chip.

    I took an AD9552 eval board and I did the following operations while monitoring the SPI lines at P1 connector:

    - plug the board

    -launch the eval software. Already the USB chip sends this train of bytes 0x60, 0x0E, 0x00, 0x05, 0x01, which means that register 0x0E is written with value 0x00, register 0x0D is written with value 0x05 and register 0x0C is written with value 0x01. Because no IO Update is executed, these values are written only in the buffered part of the registers

    -select AD9552. In this moment, the USB chip sends 0x00, 0x0E, 0x74, (write register 0x0E with value 0x74) followed by 0x00, 0x05, 0x01 (IO Update). So this is the moment when the software changes the value of the register 0x0E to 0x74 

    - open the register map window and indeed, only the register 0x0E has a non default value.


  • Hi Petre,

    This was very helpful, thank you.  I did discover that my 10 MHz source was occasionally dropping in amplitude, which would explain why the board was sometimes correctly calibrating the VCO on power-on, and sometimes not. I will accept your first reply as the solution.