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.

LMK01020 programming verification

Other Parts Discussed in Thread: LMK01000, LMK01020

To whom it may concern:

We are currently programming an LMK01020 using an FPGA directly over GPIO via the Serial Data Timing as outlined on page 8 of the LMK01000 family data sheet. Although we think we are sending the correct programming sequence, we would like verification from TI because we are not seeing outputs after successful programming. We are confident that the SPI module that we are using is valid because we see a noticeable current change when programming R14 POWERDOWN = 0. We write at 1 MHz. Our intended input clock is clock 1. I have copied our SPI settings in .mif format below. The SPI is written in line order below (00 to 09):

-----------------------------------------------------------------------------------------------------------------------------

WIDTH=32;

DEPTH=16;

ADDRESS_RADIX=HEX;

DATA_RADIX=BIN;

CONTENT BEGIN

00 : 10000000000000000000000000000000; --Program R0 with the reset bit (all other bits ignored)

01 : 00000000000000010000000000000000; --Program R0 to setup CLK0: enabled, bypassed, no divide, no delay

02 : 00000000000000110000000100000001; --Program R1 to setup CLK1: enabled, bypassed, divided by 2, no delay

03 : 00000000000000110000001000000010; --Program R2 to setup CLK2: enabled, bypassed, divided by 4, no delay

04 : 00000000000000010000000000000011; --Program R3 to setup CLK3: enabled, bypassed, no divide, no delay

05 : 00000000000000110001000000000100; --Program R4 to setup CLK4: enabled, bypassed, divided by 32, no delay

06 : 00000000000000110000010000000101; --Program R5 to setup CLK5: enabled, bypassed, divided by 8, no delay

07 : 00000000000000110000100000000110; --Program R6 to setup CLK6: enabled, bypassed, divided by 16, no delay

08 : 00000000000000110000101000000111; --Program R7 to setup CLK7: enabled, bypassed, divided by 20, no delay

09 : 01101000000000000000000000001110; --Program R14: CLKin_SELECT = clock 0, EN_CLKout_Global = 1, POWERDOWN = 0

0A : 00000000000000000000000000000000; --Intentionally left for expansion

0B : 00000000000000000000000000000000;

0C : 00000000000000000000000000000000;

0D : 00000000000000000000000000000000;

0F : 00000000000000000000000000000000;

END;

 -----------------------------------------------------------------------------------------------------------------------------

 

I have included some screenshots of the hardware design, showing the input and some of the outputs. The output configuration is the same across all 8 outputs with the exception of one channel. On seven of the channels, the output is designed for LVPECL termination schemes, AC-coupled, then converted to LVDS configuration for interfacing to an FPGA. On one of the channels, both sides of the AC-coupling are terminated using the LVPECL termination scheme. The outputs are the same across the board. One issue to note is the use of 2.5 V on the SPI lines as those are what is available through the FPGA HSMC and the datasheet specifies that these voltages are appropriate since the VIH is 2.0 V for the SPI lines. Please correct me if that is incorrect.

  

  • Hi Benjamin,

    The BIAS pin shouldn't be directly connected to VCC3V_CLK.  The BIAS pin should be connected through a 100 nF bypass cap to VCC.  See Figure 2 in the datasheet.

    Also, check the SYNC* pin is not being driven low.  SYNC* should be pulled high for normal output operation.

    Regards,
    Alan

  • Alan,

    We have made the suggested change in hardware and verified that the SYNC* signal is driven high.

    After doing this, we are still not experiencing any outputs on the clock lanes. Do you have any other debugging suggestions?

    Thank you,

    Ben

  • It appears you've programmed CLKout0_DIV=0 and CLKout3_DIV=0, which are invalid values.  Try programming these register fields to a valid value (=1).  The output will not be divided since the CLKout[0,3]_MUX is set to Bypassed mode.

    Also, try programming register R9 to the values in the datasheet.

    Also, check to make sure all the power supply pins are within tolerance.

    Regards,
    Alan

  • Alan,

    Thank you for the support. After changing the indicated invalid values, we verified successful operation of the chip.

    Ben