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.

LMK05028: 10MHz Output from 10MHz OR 1PPS Input

Part Number: LMK05028

Hi,

i am currently working with the LMk05028EVM and i have big problems on every step on my way.

After the 10MHz-output  generation from 10MHz-input works (https://e2e.ti.com/support/clock-and-timing/f/48/t/763082, i now want to try to throw a GPS 1PPS signal into the mix.

First some observations: for 1 PPS i guessed i needed a lower PLL bandwidth than 4Hz. 

However the PLL fails to lock at bandwidths below 4Hz. Anlan O., who helped me with the previous problem, clearly had some reason why he chose 4Hz bandwidth. In order to get e.g. 3Hz working, i have to increase the TCXO LBW from Auto (150Hz) to e.g. 600Hz. Then the PLL locks. In fact with the manually chosen 600Hz TCXO LBW  i can set the DPLL lBW down to 0.01Hz and everything works fine. The PLL is incapable of reacting to fast thermal transients on the XCO (my finger) which is expected behavior.

With 0.01Hz Bandwidth i now would like to try to go 1PPS. So i disconnect the 10MHz and connect the 1PPS to IN2:

Problem! Putting a "1" for IN2 next to three 10e6 (for the other channels) into the "Step2: Clock-Inputs" field does throw a warning in the script.

In gcd (line 64)
In extract_dennum (line 24)
In LMK05028_DPLL/UpdateNumDen (line 851)
In LMK05028_DPLL/GenerateDPLLFilter (line 454)
In LMK05028_ROM_Gen (line 39)

My fault? Maybe. I dont know. I was desperate, so i choose IN0 as my 1PPS victim. (all other channels 10e6 even if they are ignored)

..this time it works. In fact the script works only if the 1PPS is at IN0.

But does the script actually work at this point? 

Just having the 1PPS at IN0 configured (but as PLL input ignored) the PLL does not lock anymore. It kind of frequency locks, but gives up the phase lock after it lost around 720° (measured at the output). This behavior persists even at 4Hz loop bandwidth. Strange because literally i change is setting an ignored clock at IN0 from 10e6 to 1.

Not locking to In1 because In0 has an ignored 1PPS config: NotLockingToIn1.7z

The behavior is also observed, if the (ignored!) 1PPS is configured at IN2 or IN3, but the Script gives a warning in those instances.

Now configuring 1PPS on all inputs (but only IN2 really has one): No warnings in the script.

Still the same not-locking behavior that is observed.. (it kind of frequency locks, but gives up the phase lock after it lost around 720° (measured at the output))

But in all honesty, if i enable the 6.3us Jitter threshold the GPS signal source is rejected as an input. REF2VALSTAT does not become 1. Unfortunately the threshold cannot be set higher.

A summary of my goal (why i did all this)

I want to have a 1PPS clock or  a 10MHz clock generatig 10MHz at all outputs. The output clock frequency is currently just a placeholder and convenient for lock detection.

If the 1PPS is missing, the 10MHz clock shall be used, if that is missing holdover is fine.

I would welcome any help!

convenient

  • It is not possible to support a 1 Hz input and 10 MHz input simultaneously, since the DPLL R-dividers are 16-bit deep (max divide = 65536) so it cannot divide a 10-MHz input down to a common frequency of 1 Hz.   To avoid the script error, change all input frequencies to 1 (Hz), or change the input's DPLL assignment to "Unused".

    Please try the attached tcs file which has the following attributes:

    1. PLL1 is used to generate all 10 MHz outputs.  PLL2 is powered down.
    2. 1 Hz input on REF IN0 assigned to DPLL1, and selected by register control.  Other inputs (IN1 to IN3) are set to Unused and Ignored.
    3. DPLL1 in 3-loop mode with DPLL1 BW = 20 mHz and TCXO BW = 200 Hz.
    4. VCO1 freq was forced to 4840 MHz in STEP 5 (from 4800 MHz to allow APLL1 to be in Fractional mode, since the XO frequency is 48 MHz).
    5. 1-PPS input phase valid detector is enabled and set to max (6300 ns).  If your 1-PPS input has large wander (>6.3 us cycle-to-cycle variation), then you may need to disable the 1-PPS input detector.
    6. DPLL1 lock detect threshold = 50 ppm, unlock detect threshold = 55 ppm
    7. STATUS0/1 and GPIO5/6 pins are configured to output the following signals for DPLL lock behavior:
      1. STATUS0 = DPLL1 RDIV reference clock div-by-2 (i.e. 1-PPS input/2 ~ 0.5 Hz)
      2. STATUS1 = DPLL1 NDIV feedback clock div-by-2 (i.e. feedback to TDC ~ 0.5 Hz)
      3. GPIO5 = DPLL1 holdover active (should be 0 when 1-PPS input on REF IN0 is validated and selected)
      4. GPIO6 = DPLL1 loss of lock (should be 0 when DPLL1 frequency lock is detected)
      5. When phase-locked, you should see a stable phase relationship between the RDIV/2 and NDIV/2 signals on STATUS0/1, and GPIO5/6 are both 0.  You can also read-back the STATUS bits on the "Status & Interrupt" page.

      1. With 20 mHz DPLL BW, the DPLL will take a couple minutes to achieve lock.

    LMK05028_3loop_Dpll1Bw=20mHz_Tcxo1Bw=200Hz_RefIn0=1pps_Tcxo=10M_Xo=48M0048_Out0to7=10M.tcs

    Hope this helps! 

    Alan

  • Hi Alan again,

    i am afraid to say, i cant achieve lock with this configuration. 

    The blinking LEDs were a great idea - it helped me with some signal integrity issued on my 1PPM sigal. But after cleaning that up, still no luck.

    I suppose i should run the script? The PLL is constantly misalligned around 125kHz next to the target 10MHz and it does not really change.

    When i try to run the script, i get an error:

    "Run cancelled: OUT[4:7] bank need 1+ clock from PLL1"

    However PLL1 already provides all clocks for Outputs [4:7], so i am not sure what to do.

  • I enabled PLL2 and fed 10MHz into it. Now the Script runs and i have achieved my first lock to a GPS-1PPS.
    However the locks are far from consistent. I very often see the behavior that the PLL simply "gives up" locking and is stuck at an offset frequency.
    All i can do is hit "Soft-reset PLLs" to retry. The more people in the office, the less the chance for a lock. (not kidding, after lunch brek, with a full room, i have litterally zero chance for a lock)

    I have currently no idea how to proceed from this point. The whole board/software seems to show random behavior. I also think that the 750MHz inputs are quite an issue concerning signal integrity. Not sure how to satisfy those inputs. Nothing i do helps.

    The datasheet says, that even if the jitter-filter supresses a pulse, the next valid one is used for locking. However the PLL just stops (mostly after a pulse was filtered out). It seems to be stuck in the fast lock mode and does not transition into the regular control loop. If i let it sit long enough i see some frequency steering again - is there a multiple minute long timeout after a loss of reference?

    This is my current config that allows be to hit the "Run Script" button.

    AlanPLL2.7z

  • For the tcs files I sent, you do not need to "Update Frequency Plan" and do not need to "Run script" since I already did that already.  

    When you load the tcs file and it writes all registers to the DUT, you only need to trigger a soft-reset to initialize the device blocks.  Upon reset, it will follow the device start-up sequence per the datasheet.

    I'll respond to your latest update separately.

    Alan

  • How much cycle-to-cycle timing variation do you have on your 1-PPS signal from GPS?

    I am using a 1-PPS signal source from a Tek Arbitrary Waveform Generator (AFG, and am able to reliably achieve lock on both DPLLs after loading the tcs file, triggering a soft-reset, and waiting a couple minutes.  The DPLL lock was repeatable on each soft-reset event, and also after removing the 1-PPS input and reapplying it.

    I suspect your 1-PPS signal could have large wander, which could be causing DPLL1 to have difficulty achieving reliable lock.  If the input is disqualified before DPLL1 achieves initial lock, then it could prevent DPLL1 from ever achieving lock ... in this case, you'd have to manually trigger a soft-reset to restart the startup / lock sequence.  Could you please try using a 1-PPS source from a stable Lab function generator (instead of from a GPS source)?

    I will send an updated tcs file later that has the Interrupt bits configured and Interrupt flag output to one of the GPIO pins, so it can capture (latch) if the DPLL1 has detected a lost lock event, or if the input 1-PPS reference was lost (before DPLL1 achieves initial lock), or if DPLL1 has entered holdover (after DPLL1 achieved initial lock).  This could help you to troubleshoot the issue on your setup.

    Alan