This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LMX2582: Kvco

Part Number: LMX2582

Hello, 

For a given Fvco in LMX2582, the value of Kvco differs between TICs Pro (or Datasheet) and PLLatinum. (for example: For Fvco=4550,  Kvco= 32.1 in TICsPRo  and 39 in PLLatinum)
Which Kvco is more accurate?

Regards,

  • Hello,

    Thanks for posting on E2E. I have assigned your post to the responsible engineer.

    Kind regards,
    Lane Boyd
  • Here is the answer from Dean.

    Hu,

    Comparing the Datasheet, TICSPro, and PLLatinum Sim, the results are very similar, but PLLatinum Sim is slightly different. Also below is the TICSPro code. What it does is use a linear approximation between each of the known values in the datasheet.

    PLLatinum Sim uses more complete data and slightly more accurate, but they all are fairly close.

    def UpdateVCOGain():
    Fvco=Fvco_FREQ.dValue

    if (Fvco<3550):
    Kvco = 27.4
    elif (Fvco<4200):
    Kvco = 28+(30-28)*(Fvco-3700)/(4200-3700)
    elif (Fvco<4700):
    Kvco = 30+(33-30)*(Fvco-4200)/(4700-4200)
    elif (Fvco<5200):
    Kvco = 33+(36-33)*(Fvco-4700)/(5200-4700)
    elif (Fvco<5700):
    Kvco = 36+(41-36)*(Fvco-5200)/(5700-5200)
    elif (Fvco<6200):
    Kvco = 41+(47-41)*(Fvco-5700)/(6200-5700)
    elif (Fvco<7100):
    Kvco = 47+(51-47)*(Fvco-6200)/(6800-6200)
    else:
    Kvco = 53
    CalculatedKvco.dValue=Kvco

    Compare results from different tools:

    Fvco Core Datasheet PLLatinum Sim TICSPro
    3700 VCO1 28 25.8 28
    4200 VCO2 30 29.8 30
    4700 VCO3 33 32.1 33
    5200 VCO4 36 35.3 36
    5700 VCO5 41 40.2 41
    6200 VCO6 47 44.7 47
    6800 VCO7 51 51.9 51
    REgards,
    Dean
  • Dean and Noel, I would like to thank you for your responses.

    But I think there is a significant difference between the values of KVCO, please refer to the attached picture where I plot the values of KVCO for different Fvco with a 50 MHz step size, (72 points). It is obvious that the difference, although they are very similar at the frequencies included in the datasheet, for other frequencies they differ.

    Since I'm calculating the LPBW, and it highly depends on the value of Kvco, so I'm interested to have the accurate one. I will adopt the values given by PLLatinum as suggested by you.


    This code may fits more the values appeared in PLLatinum : 

    if (Fvco<3550)
    Kvco = 22;
    elseif (Fvco<=4150)
    Kvco = 22+(37-22)*(Fvco-3550)/(4150-3550);
    elseif (Fvco<4600)
    Kvco = 28.5+(40.5-28.5)*(Fvco-4150)/(4600-4150);
    elseif (Fvco<5100)
    Kvco = 29.311+(43-29.311)*(Fvco-4600)/(5100-4600);
    elseif (Fvco<5600)
    Kvco = 33.405+(43-33.405)*(Fvco-5100)/(5600-5100);
    elseif (Fvco<6100)
    Kvco = 38.275+(48-38.275)*(Fvco-5600)/(6100-5600);
    elseif (Fvco<=6600)
    Kvco = 42.569+(53.312-42.569)*(Fvco-6100)/(6600-6100);
    elseif (Fvco<7100)
    Kvco = 48+(58-48)*(Fvco-6600)/(7100-6600);
    else
    Kvco = 58;
    end


    Regards,

  • HuTer,

    Use PLLatinum Sim as this is the most accurate

    As for the resolution of this, here's an explanation ...

    The datasheet was originally written to try to conceal how many VCO cores we had and the frequency overlap between cores, but later this concern became much less. It probably doesn't take a rocket scientist to figure out that the VCO gains we give are the center of each cores and it seems that we have now even exposed the VCO_SEL bit.

    TICSPro was written for this "sanitized" version and uses a simple linear approximation between the datasheet frequencies. But frankly, this is too simplified and leads to sub-optimal loop filter design. TICSPro is exposed to the user, so we were more sensitive about making this give a way too much.

    However, to accurately calculate the VCO gain, the best way is to know what VCO core you are in and then calculate the minimum and maximum VCO gain at each extreme and use a linear approximation. This is what PLLatinum Sim does. PLLatinum Sim came later and also does not expose the calculations to the user.

    So here's how we are going to move forward on this:
    1. For the datasheet, it is going to stay as is.

    2. I'm going to update PLLatinum Sim so the Kvco aligns exactly at the center frequency in the datasheet. It's very close anyways, but it's easier to make it exact to avoid any more questions. The update for this will come out with our next device in several months. The impact will be very small.

    3. For TICSPro, I'm going to change the approximation to something closer to PLLatinum Sim. I am going to change the linear approximationsWhat I will do use the formulas so it does not expose the overlap between cores but still agrees with PLLatinum Sim.

    BTW, here's the new TICSPro code:
    if (Fvco<3550):
    Kvco = 24.25
    elif (Fvco<4068):
    Kvco = 24.25+(37.20-24.25)*(Fvco-3550.0)/(4068-3550)
    elif (Fvco<4530):
    Kvco = 26.44+(38.90-26.44)*(Fvco-4068.0)/(4530-4068)
    elif (Fvco<5008):
    Kvco = 28.27+(41.57-28.27)*(Fvco-4530.0)/(5008-4530)
    elif (Fvco<5566):
    Kvco = 32.29+(43.08-32.29)*(Fvco-5008.0)/(5566-5008)
    elif (Fvco<6062):
    Kvco = 38.37+(48.10-38.37)*(Fvco-5566.0)/(6062-5566)
    elif (Fvco<6594):
    Kvco = 44.03+(55.47-44.03)*(Fvco-6062.0)/(6594-6062)
    elif (Fvco<7100):
    Kvco = 46.84+(57.06-46.84)*(Fvco-6594.0)/(7100-6594)
    else:
    Kvco = 57.06
    CalculatedKvco.dValue=round(Kvco,1)

    Regards,
    Dean
  • I would like to thank you, Dean, for your patience and support.
    I will adopt your new code.

    Regards,