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.

LMK04832: How to make the fixed deterministic phase between clock outputs in multi-boards?

Part Number: LMK04832

Dear Sir or Madam,

I want to make the fixed deterministic phase between clock outputs in all of the multi-boards.

First, please see the following my multi-boards configuration.

Unfortunately, in my testing experience, the phase relationship between the output clocks of FM boards is always changed on each power-up.

So, In order to get all of these multi-boards to work well, I have to do an alignment of the phase of the FM boards at every power up.

As you know, it's really unreasonable to adjust the phase at every time.

I would like to know how to get a fixed phase and synchronous phase between all FM boards, even after power off and on.

Please check the resistor map and programming sequence to achieve the synchronous divider of Device Clock Output as follows.

R0 (INIT)	0x000090
R0	0x000010
R2	0x000200
R3	0x000306
R4	0x000463
R5	0x0005D1
R6	0x000670
R12	0x000C51
R13	0x000D04
R256	0x010010
R257	0x01010A
R258	0x010200
R259	0x010340
R260	0x010420
R261	0x010500
R262	0x010601
R263	0x010711
R264	0x01080A
R265	0x01090A
R266	0x010A00
R267	0x010B40
R268	0x010C20
R269	0x010D00
R270	0x010E01
R271	0x010F11
R272	0x011010
R273	0x01110A
R274	0x011200
R275	0x011340
R276	0x011400
R277	0x011500
R278	0x011601
R279	0x011711
R280	0x011810
R281	0x01190A
R282	0x011A00
R283	0x011B40
R284	0x011C00
R285	0x011D00
R286	0x011E01
R287	0x011F11
R288	0x01200A
R289	0x01210A
R290	0x012200
R291	0x012340
R292	0x012420
R293	0x012500
R294	0x012601
R295	0x012711
R296	0x01280A
R297	0x01290A
R298	0x012A00
R299	0x012B40
R300	0x012C20
R301	0x012D00
R302	0x012E01
R303	0x012F11
R304	0x013001
R305	0x01310A
R306	0x013280
R307	0x013340
R308	0x013430
R309	0x013500
R310	0x013601
R311	0x013711
R312	0x013801
R313	0x013910
R314	0x013A03
R315	0x013BE8
R316	0x013C00
R317	0x013D08
R318	0x013E03
R319	0x013F01
R320	0x01408D
R321	0x014100
R322	0x014200
R323	0x014310
R324	0x01443F
R325	0x014568
R326	0x014608
R327	0x01470C
R328	0x014802
R329	0x014902
R330	0x014A00
R331	0x014B06
R332	0x014C00
R333	0x014D00
R334	0x014EC0
R335	0x014F7F
R336	0x015001
R337	0x015102
R338	0x015200
R339	0x015300
R340	0x015478
R341	0x015500
R342	0x015601
R343	0x015700
R344	0x015896
R345	0x015900
R346	0x015A96
R347	0x015BD4
R348	0x015C20
R349	0x015D00
R350	0x015E1E
R351	0x015F3B
R352	0x016000
R353	0x016101
R354	0x016240
R355	0x016300
R356	0x016400
R357	0x01650C
R361	0x016958
R362	0x016A20
R363	0x016B00
R364	0x016C00
R365	0x016D00
R366	0x016E13
R371	0x017310
R375	0x017700
R386	0x018200
R387	0x018300
R358	0x016600
R359	0x016700
R360	0x01687D
R1365	0x055500

 

Programming Sequence tor achieving the Sync of divider.

** 2.5MHz SYSREF is continuously delivered to the clkin0 from other LMK04832 on the main board.

(1) Set from 0x14311 to 0x14391 (SYSREF CLR)

(2) Set from 0x1443F to 0x14400 (SYNC_DISx and SYNC_DISSYSREF)

(3) Toggle the SYNC signal for at least the duration of one cycle of the 2.5MHz SYSREF.

(4) Set from 0x14400 to 0x1443F (SYNC_DISx and SYNC_DISSYSREF)

(5) Set from 0x14391 to 0x14311 (SYSREF CLR)

** It seems that difference phase between sysref and device clock is changed after doing this sequence. 

In my opinion, if each of the dividers is reset simultaneously to the SYSREF signal - rising edge? or falling edge? - it's always right to have a fixed phase relationship between SYSREF and the device clock, isn't it?

But it's always changed the phase difference between SYSREF and the device clock randomly after doing every this programming sequence.

I'm waiting for your kind reply.

Thank you,

Best Regards,

  • Hello Han,

    Unfortunately, the LMK04832 does not have EEPROM and synchronized outputs cannot be expected after a power cycle. Instead, every time the part is powered on, the SYNC dividers sequence (as you labeled above) needs to be completed to obtain synchronized outputs.

    Best,

    Andrea

  • Dear Andrea,

    Thank you for your prompt reply.

    I'm sorry, but would you tell me more information about SYNC dividers?

    I want to make a synchronized clock between three boards like FM#1, FM#2, FM#3 in the following diagram.

    Please see the following questions.

    (1) Could you tell me if tdFM1, tdFM2 and tdFM3 are going to become the same delay after the SYNC divider sequence?

    (2) On my side, it doesn't matter if tdFM1 to tdFM3 doesn't have the same delays(phases), as long as their respective delays are fixed and stable.

          But, in my testing experience, unfortunately delays of the tdFM1, tdFM2, tdFM3 are always varied with doing every SYNC dividers sequence.

          So, i had no choice but to do the calibration to synchronize the clocks on the modem side after every power on cycles.

          It's needed the time and man power to calibrate this every times with several equipment.

    Please one more check our configuration, resistor map, and Sync divider sequence whether it is good or not.

    And if possible, please give us your feedback. 

    Thank you,

    Warmest Regards,

  • Hello Han,

    Could you tell me if tdFM1, tdFM2 and tdFM3 are going to become the same delay after the SYNC divider sequence?

    What delay are you trying to represent with tdFM#? Are this the outputs, is each a different LMK04832 board/chip? The outputs of a singular chip/board will be phase aligned +- 60ps (skew spec in the datasheet) after following the sequence. Are you not seeing your outputs aligned after following the above sequence?

    On my side, it doesn't matter if tdFM1 to tdFM3 doesn't have the same delays(phases), as long as their respective delays are fixed and stable.

          But, in my testing experience, unfortunately delays of the tdFM1, tdFM2, tdFM3 are always varied with doing every SYNC dividers sequence.

          So, i had no choice but to do the calibration to synchronize the clocks on the modem side after every power on cycles.

          It's needed the time and man power to calibrate this every times with several equipment

    Let me know about the answer above. In the meantime, I'll test this in lab and review everything else and get back to you by the end of the week. If possible a .tcs file would be even better than the register map attached.

    Best,

    Andrea

  • Hello Han,

    Looked at everything in more detail and it looks like you did not fully setup your 0-delay properly. Set 0x13F to 21. You need to change the source of the PLL2_NCLK_MUX to FB Mux so you can ensure your input (SYSREF signal) is being phase synchronized to your outputs when you are completing the synchronization sequence.

    To clarify, first you need to synchronize your outputs to your SYSREF using 0-delay mode and then changing your SYSREF to be re-clocked by your distribution path. Below I have listed the different steps to make sure you are following the correct sequence to synchronize your boards:

    1. Need to setup 0-delay mode (as explained above) to ensure your outputs are synchronized to your input. This way you'll have synchronized inputs and outputs. For your case, you need cascaded 0-delay mode so the input relationship is done via OSCin.

    2. You need to synchronize your outputs. Make sure SYSREF_PD is turned on, SYNC_MODE is set to 0 and SYSREF_MUX is set to 0 too. Did not see this detail in your sequence above. I have included the correct sequence below for your reference.

    • Need to enable SYNC circuitry to synchronize the output dividers.
      • SYNC_POL = 0, SYNC_MODE = 1, SYSREF_MUX = 0, SYSREF_PD = 0, SYNC_EN = 1.
    • Clear local SYSREF DDLY.
      • SYSREF_CLR = 1 (forgot to mention this in the call).
    • Enable dividers to be accepted by SYNC pulse to synchronize.
      • SYNC_DISX = 0 for all outputs needed to be synced (i.e if outputs 3 and 8 need to be synced, then set SYNC_DIS2 = 0 and SYNC_DIS8 = 0).
    • Toggle SYNC_POL to generate sync pulse that triggers output dividers to be synced.
      • SYNC_POL = 1, SYNC_POL = 0.
    • Disable another rising edge that comes from SYSREF to reset the output dividers.
      • SYNC_DISX = 1 (i.e from previous example, set SYNC_DIS2 = 1 and SYNC_DIS8 = 1).
    • Release reset of local SYSREF digital delay.
      • SYSREF_CLR = 0.
    • Set SYSREF to desired operation.
      • SYSREF_MUX = 1, 2, or 3 (2 = SYSREF pulser and 3 = SYSREF continuous).

    3. Set up SYSREF (or the input to CLKin0, which is SYSREF in your case) to be re-clocked from the VCO distribution path. Do this by setting SYMC_MODE = 0 and SYSREF_MUX = 0.

    If interested, this app note covers the idea of synchronizing multiple devices. Even though it's talking about a different part, the LMK04832 is similar/has a lot of the same features. Wanted to add this in case you would find it helpful.

    Good luck,

    Andrea