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.

LMK05318: PRIREF is recognized as valid, but the DPLL doesn't lock to the 1pps reference input signal

Part Number: LMK05318

I am working on a clock synchronized with a GPS signal. This clock will be the input clock of an ADC.

I am testing the LMK05318 through the evaluation board.

If I apply a voltage divider to the original PPS signal (the amplitude of the signal applied to the EVM is 1.76V), LMK05318 toggles (roughly every two seconds) between the holdover state and the PRIREF state. Even when the PRIREF is valid, both the LOPL_DPLL and the LOFL_DPLL flags are checked (the DPLL doesn't lock to the 1pps signal).

Instead, if I apply to the EVM the original 3.3V 1PPS signal, LMK05318 stays in the PRIREF state until the GPS signal is present and then with a delay (in some cases the delay is 40 seconds) returns in the holdover state. However, also in this condition, once the module has recognized the PRIREF signal as valid, the DPLL doesn't lock to the 1 pps signal (both the LOPL_DPLL and the LOFL_DPLL flags remain checked).

As output frequency I have set 4Hz in order to view better the relationship between the 1pps input signal and the LMK05318 output frequency. However, in the real application the output frequency will be 33kHz.

I attach the two configuration files one for the 4Hz output frequency and the other for the 33kHz output frequency. The behaviour observed is the same for both the frequencies generated

In the evaluation board I am using the standard 48.0048MHz XO.

I have applied to the PRIREF input the 1pps signal coming from the module NEO-M8T.

The other inputs (PRIREF_N , SECREF_P and SECREF_N ) are pulled down through a 1k resistor.

The amplitude of the PPS signal coming from the GPS module is 3.3V.

Is it correct in this case to choose "CMOS" as PRIREF interface type?

At the moment I am using only the amplitude validation option.

However, based on another post present in this forum, I am not clear if I should use the 1PPS Phase Detector validation option.

What else I am missing? Thanks in advance

33kHz_1pps.tcs4Hz_1pps.tcs

  • Hi Gabriele,

    Just letting you know that I'm working on a software update for 1pps configuration. There're a few things to note for 1pps. Let me summarize the procedures (it'll become easier after the software update) and get back to you tomorrow.

    Regards,
    Hao

  • Hi Gabriele,

    Please find attached. LMK05318 1pps 2-7-2020.zip

    Regards,
    Hao

  • Sorry for the delay in the reply.

    I have made some tests using the configuration file you provide, I have followed the instructions present in the .word file you attached.

    I have modified the XO frequency to 48.0048MHz as I am using the XO present on the EVM and I have changed the PRI_REF interface to CMOS.

    I have manually set registers R286,R287,R288 and R289 as described in the .word document.

    However, in this configuration the Primary Reference is always considered invalid and therefore the DPLL does not lock to the reference. The flag BAW_LOCK becomes one almost immediately after having powered up the board (I have written the configuration in EEPROM).

    I have tested the configuration also with different 1PPS signal pulsewidths  (10us, 1ms,20ms,200ms and 500ms) as the GPS module (NEO-M8T) we are using is able to configure the output pulsewidth. 

    I attach a screenshot of the status window. It is the same for all the tests I have made.

    What I am missing?

    Thanks in advance

     1pps default 02-12-2020.tcs

  • Hi Gabriele,

    I'm afraid that the on-board 48.0048MHz XO cannot be used for 1pps configuration. This is because 1pps configuration requires very narrow loop bandwidth (0.01Hz). If the XO has too much wander, then the DPLL will have trouble tracking the phase error. So the 1pps phase detector requires a stable XO because it takes in the jitter of 1pps reference in periods of XO clock. If the XO input has too much wander then the PRIREF_VALSTAT won't be cleared. 

    A regular TCXO or OCXO with 4.6ppm frequency accuracy should work. For sanity check, you can use an external signal generator which typically has an OCXO inside.

    Besides, the input type for 1pps PRIREF or SECREF needs to be SE(50Ohm) instead of CMOS.

    Regards,
    Hao

  • Please see attached for XO/reference frequency accuracy requirements.1pps phase detection calculator.xlsx

    Regards,
    Hao

  • Thanks for the information.

    I have applied a 20MHz oscillator  with a frequency accuracy of +/-200ppb (M200F-020.0M) to the XO_P. As suggested in the LMK05318EVM User's Guide, I have removed C80 , soldered C81 (0.1uF) and applied the XO output to the XO_P terminal.

    Even with this setup and applying to the PRIREF_P input a 1pps signal  with a pulsewidth of 100ms ( the signal is generated by the NEO M8-T GPS module), the 1pps signal is not considered as a valid reference and therefore the locking condition is not reached.

    Instead of applying the GPS output signal to the PRIREF_P input I have also tested the configuration with  a 1Hz signal 20% duty-cycle coming from a waveform generator. However, also in this condition the PRIREF is not considered valid and the locking condition is not reached..

    Do you suggest making some tests with another oscillator?

    Thanks in advance

    1pps_in20MHz_out_2Hz.tcs

  • Sorry for the late response. The oscillator is good enough. Before formal Ticpsro update release, please use this profile:LMK05318.zip

    In Ticspro tool bar, go to "select device" -> "import user device" and select the zip file (don't unzip it), then "select device" -> "user devices" -> "lmk05318". Upon loading this profile, go to "default configuration" in the tool bar and load "1pps input" default. You can change XO frequency, click "calculate frequency plan", then click "run script". 

    Let me know if you still can't get valid PRIREF.

    Regards,
    Hao

  • Thanks for the reply. I have uploaded the default configuration "1pps input".

    I have made two tests: one applying a 1Hz square wave  with 20% duty cycle coming from a function generator and the other applying a 1Hz square wave with a Ton of 10ms coming from the GPS module NEO M8-T.

    The XO source is always the 20MHz +/-200ppb of the previous post section.

    Unfortunately for both the input configurations, when the "1pps Phase Detector" flag is checked (the threshold is set at 63 3.15udeg) the primary reference is still considered invalid.

    Instead, only if I uncheck this flag, the primary reference becomes valid but the DPLL doesn't reach the locking condition.

    I understand that the "1pps Phase Detector threshold" takes into account the jitter of the reference input clock with respect to the XO clock, but I don't understand how this parameter is calculated and therefore how to set it (indipendently from the settings present in the default configuration)

  • Hi Gabriele,

    Please refer to datasheet 9.3.7.2.6 for illustration. More details are described below:

    1. The allowed time interval between current edge and the next valid edge of PRIREF/SECREF should be within (actual XO period) * (REF_VALID_CNT +/- REF_VALID_THR). 

    2. If the 1pps reference is absolutely accurate, then this time interval error (+/- REF_VALID_THR * XO_period) consists of XO frequency drift, wander and accumulated jitter, where by definition wander does not include frequency drift. If I ignore wander and accumulated jitter and consider only the frequency drift, then after some math, maximum allowed ppm error = REF_VALID_THR / (nominal XO frequency) * 1e6. For example, with 38.88MHz XO and REF_VALID_THR = 63, the maximum allowed ppm error = 1.62ppm.

    Can you please attach the .tcs file you used? I'll quickly check a few registers.

    Regards,
    Hao

  • Thanks for the explanation. I attach the .tcs file

    In order to generate the 1pps signal, I have used a GPS module (NEO M8T) with a timing accuracy of 20ns and a time pulse jitter of 11ns.

    I have also test the configuration by applying a 1Hz 20% duty cycle square wave coming from a signal generator with 50ppm accuracy

    1_pps_20MHz.tcs

  • Sorry I missed this earlier, but input doubler or R divider should not be used for 1pps. I've disabled both and updated the configuration:1_pps_20MHz_Hao_Z.tcs

    If you do it yourself, make sure to update the XO input box by hitting enter. Because that will update this register, which is critical for input validation. This counter should be the same with XO frequency.

    Regards,
    Hao

  • Thanks for the reply and sorry for writing again. Probably I am missing something. I have put the R divider equal to 3 in order to make working APLL1 in fractional mode using a 20MHz oscillator according to the following post. https://e2e.ti.com/support/clock-and-timing/f/48/t/885285?tisearch=e2e-sitesearch&keymatch=LMK05318.

    However, with the new tcs file sent on 25 March I still see that the reference is not validated. Before testing the system, I have made both the frequency calculation plan and the script operation. After these two operations, I have written the registers values in EEPROM and then I have powered-off and powered on the system.

    As I am not sure if APLL1 should operate in fractional mode (as described in page 27 of the datasheet), in these days I have made other tests with these two oscillators: one (7N-19.440MBP-T) works at 19.44 MHz (with 0.28ppm frequency accuracy) and the other (ECS-TXO-2520-33-240-AN-TR) works at 24 MHz (with 2.5ppm frequency accuracy).  For these tests I haven’t changed the other settings present in the last file attached to the reply of 25 March and before making the tests I have repeated the operations described above. However, also in these conditions, the reference is still not validated.

    Another doubt I have, is related to the kind of the optimal reference source to be used at least for making tests and see that the system is able to validate and to lock to the reference. Up to now I have used these two sources:

    -       1Hz signal generated by the module NEO-M8T (the module has a timing accuracy of 21ns and a maximum jitter of 11ns)

    -       1Hz 20% duty cycle signal generated by the function generator BK Precision 4054B with an accuracy of 25ppm

  • Hi Gabriele,

    Yes you are right that the 20MHz XO is invalid if the XO doubler is not enabled. This is because 2500e6/20e6 is an integer and the DPLL won't be able to work properly. However, that doesn't affect the PRIREF/SECREF validation. There are a few possibilities that I can think of right now:

    1. The configuration is still invalid. I'll verify that on the bench but since I've double checked it, there should be no problem.

    2. There's still too much frequency error between PRIREF/SECREF and XO. There are two parts of frequency error: one is initial frequency error and the other is frequency variation caused by environment temperature, vibration and aging. Even if the frequency variation is fine, it is possible that the initial frequency error is too much. For example, if the XO frequency is 20.0001MHz +/- 1ppm, but in the software it's entered as 20MHz, then that 0.0001MHz creates another 5ppm error. A good sanity check is to use a signal generator as XO input, then synchronize the frequency of XO and PRIREF.

    3. There's too much noise at PRIREF/SECREF input. This a bit complicated to explain. Put it this way, for very low frequency input (which is true for 1pps input), the input will decay to hysteresis (+/- 50mV). So if there's some AC noise higher than +/-50mV, then it'll corrupt the input detection. This is improved in LMK05318B, which will be released very soon. But if you're using a TI EVM then this shouldn't be an issue.

    Attached is a python notebook that I created for phase validation calculation. LMK05318 1pps calculation.zip

    Regards,
    Hao