Other Parts Discussed in Thread: LMK04906, CODELOADER
With a LMK04906 Evaluation Board (2011-12-06 v1.0), I've succeeded to up-convert a 40 MHz input clock into an 800 MHz output clock, with excellent performance characteristics. In this setup, I observed that both PLL1 and PLL2 were locked based on the LD pin. However, when using the LMK04906 chip in my PCB design, I'm no longer able to lock either PLL1 or PLL2, again based on the LD pin, despite my best efforts. I would greatly appreciate any suggestions and/or other help in understanding why the PLLs won't lock. Thank you in advance for your insight.
The register values that I'm using are given (in hexadecimal) below. Note that these values make the LMK04906 PLLs lock on the eval board but not on my custom board. Also note that three of the reserved bits conflict with the data sheet, as described in this post, but using either value doesn't appear to change the LD output behavior. I've as well tried changing various register settings, but none of the changes made the PLLs become locked (for example, I changed the PLL1_DLD_CNT from 10,000 to 1). And I'm confident that I'm programming the chip (on my custom board) successfully since I can, for instance, change the "LD_TYPE" value from "Output (push/pull)" to "Output inverted (push/pull)" and observe the LD pin toggle as expected.
REGISTER 00 : 0x00160060 (INITIAL RESET)
REGISTER 00 : 0x00140060
REGISTER 01 : 0x00140061
REGISTER 02 : 0x00140062
REGISTER 03 : 0x00140063
REGISTER 04 : 0x00140064
REGISTER 05 : 0x00140065
REGISTER 06 : 0x03340006
REGISTER 07 : 0x01310007
REGISTER 08 : 0x03030008
REGISTER 09 : 0x55555549
REGISTER 10 : 0x9642410a
REGISTER 11 : 0x0001100b
REGISTER 12 : 0x130c006c
REGISTER 13 : 0x0b13902d
REGISTER 14 : 0x1300000e
REGISTER 15 : 0x8000800f
REGISTER 16 : 0xc1550410
REGISTER 24 : 0x000000d8
REGISTER 25 : 0x02c9c419
REGISTER 26 : 0xaba8001a
REGISTER 27 : 0x1800021b
REGISTER 28 : 0x0010015c
REGISTER 29 : 0x008000dd
REGISTER 30 : 0x000000de
REGISTER 31 : 0x001f001f
Input Clock: The input clock is an OCXO with a nominal frequency of 40 MHz and a precision on the order of ppm. I'm confident that this input clock is reaching the chip's CLKin0/0* pins because I can see its LOS signal turn on when I remove the clock (and turn off when I re-apply the clock).
External VCXO: I'm operating the LMK04906 chip in the "Dual PLL, internal VCO" mode, and I'm using a 25 MHz external VCXO (Si550). I've probed the OSCout0/0* output and observed a clean 25 MHz clock, as expected. This tells me that the OSCin input to the PLL2 is indeed present.
External Loop Filters: For reference, I've provided a diagram to the bottom of this post with the external loop filters that I'm using on my custom board.
PLL1-related register settings:
- PLL1_R = 8, PLL1_N = 5
- PLL1_CP_POL = 1 [positive slope]
- PLL1_WND_SIZE = 3 (40 ns)
- PLL1_DLD_CNT = 10,000
PLL2-related register settings:
- PLL2_R = 1, PLL2_N = 6, PLL2_P = 0
- PLL2_CP_POL = 0 [negative slope]
- PLL2_WND_SIZE = 2 [3.7 ns]
- PLL2_DLD_CNT = 8,192
- EN_PLL2_REF_2X = 1 [reference frequency doubled]
Other main register settings:
- MODE = 0 [dual PLL, internal VCO]
- CLKout0,1,2,4,5_TYPE = 3 [LVPECL (1200 mVpp)]
- CLKout3_TYPE = 1 [LVDS]
- CLKoutX_DIV = 3
If you'd like to have more information about my setup, please don't hesitate to ask.
