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.

LMX2594: the lock problem and the spur of lmx2594

Part Number: LMX2594

hi,

   I have  a problem of the lock of lmx2594 on my board.The phenomenon is as follows,when our software has detected it is unlocked,and the spectrum at the board output i checked  by the analyzer  is really unlocked.then i set the register of lmx2594 to readback mode by setting reg0 to 0x2498 (the initial value of reg 0 is 0x249c);and i readback reg 110 which is lock detect of Vtune,the readback value is 0x0248,that means the vtune is locked.Then i look at the spectrum of the board output  it is changed to  locked. The input of Oscin is OK during the whole process.By the way,i can see many spurs on the  spectrum analyzer with maxhold mode as the accumulation of time.I don't know whether the spurs come from the VCO calibration.

  • Hi There,

    When you turn the MUXout bit to register readback, you have initiated a VCO calibration because the FCAL_EN bit is also located in R0. Maybe the calibration makes it lock again. 

    What is your OSCin frequency and CAL_CLK_DIV setting?

  • Hi,Noel,

      My Oscin=368.64M,and CAL_CLK_DIV=1(R1=0x0809).

    so how can i sustain the unlock status if i want to readback in the meantime?by R0[2]=0 and R0[3]=0?

    thanks.

  • Hi There,

    I would suggest set CAL_CLK_DIV=2 (0x080A), this would slow down the state machine clock to 92.16MHz, it should help make VCO calibration more robust.

    As for the lock detect issue. You can set FCAL_EN=0 at the same time when you set MUXout pin to readback output. 

  • hi,Noel

      The spur picture is as follows.the blue is maxhold trace,the yellow is average trace.As the accumulation of time,the spur on the blue trace will be more and more,i didn't do anything just let the time go.Is this will be produced by the vco calibration? 

     

    many thanks!

  • HI Noel,

      But from the datasheet, CAL_CLK_DIV=2 is for 400 MHz < fOSC ≤ 800 MHz while my oscin=368.64M. Wouldn't the unreasonable settings here affect performance ?

       Will VCO automatically change to 0 after calibration?the initial power-up sequence I set the Fcal_en=1(R0=0x249C).when i want to readback i set R0=0x2490 here,OK?

    thanks.

  • Hi there,

    CAL_CLK_DIV is used to make sure the state machine clock will not exceed 200MHz. However, we can always use a lower state machine clock.

    The written FCAL_EN value will not change until you write a new value to it.

    I don't understand the plot, what was you measuring and what did you do to the PLL?

  • hi,Noel,

    Can you confirm the following questions for me?

      1.my Fosc=368.64M that i can set R1=0x080A?Yes or no?if yes,it seems to in-conformity with the datasheet register instructions.And  I am not sure whether it cause other problems?

     2.the written Fcal_EN=0  will not change VCO status? or what does Fcal_EN=0 mean?

     3.for the plot,i use lmx2594 as LO singal,which mix the IF singal from DAC through the mixer.the wide signal is produced by the fpga. What i measure is the output of my board.the chain is like this:fpga->dac->filter->mixer->filter->amplifier->output.when i see the signal is normally output i do nothing to the PLL,I just monitor the output for a long time to see whether is stable or not.

  • Hi There,

    1. Yes. As I have explained before, the state machine clock has upper limit of 200MHz, but there is no lower limit. We can use a lower state machine clock to ensure VCO calibration is robust. There is no problem using the datasheet recommended setting for CAL_CLK_DIV. Using a slower state machine clock can help you debug the problem.

    2. FCAL_EN bit is used to trigger VCO calibration. When you program R0 with FCAL_EN=1, the VCO will be calibrated to the desired frequency. For example, if you switch the VCO to a different frequency but program R0 with FCAL_EN=0, you may not lock because the VCO is not calibrated.

    3. If the PLL is locked, it will not generate random-moving spurs. Can you measure the output of LMX to confirm?

  • Hi,Noel,

      1.I understand what you mean,and I download the newest data sheet of lmx2594 and get it from the sheet today.many thanks.

    2.I also get it.thanks again ~.

    3.the spur I have already confirm that it is not from lmx2594 on my board.

    4.The unlock of lmx2594 on my board

    is that there are some problems of the vco after it works nornmally  a while in the low temperature of -40 centigrade.then when I set R0 to 0x2498 it activate vco calibration again and maybe the calibration change it to lock from unlock state before.

    Here is my question,which may cause the vco unlocked or work unnornmally after work well for some time ?i have checked my refence is ok in the meantime.

    Thanks.

  • Hi there,

    If it is locked and operate normally, it should stay locked unless the reference clock gets mad. 

    in this case:

    - the device has been working at -40C for a while before it goes unlock.

    - A VCO calibration (set R0 to readback mode with FCAL_EN=1) can bring it back to lock.

    I suspect that the VCO is losing lock, maybe due to calibration not doing well at the beginning. 

    I have a few questions:

    - did you see similar failure at 25C and 85C?

    - at what temperature did you do the calibration? At 25C or at -40C?

    - can you readback R110, R111 and R112?

    - what is the VCO frequency?

    - can you send us your register setting?

  • hi Noel,

       I am doing high and low temperature test for my board,and my work is beginning at 25C,When I finished the room temperature(25C) test, I lowered the chamber temperature to - 40 degrees. I didn't see similar failure at 25C. Reference is ok throughout the process.And I have checked the reference status when lmx2594 went unlocked.

      I do the

    R112	0x700000
    R111	0x6F0000
    R110	0x6E0000
    R109	0x6D0000
    R108	0x6C0000
    R107	0x6B0000
    R106	0x6A0000
    R105	0x690021
    R104	0x680000
    R103	0x67AAAB
    R102	0x663F2F
    R101	0x650011
    R100	0x640000
    R99	0x635555
    R98	0x620340
    R97	0x610888
    R96	0x600000
    R95	0x5F0000
    R94	0x5E0000
    R93	0x5D0000
    R92	0x5C0000
    R91	0x5B0000
    R90	0x5A0000
    R89	0x590000
    R88	0x580000
    R87	0x570000
    R86	0x56AA65
    R85	0x55EAB0
    R84	0x540001
    R83	0x53A993
    R82	0x5264C2
    R81	0x510000
    R80	0x508000
    R79	0x4F003E
    R78	0x4E0027
    R77	0x4D0000
    R76	0x4C000C
    R75	0x4B0800
    R74	0x4A0000
    R73	0x49003F
    R72	0x480001
    R71	0x470081
    R70	0x46C350
    R69	0x450000
    R68	0x4403E8
    R67	0x430000
    R66	0x4201F4
    R65	0x410000
    R64	0x401388
    R63	0x3F0000
    R62	0x3E0322
    R61	0x3D00A8
    R60	0x3C0000
    R59	0x3B0001
    R58	0x3A8001
    R57	0x390020
    R56	0x380000
    R55	0x370000
    R54	0x360000
    R53	0x350000
    R52	0x340820
    R51	0x330080
    R50	0x320000
    R49	0x314180
    R48	0x300300
    R47	0x2F0300
    R46	0x2E07FD
    R45	0x2DC8DF
    R44	0x2C1FA3
    R43	0x2BB356
    R42	0x2A2877
    R41	0x290000
    R40	0x280000
    R39	0x270001
    R38	0x2661A8
    R37	0x250304
    R36	0x24003D
    R35	0x230004
    R34	0x220000
    R33	0x211E21
    R32	0x200393
    R31	0x1F43EC
    R30	0x1E318C
    R29	0x1D318C
    R28	0x1C0488
    R27	0x1B0002
    R26	0x1A0DB0
    R25	0x190624
    R24	0x18071A
    R23	0x17007C
    R22	0x160001
    R21	0x150401
    R20	0x14C848
    R19	0x1327B7
    R18	0x120064
    R17	0x110129
    R16	0x100080
    R15	0x0F064F
    R14	0x0E1E30
    R13	0x0D4000
    R12	0x0C5003
    R11	0x0B0018
    R10	0x0A10D8
    R9	0x090604
    R8	0x082000
    R7	0x0740B2
    R6	0x06C802
    R5	0x0500C8
    R4	0x040A43
    R3	0x030642
    R2	0x020500
    R1	0x010809
    R0	0x00249C
    
    calibration at 25C.

      A days ago it went unlocked,when i have written R0 to 0x2498,it has went to lock.Until now it didn't go unlock again,but I'm still reappearing the problem.

     vco frequency is 7671.6MHz.

    Attachment is my configuration.

     Can you give me your emailbox if it's convenient?

  • hi Noel,

    I didn't see similar failure at 25C,and i haven't started my 50 degree experiment yet.Which is my highest test temperature.

    I do the calibration at 25C.

    I didn't read the register when it got  unlock because I reconfiguration Fcal_en=1 which made it lock again.But I'm reappearing the problem.If it  unlock again i will readback the 3 registers.

    The VCO frequency is 7546.6M.

    The register setting is attached.Please check for me and give me some advise 

    R112	0x700000
    R111	0x6F0000
    R110	0x6E0000
    R109	0x6D0000
    R108	0x6C0000
    R107	0x6B0000
    R106	0x6A0000
    R105	0x690021
    R104	0x680000
    R103	0x67AAAB
    R102	0x663F2F
    R101	0x650011
    R100	0x640000
    R99	0x635555
    R98	0x620340
    R97	0x610888
    R96	0x600000
    R95	0x5F0000
    R94	0x5E0000
    R93	0x5D0000
    R92	0x5C0000
    R91	0x5B0000
    R90	0x5A0000
    R89	0x590000
    R88	0x580000
    R87	0x570000
    R86	0x56AA65
    R85	0x55EAB0
    R84	0x540001
    R83	0x53A993
    R82	0x5264C2
    R81	0x510000
    R80	0x508000
    R79	0x4F003E
    R78	0x4E0027
    R77	0x4D0000
    R76	0x4C000C
    R75	0x4B0800
    R74	0x4A0000
    R73	0x49003F
    R72	0x480001
    R71	0x470081
    R70	0x46C350
    R69	0x450000
    R68	0x4403E8
    R67	0x430000
    R66	0x4201F4
    R65	0x410000
    R64	0x401388
    R63	0x3F0000
    R62	0x3E0322
    R61	0x3D00A8
    R60	0x3C0000
    R59	0x3B0001
    R58	0x3A8001
    R57	0x390020
    R56	0x380000
    R55	0x370000
    R54	0x360000
    R53	0x350000
    R52	0x340820
    R51	0x330080
    R50	0x320000
    R49	0x314180
    R48	0x300300
    R47	0x2F0300
    R46	0x2E07FD
    R45	0x2DC8DF
    R44	0x2C1FA3
    R43	0x2BB356
    R42	0x2A2877
    R41	0x290000
    R40	0x280000
    R39	0x270001
    R38	0x2661A8
    R37	0x250304
    R36	0x24003D
    R35	0x230004
    R34	0x220000
    R33	0x211E21
    R32	0x200393
    R31	0x1F43EC
    R30	0x1E318C
    R29	0x1D318C
    R28	0x1C0488
    R27	0x1B0002
    R26	0x1A0DB0
    R25	0x190624
    R24	0x18071A
    R23	0x17007C
    R22	0x160001
    R21	0x150401
    R20	0x14C848
    R19	0x1327B7
    R18	0x120064
    R17	0x110129
    R16	0x100080
    R15	0x0F064F
    R14	0x0E1E30
    R13	0x0D4000
    R12	0x0C5003
    R11	0x0B0018
    R10	0x0A10D8
    R9	0x090604
    R8	0x082000
    R7	0x0740B2
    R6	0x06C802
    R5	0x0500C8
    R4	0x040A43
    R3	0x030642
    R2	0x020500
    R1	0x010809
    R0	0x00249C
    

    Thank you very much.

  • Hi there,

    Basically there is no big issues with your configuration.

    Suggest set SEG1_EN=0, for details, see datasheet Table 33. The setting of this bit will not leading to unlock.

    I think the issue is still on the calibration. I suggest make CAL_CLK_DIV=2.

    Try again with the datasheet recommended programming sequence below. Try lock it at 25C and then bring the temperature to -40C, see if it will unlock over time.

    7.5.1 Recommended Initial Power-Up Sequence
    For the most reliable programming, TI recommends this procedure::
    1. Apply power to device.
    2. Program RESET = 1 to reset registers.
    3. Program RESET = 0 to remove reset.
    4. Program registers as shown in the register map in REVERSE order from highest to lowest.
    5. Wait 10 ms.
    6. Program register R0 one additional time with FCAL_EN = 1 to ensure that the VCO calibration runs from a
    stable state.

     

  • Hi Noel,

     1.OK,I will set R31[14]=0(SEG1_EN=0).In theory, the frequency band I use is at most divide by 2 .

     2.Setting  cal_clk_div=2 means slowing down the state machine clock,does it also mean the VCO calibrating more perfect?

     3.I see the recommended sequence from the latest datasheet.The step 5 isn't  existed in the old manual.Did i have to add this step to our initial sequence while our chips were purchased before?and why?

     4.The new sequence in the end of  step 4 ,if I have written R0=0x249C,then step 6 i have written R0=0X249C again for a stable VCO calibration.Right?

    With your warmhearted reply,I'm getting more and more aware of my issues.Thank you very much.

  • Hi there,

    2. in general, yes.

    3. the 10ms wait time is optional and it is intended to ensure the internal LDOs have been settled down before doing another VCO calibration. If you have sufficient time between Vcc power up and the first register write (between step 1 and 2), you don't necessary need step 5 and 6.

    4. Correct, just repeat writing R0.