LMX2820: How to query VCO core number?

Part Number: LMX2820

Tool/software:

Hi Noel and Vibhu,

I have been testing the LMX2820 in its EVM offering. This is a related question to what was asked "a while ago" regarding VCO cores and calibration. 

I am interested in knowing the frequency overlap between the VCO cores.  According to the datasheet, table 7.5, below are the approximate frequency ranges of the VCO cores. 

My question is: Is there a way to query or read a register value from the LMX2820 to know which core it is operating on and to precisely know the frequency point at which the operating core switches?

Here is a screenshot of the PLL portion of the TICS pro. 

The below screen shot is when the VCO is set to 6350 (which is the max frequency of Core 1)

The second screenshot below is VCO at 6351 MHz, which is the minimum frequency of Core 2. 

How can i confirm which core i am on?

According to the Register Map...should I be reading R22 and R23?

Changing frequencies that fall in a specific VCO core and then reading R22 under Raw Registers in TICS did not show any difference.

Your feedback is much appreciated!

AR

  • Hi AR,

    After doing a VCO calibration, do a register read back to get the actual selected VCO parameters.

  • Hi Noel,

    Thank you for the swift response. However, this seems to not be working for me? See below screenshot. I expected at 11300 MHz the VCO core to be 7 but instead its at 3. Additionally, i can visually see that the VCO is locked as the LED on the EVM lights up, however on the Device status box which you kindly pointed to me, it says 'Unlock', which translates to unlocked. This is ofcourse after i hit 'Calibrate VCO' button. 

    Also, I did a little exercise where i read the values of Registers R74-76 over the VCO operating range. Can you guide me to understand how to translate these Hex values to the Register Map? For example the read value of R74 on the first row is '0x4A82C5'. According to the Register Map, to know which VCO core the calibration has selected, i should read the value in the 2-4 bit position. How can i infer this from the value read out? 

    OSCIN,MHz N Divider VCO,MHz Expected VCO Core OUTA_MUX RFOUTA R74 R75 R76
    198.4375 32 6350 1 VCO 6350 0x4A82C5 0x4B00C0 0x4C0000
    228.125 32 7300 2 VCO 7300 0x4A978D 0x4B0144 0x4C0000
    253.125 32 8100 3 VCO 8100 0x4A95F1 0x4B016C 0x4C0000
    281.25 32 9000 4 VCO 9000 0x4A82F1 0x4B00C8 0x4C0000
    306.25 32 9800 5 VCO 9800 0x4A96F9 0x4B00C1 0x4C0000
    331.25 32 10600 6 VCO 10600 0x4A979D 0x4B00CF 0x4C0000
    353.125 32 11300 7 VCO 11300 0x4A87DD 0x4B007E 0x4C0000

  • Hi Ameya,

    The math is not correct, 32 x 353 = 11296, that's why read back say unlock. 

    It seems that the read back value is correct in your table.

    For example, the first row. R74 = 0x4A82C5. 0x82C5 = 1000 0010 1100 0101

    rb_LD = 10'b = 0x2 = locked.

    rb_VCO_CAPCTRL = 10110'b = 22'd

    rb_VCO_SEL = 1'b = VCO1

  • Hi Noel,

    Thanks for the decode help. That helps. However, i am not entirely sure on the VCO core number. Here is another example. 

    200 MHz x 35 = 7000 MHz. Based on Table 7-5, this should mean the VCO Core should be 2 and not what is being reported by TICS as 3

    Looking at the raw register read out for R76, this comes out to 0x878D which translates to "1000011110001101". This 011 translates to VCO3, which is being correctly reported by the GUI, but shouldn't i expect this to be VCO2 as the frequency lies in 6350 - 7300 MHz range based on Table 7-5? Below is the screenshot R74 value from TICS (highlighted in grey).

  • Hi Ameya,

    Your read back said unlock, it is indeed unlock? 

  • Hi Noel,

    0x878D translates to 1000011110001101. This 10 means that it is locked. However, for now, let's re-focus on the VCO core. This 011 means that the VCO is on Core 3 and not Core 2. Why is the VCO cal not settling on Core 2?

    Thanks,

    AR

  • Hi Ameya,

    Please try, close TICS Pro and then open it again. Re-do the programming and read back.

    you can also try, in the Raw Registers page, click Read All Registers button

    Then in User Control page, check the read back value.

  • Hi Noel,

    Sorry for the late update on this. This worked, but there seem to be some bugs on the GUI part of the TICS Pro, that doesn't always update the registers. As that is a separate issue from this thread, i shall start a new thread there soon. 

    I consider this issue resolved. Thank you so much for your quick and fast support on this as I integrate the LMX2820 into my design. 

    Best

    AR