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.

LMK03318: Configure the clock synthesizer LMK03318RHSR using uboot/kernel

Part Number: LMK03318
Other Parts Discussed in Thread: , USB2ANY

Hi,
The IC LMK03318RHSR is used in my custom board to generate 4 different clock frequencies(40MHz,25MHz,33.33MHz and 24MHz). This IC is connected to zynq 7010 processor through I2C lines.

There are two ways that I thought of :-
1. The configuration file that gets generated using TI software somehow can be used to configure the clock generator IC using uboot/kernel.
2.Or, Have the driver files for this particular IC in uboot and kernel , and using device tree somehow to configure it.

(Basically I want to configure the IC using my BSP . )
So is it possible to configure it in any of the ways that I have mentioned above. If yes, then how can I do that?

Suggest me how to approach this issue.

If there is already a reference or working solution pls share that too.

  • Hi Sameeksh,

    Our TICS Pro software can be used to generate a configuration for the LMK03318 with your four desired frequencies. Once that is finalized, the information can be exported into a file of register values.  The LMK does not have any "driver files" per se, but everything the device needs to know is in the registers. This information can then be sent to the device's live registers over I2C, which would need to be repeated after every power cycle, or alternatively the registers can be programmed once into the LMK03318's EEPROM and the device would start with the desired configuration every time. Since your processor has I2C communication either option could work. More details on register and EEPROM programming over I2C are in the datasheet.

    I'm not aware of a reference design for the LMK03318, but the LMK03318EVM has an example of interfacing the LMK03318 device with an onboard MSP430 microcontroller. Schematics are available in the EVM's User Guide (https://www.ti.com/lit/ug/snau186/snau186.pdf). The MSP430 on the EVM is an interface/relay for the TICS Pro software on an external computer as part of the USB2ANY system, and it does not try to program the device independently, but it may still be helpful to look at.

    Let us know if you have more questions.

    Best,

    Evan Su

  • Hi Evan Su,

    Going with what you have told.I downloaded the TICS Pro software and tried to configure the output clocks.
    The issue that I am currently facing is that I am not able to generate the exact clock frequencies.

    As per my schematics I need these frequencies,

    OUT0 = OUT1 = OUT2 = 40MHz

    OUT3 = Disabled

    OUT4 = 25MHz

    OUT5 = 33.3333MHz

    OUT6 = Disabled

    OUT7 = 24MHz

    But the thing is that I am not able to generate them accurately.

    This is the configuration that I provided in TICS Pro :-

    As per  schematic I am having a 25MHz oscillator as primary reference clk.

    In the below snap you can see the frequency that I was able to generate.

    Please suggest a way in which I can configure it to exact values.

    Thanks,

    Sameeksh M Shetty

  • Hi Sameeksh,

    It is much easier to configure the device using the "Wizard" page in case you have not tried it, you can specify your exact values and an algorithm will try to configure the device accordingly. There is one special consideration in your application so I have generated a file for you.

    I see that you have four desired output frequencies of 40 MHz, 25 MHz, 33.3333 MHz, and 24 MHz. 40, 25, and 24 (least common multiple is 600) can be derived from a valid VCO frequency of 4800 MHz  through integer division and are part of the same VCO frequency domain. 33.3333 MHz is technically not in the frequency domain of the others because I cannot multiply it by an integer to get exactly 4800 MHz or some other frequency in the VCO range that is a multiple of 600, but we can get extremely close to 33.3333 MHz by dividing 4800 MHz by 144.

    We could bypass 25 MHz from the reference input like you have in your current configuration, but I do not think it makes the PLL math any easier or better so I have still factored it in.

    I went to the "Wizard" page and entered in PRIREF = 25 MHz, SECREF = 50 MHz, and asked it to generate a frequency plan for OUT0, OUT1, OUT2, OUT3 = 40 MHz, OUT4 = 25 MHz, and OUT7 = 24 MHz. I left OUT5 empty because the algorithm cannot figure out a way to generate exactly 33.3333 MHz. After the frequency plan was implemented, I went to the Output page to manually configure the remaining outputs. I disabled OUT3, and for OUT5 I enabled the output and set the output divider to 144 / 2 = 72 because the PLL post-divider yields 4800 / 2 = 2400 MHz. So the final frequency plan is as follows:

    • OUT0, OUT1, OUT2 = 40 MHz
    • OUT3 = disabled
    • OUT4 = 25 MHz
    • OUT5 = 33.333333333333336 MHz
    • OUT6 = disabled
    • OUT7 = 24 MHz

    I made a couple of changes to the Input/PLL settings to match your screenshots and the configuration is attached below. Take a look and make any further desired modifications. Hope it helps.

    LMK03318_config_40_25_33p3333_24.tcs

    Best,

    Evan Su

  • Thank you so much.