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.

LMK5B33414: Program through Linux application

Part Number: LMK5B33414
Other Parts Discussed in Thread: LMK5C33414A, AM6412, LMK5C33216

Hi Experts,

I have connected LMK5C33414A with AM6412 processor through SPI lines. I used processor-sdk for AM64x.

spidev driver used for the node. 

I want to program LMK chip using .tcs file from the Linux environment. 

Please suggest application for programming LMK through SPI from the Linux environment.

  • Hi Karthick,

    What details are you looking to have specifically? We have SPI programming details listed in the datasheet. 

    We do not have Linux drivers at this time.

    Regards,

    Jennifer

  • Hi Jennifer,


    I have customized tcs file for some specific purpose. I want to program(dump the register values into LMK) for start-up clocking requirements.

    How can we write those register values through SPI ?

  • Hi Karthick,

    Can you please provide your .tcs file? I would like to know which TICSPRO profile you are using. 

    We have timing diagrams in the LMK5C33216 datasheet. 

    You can export the register dump from TICSPRO and program the registers through SPI.

    For more details see: https://www.ti.com/lit/gpn/lmk5c33216#page=74

    Regards,

    Jennifer

  • Hi Jennifer,

    I have attached the tcs file. I can export register map using TICS pro and have a hexdump .txt file.

    I have tried with sample application for reading the register values but i get the value 0x00.

    SPI DEVICE: /dev/spidev1.0

    MODE: MODE0

    SPEED: 400000 Hz

    FIRST: MSB

    ADDRESS: 0x3

    READ DATA: 0x00 0

    Expected value: 0x01

    could you help me to read registers from linux console.

    Do we have any commands or userspace linux software for read the registers.


    ROM6.tcs

  • Hi Karthick,

    What GPIO# are you using for SPI readback? The .tcs file you shared does not show.

    Are you able to confirm the SPI writes are going through? In other words, if you change the output enable register (such as from enable to disable) via SPI, do you see the outputs get disabled/enabled?

    Regards,

    Jennifer 

  • Hi Jennifer

    After doing some changes in hardware, we can able to program through SPI.

    But in LMK output 9 and 11 i'm not getting the frequency 7.68 MHz. Rest all as expected.

    Can you suggest to get the output clock in out 9 and 11 ?

    Here I attached the .tcs and hexdump I used.

    ROM6_all_on.tcs

    HexRegisterValuesfinal.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    R0 0x000010
    R1 0x00010B
    R2 0x000240
    R3 0x000304
    R16 0x001012
    R18 0x0012B9
    R19 0x001300
    R20 0x001400
    R21 0x0015A1
    R22 0x00163D
    R23 0x001700
    R24 0x001809
    R25 0x001901
    R26 0x001A36
    R27 0x001B00
    R28 0x001C00
    R29 0x001D00
    R30 0x001E00
    R31 0x001F00
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi Karthick,

    The reason you are not getting 7.68 MHz clocks is because they are created using "SYSREF."  I presume you are using JESD204B or C?

    SYSREF is traditionally just a few pulses that are sent out when requested by GPIO (if GPIO is configured as SYSREF request) or by programming SYSREF_REQ_SW = 1 (this is a self clearing bit).

    If you really want a continuous 7.68 MHz clock, you must set OUT_x_y_SR_MODE = 1 (Continuous) for OUT8/9 and OUT10/11.  So as below:

    R1171 0x049305
    R1203 0x04B301

    Note you already have OUT12/13 with OUT_12_13_SR_MODE = 1 (Continuous) for the 20.48 MHz clock.

    Running clocks in this fashion results in more crosstalk as there are more clocks running 'very close together' --- the traditional JESD204B/C use case only them on momentarily for alignment then turns off to reduce crosstalk/power.

    73,
    Timothy