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.

LMK04828: Can Not Output SDCLKoutY

Part Number: LMK04828
Other Parts Discussed in Thread: AFE5828,

Hello, I need to generate 1x, 16x clocks for AFE5828 Continuous Wave (CW) Path, whose 1x clock must be lower than 8MHz. Besides, I also need to generate SYSREF clocks to multi AFE5828 devices for JESD transmitting purposes. 

The figure below shows our system layout around LMK04828L: 

(LMK04828 in our system operates in single-loop mode.)

 

Thus, I fellow an <Setup of SYSREF Example> try to output SYSREF clocks as described in datasheet:  

The following procedure is a programming example for a system operating with a 3000-MHz VCO frequency. Use DCLKout0 and DCLKout2 to drive converters at 1500 MHz. Use DCLKout4 to drive an FPGA at 150 MHz. Synchronize the converters and FPGA using two SYSREF pulses at 10 MHz.

1. Program registers 0x000 to 0x1fff as desired. Key to prepare for SYSREF operations (see Recommended Programming Sequence):

    1. Prepare for manual SYNC: SYNC_POL = 0, SYNC_MODE = 1, SYSREF_MUX = 0 
    2. Setup output dividers as per example: DCLKout0_DIV and DCLKout2_DIV = 2 for frequency of 1500 MHz. DCLKout4_DIV = 20 for frequency of 150 MHz.
    3. Setup output dividers as per example: SYSREF_DIV = 300 for 10 MHz SYSREF 
    4. Setup SYSREF: SYSREF_PD = 0, SYSREF_DDLY_PD = 0, DCLKout0_DDLY_PD = 0, DCLKout2_DDLY_PD = 0, DCLKout4_DDLY_PD = 0, SYNC_EN = 1, SYSREF_PLSR_PD = 0, SYSREF_PULSE_CNT = 1 (2 pulses). SDCLKout1_PD = 0, SDCLKout3_PD = 0 
    5. Clear Local SYSREF DDLY: SYSREF_CLR = 1. 

2. Establish deterministic phase relationships between SYSREF and the device clock for JESD204B:

    1. Set device clock and SYSREF divider digital delays: DCLKout0_DDLY_CNTH, DCLKout0_DDLY_CNTL, DCLKout2_DDLY_CNTH, DCLKout2_DDLY_CNTL, DCLKout4_DDLY_CNTH, DCLKout4_DDLY_CNTL, SYSREF_DDLY.
    2. Set device clock digital delay half steps: DCLKout0_HS, DCLKout2_HS, DCLKout4_HS.
    3. Set SYSREF clock digital delay as required to achieve known phase relationships: SDCLKout1_DDLY, SDCLKout3_DDLY, SDCLKout5_DDLY.
    4. To allow SYNC to effect dividers: SYNC_DIS0 = 0, SYNC_DIS2 = 0, SYNC_DIS4 = 0, SYNC_DISSYSREF = 0 
    5. Perform SYNC by toggling SYNC_POL = 1, then SYNC_POL = 0. 

3. When the dividers are synchronized, disable SYNC from resetting these dividers. It is not desired for SYSREF to reset it's own divider or the dividers of the output clocks. a. Prevent SYSREF from affecting dividers: SYNC_DIS0 = 1, SYNC_DIS2 = 1, SYNC_DIS4 = 1, SYNC_DISSYSREF = 1.

4. Release reset of local SYSREF digital delay. a. SYSREF_CLR = 0. Note this bit needs to be set for only 15 clock distribution path cycles after SYSREF_PD = 0.

5. Set SYSREF operation. a. Allow pin SYNC event to start pulser: SYNC_MODE = 2. b. Select pulser as SYSREF signal: SYSREF_MUX = 2.

6. After the procedure is complete, asserting the SYNC pin or toggling SYNC_POL results in a series of 2 SYSREF pulses. 

 

However, there is not any from SDCLKoutY, Y = 1 ~ 13.

To check the digital lock detect of PLL2, I also measured output waveform from Status_LD2 pin (Pin 48) under "PLL2_LD_MUX = 0x02" and "PLL2_LD_TYPE = 3".

When I set PLL2_DLD_CNT to 1, 2, 5, the measured Status_LD2 waveforms are as follows: 

PLL2_DLD_CNT = 1 

 

PLL2_DLD_CNT = 2 

 

 

PLL2_DLD_CNT = 5

 

 

I have measured OSCout (Pin 40, 41) under “OSCout_MUX = 0” and “OSCout_FMT = 1”. The measured OSCout waveform has the same frequency as that of OSCin signal.

Moreover, I have also measured waveform of SDCLKoutY under “SYSREF_CLKin0_MUX = 1” and “input 200MHz clock into CLKin0”. In this case, the SDCLKoutY did output 200MHz clocks.

 

If there is any mis-setting of LMK04828 leading to the SDCLKoutY can not output clocks? Thanks.

  • Hi There,

    Did you get correct 1.5GHz and 150MHz clock from out0, out2 and out4?

    You are using PLL2, did you connect the 1st and 2nd pole of loop filter to CPout2 pin?

    If PLL2 is locked, LD pin output should stay at 3.3V, it is not a periodic signal.

  • I found that the 0x140 and 0x144 register of LMK04828 in our system can NOT be normally accessed. (The readout values from register 0x140 and 0x144 are always 0x00.)

    However, the readout values from other registers are the values we wrote into. 

    If there is any limitation of specific steps to read/write 0x140 and 0x144 of LMK04828? Thanks.   

  • Hi There,

    Both registers are R/W, just like other R/W registers, there is no special requirement to write or read.

  • Sorry, I found that I didn't program the SDIO pin featured output into push-pull. 

    I found a register setting profile that LMK04828 in our system can successfully output clocks with desired frequency and make PLL2 DLD stably be pulled high. 

    The path of our register setting profile is 


    The whole register setting profile is as follow: 
    1. Set Rx14A = 0x02 (We call register 0x14A as Rx14A.)

    2. Reset pin pull high, and then pull low. 

    3. Set Rx000 = 0x00 

    4. Write Rx100 ~ Rx137

    Rx100 = 0x7e

    Rx103 = 0x0

    Rx104 = 0x26

    Rx105 = 0x1

    Rx106 = 0x70

    Rx107 = 0x11

    Rx108 = 0x1e

    Rx10b = 0x0

    Rx10c = 0x20

    Rx10d = 0x1

    Rx10e = 0x70

    Rx10f 0x11

    Rx110 = 0x1

    Rx113 = 0x0

    Rx114 = 0x20

    Rx115 = 0x1

    Rx116 = 0x70

    Rx117 = 0x11

    Rx118 = 0x1

    Rx11b = 0x0

    Rx11c = 0x20

    Rx11d = 0x1

    Rx11e = 0x70

    Rx11f = 0x11

    Rx120 = 0x74

    Rx123 = 0x0

    Rx124 = 0x34

    Rx125 = 0x1

    Rx126 = 0x71

    Rx127 = 0x11

    Rx128 = 0x1

    Rx12b = 0x0

    Rx12c = 0x20

    Rx12d = 0x1

    Rx12e 0x70

    Rx12f = 0x11

    Rx130 = 0x1

    Rx133 = 0x0

    Rx134 = 0x20

    Rx135 = 0x1

    Rx136 = 0x70

    Rx137 = 0x11

    5. Write Rx138 ~ Rx165

    Rx138 = 0x21

    Rx139 = 0x3

    Rx13a = 0x2

    Rx13b = 0x58

    Rx13e = 0x1

    Rx13f = 0x2

    Rx140 = 0x80

    Rx143 = 0x19

    Rx144 = 0xff

    Rx145 = 0x7f

    Rx147 = 0x2

    Rx148 = 0xb

    Rx149 = 0x13

    Rx153 = 0x0

    Rx154 = 0x1

    Rx155 = 0x0

    Rx156 = 0x1

    Rx157 = 0x0

    Rx158 = 0x1

    Rx159 = 0x0

    Rx15a = 0x2

    Rx15c = 0x0

    Rx15d = 0x1

    Rx15f = 0xb

    Rx160 = 0x0

    Rx161 = 0x4

    Rx162 = 0x49

    6. Write Rx171, Rx172, Rx17C, Rx17D 

    Rx171 = 0xAA
    Rx172 = 0x02
    Rx17C = 21
    Rx17D = 51

    7. Write Rx166 ~ Rx1FFF

    Rx166 = 0x0

    Rx167= 0x0

    Rx168 = 0xf

    Rx169 = 0x59

    Rx16a = 0x0

    Rx16b = 0xff

    Rx16e = 0x13

    Rx173 = 0x0

    Rx1ffd = 0x0

    Rx1ffe = 0x0

    Rx1fff = 0x53 

    I'm not sure if this setting leads to clock jitter or degrades poor noise performance. 
    May I get some suggestions? Thanks.