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.

LMX2572EVM: LMX2572EVM frequency sweep spurs ...

Part Number: LMX2572EVM
Other Parts Discussed in Thread: LMX2572, USB2ANY

Hi,

We are using your evaluation board of synthesizer LMX2572EVM. I use the 100 MHz
reference oscillator. I am making a sweep frequency from 5.0 GHz to 5.1 GHz with
51 step frequency points at the maximum possible speed waiting for the device to
lock.

I initialized the device with the default registers for the VCO frequency of
5.050 GHz this is the output:



Is good output.

Now I want to implement a frequency sweep from 5.0 GHz to 5.1 GHz.

The device locks for all 51 frequencies without any problem, using the following
table of pre-calculated values with sequence :

start frequency: 5000000000
stop  frequency: 5100000000
point          : 51
step  frequency: 2000000

index,     INT,        NUM,        DEN,       PFD,              VCO Calc,              VCO Real,         Error, RFDIV, CHDIV,    MUX,             RF Output
    0,      50,          0,          1, 100000000, 5000000000.0000000000, 5000000000.0000000000, +0.0000000000,     1,     0,    VCO, 5000000000.0000000000
    1,      50,          1,         50, 100000000, 5002000000.0000000000, 5002000000.0000000000, +0.0000000000,     1,     0,    VCO, 5002000000.0000000000
    2,      50,          1,         25, 100000000, 5004000000.0000000000, 5004000000.0000000000, +0.0000000000,     1,     0,    VCO, 5004000000.0000000000
    3,      50,          3,         50, 100000000, 5006000000.0000000000, 5006000000.0000000000, +0.0000000000,     1,     0,    VCO, 5006000000.0000000000
    4,      50,          2,         25, 100000000, 5008000000.0000000000, 5008000000.0000000000, +0.0000000000,     1,     0,    VCO, 5008000000.0000000000
    5,      50,          1,         10, 100000000, 5010000000.0000000000, 5010000000.0000000000, +0.0000000000,     1,     0,    VCO, 5010000000.0000000000
    6,      50,          3,         25, 100000000, 5012000000.0000000000, 5012000000.0000000000, +0.0000000000,     1,     0,    VCO, 5012000000.0000000000
    7,      50,          7,         50, 100000000, 5014000000.0000000000, 5014000000.0000000000, +0.0000000000,     1,     0,    VCO, 5014000000.0000000000
    8,      50,          4,         25, 100000000, 5016000000.0000000000, 5016000000.0000000000, +0.0000000000,     1,     0,    VCO, 5016000000.0000000000
    9,      50,          9,         50, 100000000, 5018000000.0000000000, 5018000000.0000000000, +0.0000000000,     1,     0,    VCO, 5018000000.0000000000
   10,      50,          1,          5, 100000000, 5020000000.0000000000, 5020000000.0000000000, +0.0000000000,     1,     0,    VCO, 5020000000.0000000000
   11,      50,         11,         50, 100000000, 5022000000.0000000000, 5022000000.0000000000, +0.0000000000,     1,     0,    VCO, 5022000000.0000000000
   12,      50,          6,         25, 100000000, 5024000000.0000000000, 5024000000.0000000000, +0.0000000000,     1,     0,    VCO, 5024000000.0000000000
   13,      50,         13,         50, 100000000, 5026000000.0000000000, 5026000000.0000000000, +0.0000000000,     1,     0,    VCO, 5026000000.0000000000
   14,      50,          7,         25, 100000000, 5028000000.0000000000, 5028000000.0000000000, +0.0000000000,     1,     0,    VCO, 5028000000.0000000000
   15,      50,          3,         10, 100000000, 5030000000.0000000000, 5030000000.0000000000, +0.0000000000,     1,     0,    VCO, 5030000000.0000000000
   16,      50,          8,         25, 100000000, 5032000000.0000000000, 5032000000.0000000000, +0.0000000000,     1,     0,    VCO, 5032000000.0000000000
   17,      50,         17,         50, 100000000, 5034000000.0000000000, 5034000000.0000000000, +0.0000000000,     1,     0,    VCO, 5034000000.0000000000
   18,      50,          9,         25, 100000000, 5036000000.0000000000, 5036000000.0000000000, +0.0000000000,     1,     0,    VCO, 5036000000.0000000000
   19,      50,         19,         50, 100000000, 5038000000.0000000000, 5038000000.0000000000, +0.0000000000,     1,     0,    VCO, 5038000000.0000000000
   20,      50,          2,          5, 100000000, 5040000000.0000000000, 5040000000.0000000000, +0.0000000000,     1,     0,    VCO, 5040000000.0000000000
   21,      50,         21,         50, 100000000, 5042000000.0000000000, 5042000000.0000000000, +0.0000000000,     1,     0,    VCO, 5042000000.0000000000
   22,      50,         11,         25, 100000000, 5044000000.0000000000, 5044000000.0000000000, +0.0000000000,     1,     0,    VCO, 5044000000.0000000000
   23,      50,         23,         50, 100000000, 5046000000.0000000000, 5046000000.0000000000, +0.0000000000,     1,     0,    VCO, 5046000000.0000000000
   24,      50,         12,         25, 100000000, 5048000000.0000000000, 5048000000.0000000000, +0.0000000000,     1,     0,    VCO, 5048000000.0000000000
   25,      50,          1,          2, 100000000, 5050000000.0000000000, 5050000000.0000000000, +0.0000000000,     1,     0,    VCO, 5050000000.0000000000
   26,      50,         13,         25, 100000000, 5052000000.0000000000, 5052000000.0000000000, +0.0000000000,     1,     0,    VCO, 5052000000.0000000000
   27,      50,         27,         50, 100000000, 5054000000.0000000000, 5054000000.0000000000, +0.0000000000,     1,     0,    VCO, 5054000000.0000000000
   28,      50,         14,         25, 100000000, 5056000000.0000000000, 5056000000.0000000000, +0.0000000000,     1,     0,    VCO, 5056000000.0000000000
   29,      50,         29,         50, 100000000, 5058000000.0000000000, 5058000000.0000000000, +0.0000000000,     1,     0,    VCO, 5058000000.0000000000
   30,      50,          3,          5, 100000000, 5060000000.0000000000, 5060000000.0000000000, +0.0000000000,     1,     0,    VCO, 5060000000.0000000000
   31,      50,         31,         50, 100000000, 5062000000.0000000000, 5062000000.0000000000, +0.0000000000,     1,     0,    VCO, 5062000000.0000000000
   32,      50,         16,         25, 100000000, 5064000000.0000000000, 5064000000.0000000000, +0.0000000000,     1,     0,    VCO, 5064000000.0000000000
   33,      50,         33,         50, 100000000, 5066000000.0000000000, 5066000000.0000000000, +0.0000000000,     1,     0,    VCO, 5066000000.0000000000
   34,      50,         17,         25, 100000000, 5068000000.0000000000, 5068000000.0000000000, +0.0000000000,     1,     0,    VCO, 5068000000.0000000000
   35,      50,          7,         10, 100000000, 5070000000.0000000000, 5070000000.0000000000, +0.0000000000,     1,     0,    VCO, 5070000000.0000000000
   36,      50,         18,         25, 100000000, 5072000000.0000000000, 5072000000.0000000000, +0.0000000000,     1,     0,    VCO, 5072000000.0000000000
   37,      50,         37,         50, 100000000, 5074000000.0000000000, 5074000000.0000000000, +0.0000000000,     1,     0,    VCO, 5074000000.0000000000
   38,      50,         19,         25, 100000000, 5076000000.0000000000, 5076000000.0000000000, +0.0000000000,     1,     0,    VCO, 5076000000.0000000000
   39,      50,         39,         50, 100000000, 5078000000.0000000000, 5078000000.0000000000, +0.0000000000,     1,     0,    VCO, 5078000000.0000000000
   40,      50,          4,          5, 100000000, 5080000000.0000000000, 5080000000.0000000000, +0.0000000000,     1,     0,    VCO, 5080000000.0000000000
   41,      50,         41,         50, 100000000, 5082000000.0000000000, 5082000000.0000000000, +0.0000000000,     1,     0,    VCO, 5082000000.0000000000
   42,      50,         21,         25, 100000000, 5084000000.0000000000, 5084000000.0000000000, +0.0000000000,     1,     0,    VCO, 5084000000.0000000000
   43,      50,         43,         50, 100000000, 5086000000.0000000000, 5086000000.0000000000, +0.0000000000,     1,     0,    VCO, 5086000000.0000000000
   44,      50,         22,         25, 100000000, 5088000000.0000000000, 5088000000.0000000000, +0.0000000000,     1,     0,    VCO, 5088000000.0000000000
   45,      50,          9,         10, 100000000, 5090000000.0000000000, 5090000000.0000000000, +0.0000000000,     1,     0,    VCO, 5090000000.0000000000
   46,      50,         23,         25, 100000000, 5092000000.0000000000, 5092000000.0000000000, +0.0000000000,     1,     0,    VCO, 5092000000.0000000000
   47,      50,         47,         50, 100000000, 5094000000.0000000000, 5094000000.0000000000, +0.0000000000,     1,     0,    VCO, 5094000000.0000000000
   48,      50,         24,         25, 100000000, 5096000000.0000000000, 5096000000.0000000000, +0.0000000000,     1,     0,    VCO, 5096000000.0000000000
   49,      50,         49,         50, 100000000, 5098000000.0000000000, 5098000000.0000000000, +0.0000000000,     1,     0,    VCO, 5098000000.0000000000
   50,      51,          0,          1, 100000000, 5100000000.0000000000, 5100000000.0000000000, +0.0000000000,     1,     0,    VCO, 5100000000.0000000000

I wrote a small program that sends these frequency points continuously to create
a frequency sweep.

Flow logic:

Init_LMX2572

for(index = 0; index < 51; index++)
{
    ...
    Send R75/R45/R43/R42/R39/R38/R37/R36
    ...
    Start AutoCal wiht send R0
    ...    
    Waiting Lock
    ...
    Continue Next Point    
}

At the change of a frequency, none in particular, on the spectrum analyzer I see
spurs frequency that I think should not be there. These spurs do not seem to have
any relation to the frequency I am setting.

I activated :

 - R0  "OUT_MUTE" Mutes RF outputs (RFoutA and RFoutB) when the VCO is calibrating  
 - R78 "QUICK_RECAL_EN" This sets the initial VCO starting calibration values.
   Especially useful if the frequency change is smaller, say < 50 MHz or so.

Default value:

//
// Output Frequency 5050 MHz
//
const unsigned int LMX2572_Default_Config[126] =
{
    0x00231C,    // R0
    0x010808,    // R1
    0x020500,    // R2 (fixed)
    0x030782,    // R3 (fixed)
    0x040A43,    // R4 (fixed)
    0x0530C8,    // R5
    0x06C802,    // R6
    0x0700B2,    // R7
    0x082000,    // R8
    0x090004,    // R9
    0x0A10F8,    // R10
    0x0BB018,    // R11 Port-R divider PLL_R     ( /1 )
    0x0C5001,    // R12 Pre-R  divider PLL_R_PRE    ( /1 )
    0x0D4000,    // R13 (fixed)
    0x0E1820,    // R14 Charge Pump Gain
    0x0F060E,    // R15 (fixed)
    0x100080,    // R16
    0x110096,    // R17
    0x120064,    // R18 (fixed)
    0x1327B7,    // R19
    0x144848,    // R20
    0x150409,    // R21 (fixed)
    0x160001,    // R22 (fixed)
    0x17007C,    // R23 (fixed)
    0x18071A,    // R24 (fixed)
    0x190624,    // R25 (fiexd)
    0x1A0808,    // R26 (fixed)
    0x1B0002,    // R27 (fixed)
    0x1C0488,    // R28 (fixed)
    0x1D0000,    // R29 (fiexd)
    0x1E18A6,    // R30 (fixed)
    0x1FC3E6,    // R31 (fixed)
    0x2005BF,    // R32 (fixed)
    0x211E01,    // R33 (fixed)
    0x220010,    // R34 N divider PLL_N[18:16]
    0x230004,    // R35 (fixed)
    0x240032,    // R36 N divider PLL_N[15:0]
    0x250305,    // R37 PFD Delay Select change with N divider
    0x260000,    // R38 PLL Denominator PLL_DEN[31:16]
    0x2703E8,    // R39 PLL Denominator PLL_DEN[15:0]
    0x280000,    // R40 MASH Seed [31:16]
    0x290000,    // R41 MASH Seed [15:0]
    0x2A0000,    // R42 PLL Numerator PLL_NUM[31:16]
    0x2B01F4,    // R43 PLL Numerator PLL_NUM[15:0]
    0x2C1FA3,    // R44 RF Output Power Ch. A / Mash Order
    0x2DCE1F,    // R45 RF Output Divider A / RF Output Power Ch. B
    0x2E07F0,    // R46 RF Output Divider B
    0x2F0300,    // R47 (fixed)
    0x3003E0,    // R48 (fixed)
    0x314180,    // R49 (fixed)
    0x320080,    // R50 (fixed)
    0x330080,    // R51 (fixed)
    0x340421,    // R52 (fixed)
    0x350000,    // R53 (fixed)
    0x360000,    // R54 (fixed)
    0x370000,    // R55 (fixed)
    0x380000,    // R56 (fixed)
    0x390020,    // R57 (fixed)
    0x3A9001,    // R58 SYNC
    0x3B0001,    // R59 Lock Type
    0x3C03E8,    // R60 Lock detect delay
    0x3D00A8,    // R61 (fixed)
    0x3E60AF,    // R62 Dobule Buffer Enable for other register
    0x3F0000,    // R63 (fixed)
    0x401388,    // R64 (fixed)
    0x410000,    // R65 (fixed)
    0x4201F4,    // R66 (fixed)
    0x430000,    // R67 (fixed)
    0x4403E8,    // R68 (fixed)    
    0x450000,    // R69 Mash Reset Counter [31:16]
    0x46C350,    // R70 Mash Reset Counter [15:0]
    0x470081,    // R71 SysRef
    0x480001,    // R72 SysRef Divider
    0x49003F,    // R73 SysRef Adjustment
    0x4A0000,    // R74 SysRef Repeat
    0x4B0800,    // R75 RF Channel Divider
    0x4C000C,    // R76 (fixed)
    0x4D0000,    // R77 (fixed)
    0x4E0201,    // R78 VCO Capture Control
    0x4F0000,    // R79 Ramp Threshold [31:16]
    0x500000,    // R80 Ramp Threshold [15:0]
    0x510000,    // R81 Ramp Limit High [32]
    0x520000,    // R82 Ramp Limit High [31:16]
    0x530000,    // R83 Ramp Limit High [15:0]
    0x540000,    // R84 Ramp Limit Low [32]
    0x550000,    // R85 Ramp Limit Low [31:16]
    0x560000,    // R86 Ramp Limit Low [15:0]
    0x570000,    // R87 (fixed)
    0x580000,    // R88 (fixed)
    0x590000,    // R89 (fixed)
    0x5A0000,    // R90 (fixed)
    0x5B0000,    // R91 (fixed)
    0x5C0000,    // R92 (fixed)
    0x5D0000,    // R93 (fixed)
    0x5E0000,    // R94 (fixed)
    0x5F0000,    // R95 (fixed)
    0x600000,    // R96 Ramp Burst Count
    0x610000,    // R97 Ramp 0 Config
    0x620000,    // R98 Ramp 0 Increment Config
    0x630000,    // R99 Ramp 0 Increment [15:0]
    0x640000,    // R100 Ramp 0 Length
    0x650000,    // R101 Ramp 1 Config
    0x660000,    // R102 Ramp 1 Increment Config
    0x670000,    // R103 Ramp 1 Increment [15:0]
    0x680000,    // R104 Ramp 1 Length
    0x694440,    // R105 Ramp Delay
    0x6A0007,    // R106 Ramp Trigger
    0x6B0000,    // R107 (fixed) (read only)
    0x6C0000,    // R108 (fixed) (read only)
    0x6D0000,    // R109 (fixed) (read only)
    0x6E0000,    // R110 Lock Tune / VCO Select (read only)
    0x6F0000,    // R111 VCO Control (read only)
    0x700000,    // R112 VCO DAC I Set (read only)
    0x710000,    // R113 (fixed) (read only)
    0x727802,    // R114 FSK mode
    0x730000,    // R115 FSK deviation scale
    0x740000,    // R116 FSK deviation 0
    0x750000,    // R117 FSK deviation 1    
    0x760000,    // R118 FSK deviation 2
    0x770000,    // R119 FSK deviation 3
    0x780000,    // R120 FSK deviation 4
    0x790000,    // R121 FSK deviation 5    
    0x7A0000,    // R122 FSK deviation 6
    0x7B0000,    // R123 FSK deviation 7
    0x7C0000,    // R124 FSK SPI Fast mode
    0x7D2288    // R125 (fixed)
};

With frequency sweep I see this:

With frequency hop I see this:

With update CW frequency continuously I see this:

Even making a very slow frequency change (example every second) the spurs are
presented in the same way.

The problem of what could be derived ?

Thanks very much.

  • Hello,

    I'm not familiar with FSK feature of LMX2572. My coworker with get back to you soon.

    Regards,
    Hao
  • Hi There,

    Were you sending all 100+ registers for each frequency point during the sweep?
    For a 100MHz sweep, VCO calibration is necessary. Will you consider to use the frequency ramp function of this device? In this case, you don't need to program the device periodically.
  • Hi,

    during the sweep I send only the necessary registers, not all of them.

    I wrote a small program that sends these frequency points continuously to create
    a frequency sweep.

    Flow logic:

    Init_LMX2572

    for(index = 0; index < 51; index++)
    {
        ...
        Send R75/R45/R43/R42/R39/R38/R37/R36
        ...
        Start AutoCal wiht send R0
        ...    
        Waiting Lock
        ...
        Continue Next Point    
    }

    At the change of a frequency, none in particular, on the spectrum analyzer I see
    spurs frequency that I think should not be there. These spurs do not seem to have
    any relation to the frequency I am setting.

    I activated :

     - R0  "OUT_MUTE" Mutes RF outputs (RFoutA and RFoutB) when the VCO is calibrating  
     - R78 "QUICK_RECAL_EN" This sets the initial VCO starting calibration values.
       Especially useful if the frequency change is smaller, say < 50 MHz or so.

    I need to sweep any size even greater than 100 MHz, even the whole band from 12.5 MHz to 6.4 GHz.

    I would like to avoid using features that I don't have control over and make it easier.

    Any ideas on how to intervene to remove unwanted spurs ?

    Thanks very much.

  • Hi,

    The output will not mute until you hit R0 to trigger VCO calibration.
    R45, R39, R38 are not double buffered, change will happen immediately after they are programmed.

    Maybe you can try mute and un-mute manually to avoid spurs that are due to programming.
  • Hi,

    > The output will not mute until you hit R0 to trigger VCO calibration.

    > R45, R39, R38 are not double buffered, change will happen immediately after they are programmed.

    But the proof of using the mute was the my first idea but given the switching speed the CW signal this is modulated in AM, generating spurs.

    What I don't understand is why the chip generates these spurs unrelated to the signal I want to generate.

    Other ideas ?

  • Hi,

    I did the same scan from 5GHz to 5.1GHz in 2MHz/step. My SPI rate is only 125kHz, I can't make it faster. I have the same default configuration as yours and I send the same 9 registers for each frequency step. Here is my result, I don't see any spurs during the sweep. I verified this with another spectrum analyzer and the result is same. 

  • Hi,

    your result is what I want to achieve. My SPI is clocked 9 MHz, I can try with 125 KHz.

    Do you confirm that you used the same registers as above ?

    Do you confirm that to update the frequency send only these registers R75/R45/R43/R42/R39/R38/R37/R36 ?

    For the values of INT / NUM / DEN did you use the ones I calculated ?

    If you have written a program that uses USB2ANY can you give it to me ?

    I'm glad it works for you, but I'd like to understand at this point what I'm wrong.

    Thanks very much.

  • Hi,

    Yes, I used the same configuration as yours and I sent the 9 registers in each step.

    Since you have an EVM, you can try my setup.

    - Open TICS. Select LMX2572.

    - Load the attached file.

    2572.tcs

    - The VCO frequency is 5000MHz.

    - Go to the Burst Mode page.

    - Load the attached burst mode file.

    sweep.tcb

    - Click Run. The VCO will be sweeping from 5000MHz to 5100MHz in 2MHz/step.

  • Hi,

    I have follow your previous post but the spur remain. After first "Run" I obtain this:

    I set the same configuration of the your instrument, with "Res BW", "Points" and "Sweep Time" but the result is this:

    Can you try with "Res BW" of 1 MHz or less ?

    Can you reduce the noise floor or use a more performing instrument ?

    Can you also check "Loop" and then "Run" with Max Hold on the instrument ?

    Thanks very much.

  • Hi,

    I tried Loop and 1MHz Res BW, I got the same result as before.
    I don't have a more advanced spectrum analyzer.
    I will try to see if I can use another test method to capture the spurs.
  • Hi,

    thanks for your test. I hope you can recreate the problem.

    Thank you for your time.

  • I await your trials, thanks for your time.
  • Hi Gabriele,

    I tried Noel's configs with smaller res BW and lower noise floor. I also checked the "loop?" and waited for more than 3 minutes. I see a couple of spikes but not as bad as what you were showing. Vertical scale is 10dB/div

    Regards,

    Hao

  • if you could increase the speed up to 9MHz clock you would definitely see what I see.

    Any solutions ?

  • Hi all,

    I did a precise timing programming and captured the following plot when switching frequency from 5GHz to 5004MHz. OUT_MUTE is turned on. I sent 9 registers to switch the frequency.

    Before calibration starts, the VCO frequency has already changed. 

    In addition, there seems to be a glitch when the output mute being.

    I believe these two factors create the spurs at random frequencies.

    Unfortunately, there is no way to advance the mute time.

    In the following, I power down the output buffer before calibration and then power up the buffer again.

    The programming sequence is:

    R43 (change the fractional NUM value)

    R44 (power down output buffer)

    R0 (initiate vco calibration)

    R44 (power up output buffer)

    The output looks clean now.

  • Hi,

    beautifully, I'm not able to do your own measure, but the result seems excellent.

    I will try to implement your advice. Thanks.

    Could you try to widen the jump in frequency? From 5000 MHz to 5100 MHz and maybe across two different internal VCO bands ?