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.

LMX2581EVM: SPI programming doesn't seems to lock

Part Number: LMX2581EVM
Other Parts Discussed in Thread: CODELOADER


I have successfully loaded the registers with CodeLoader software and RF output looks great with USBANY interface. Now, I tried to program SPI directly to the EVM pins with wires using standard LINUX SPI interface (the ZYNQ built-in SPI interface) but it does not seem to lock the PLL. I checked registers programmed and found I have written exactly the same things as CodeLoader's one analyzed by logic analyzer.

Here are what I have written. 10MHz ref, R=5, PD=2000, N=1250, K=0, channel divider by 2.

R5 (INIT) 0x40870010
R15 0x021FE80F
R13 0x4082C10D
R10 0x210050CA
R9 0x03C7C039
R8 0x207DDBF8
R7 0x00082317
R6 0x000004D6
R5 0x0010A805
R4 0x00000004
R3 0x20017683
R2 0x0C000112
R1 0xC4000051
R0 0x44E20000

As soon as registers were written, current changes from 37mA to 265mA. But the LD LED does not lit. I think I am missing one small step. Can you check what is going on?


  • Dear Suh,

    thank you for reaching out for help.

    here is what I recommend:

    1) move on to TiCs PRO (from as EVM software.
    2) make sure you can obtain a lock and all is good.
    3) export from the tool the HEX value map needed. The POR (power on reset) value are not to be confused with the default recommended. We will in many cases require a default value that is not the POR value so these needs to be written over SPI. TiCS PRO show the register written in the bottom left window.
    4) You can then safely move to your platform with a working example and make sure you do not have SPI signal integrity issues.

    I hope this helps.

    Regards, Simon.
  • Suh,
    Aside from the above things, also ensure a few things if this is from a cold power up.

    Ensure that the LDOs are powered up before you write the last R0 register. In other words, when you write R5 (init), assume that the LDOs just start powering up. In the power up section 8.5.2 in the datasheet, note that it recommends programming a the regsiters, then wait 20 ms, then program R0. This is to ensure that the internal part LDOs are powered up before you write R0 to activate the calibration. Also note that before the 20 ms wait, the last register written is R0. This is because after R5 (init) is written, all the LDOs are turned on EXCEPT the one for pin 19, which turns on when R0 is written.

    In summary, take the sequence you have and add an additional programming of register R0 at the end. If you programming speed is fast, you might also add an additional wait before this last programming of register R0.

  • Hi Simon,
    I just removed R5(INIT) from the sequence as shown in TICs Pro and it worked out! RF output looks great with it!!
  • Suh,
    Glad to hear this has been resolved.