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.

LMX2572: Programming sequencing of LMX2572 chip to generate RF out

Part Number: LMX2572
Other Parts Discussed in Thread: LMX2594EVM

Hi, I am trying to do PLL lock using SPI thorugh STM microcontoller for LMX2572, i am facing an issue to lock PLL where i am using 125 MHz (Fosc) and trying to calibtrate the using the sequence given in the data sheet. where i have reset the R0 register bit 1 to high(1) and then wrote the following sequence in code to lock the PLL:

R0 = 0x221E,

R36 = 0x240030,

R84 = 0x540001,

R85 = 0x55D800,

R82 = 0x522800,

R80 = 0x50CCCC,

R79 = 0x4F004C,

R100 = 0x642710,

R104 = 0x682710,

R0 = 0x219C.

here is the sample how i wrote in code for R80:
HAL_Delay(20);

txBuff[0] = 0x50; txBuff[1] = 0xCC; txBuff[2] = 0xCC; //R80
HAL_GPIO_WritePin(GPIOA, CSB_PLL_Pin, RESET);

HAL_SPI_Transmit(&hspi2,txBuff,1,HAL_MAX_DELAY) //Address

HAL_SPI_Transmit(&hspi2,&txBuff[1],2,HAL_MAX_DELAY) //Data
HAL_GPIO_WritePin(GPIOA, CSB_PLL_Pin,SET);
HAL_Delay(20);

  • Hi Vanshaj, 
    LMX2572 requires registers be programmed from top to bottom. Please see attached snippet from page 21 of device datasheet: 

    Regards, 

    Vicente 

  • Hi Vicente,

    If i am doing step 5 that is resting of registers,

    what i have assuemed that registers are being reset to there default value and then i just have to program the registers that needed to be changed according to my desired output.
    or should i reset all 126 register and then program them according to my desired output?

    Is my assumption is right or i have to do the later one?

    Regards,

    Vanshaj

  • Hi Vanshaj, 
    That is correct, step 5 will ensure all registers are reset to their Silicon Default values. 
    Now you only need to program the registers you need for your desired output/config. 

    Refer to sections 7.5.1.2 & 7.5.2 in DS for more details on which registers to program. This varies by application. 

    Regards, 

    Vicente

  • i have got few more queries

    1. As i was going through the forum i found some more points to do after reset in this link Remove reset then program the registers in desecending order. I have read the data sheet and i am not going to do blocking mode programming of registers.

    2. As i mentioned the registers and the value i am programming to genetrate Rfout in sequence of R0->R36->R100->R104->R82->R84->R85->R79->R80->R0 yet not getting the RFout can you see if there is any reason for no RFout in this sequence

  • Hi Vanshaj, 
    Removing reset is not necessary given it's a self clearing bit: 

    I am curious more on your application, it looks like some of those registers are specific to ramping only. Are you trying to generate a ramp or just specific frequencies?

    I have attached the LMX2594EVM default, if you program your device using this config and achieve a 3GHz output? 

    HexRegisterValues2820125MHzin.txt
    R125	0x7D2288
    R124	0x7C0000
    R123	0x7B0000
    R122	0x7A0000
    R121	0x790000
    R120	0x780000
    R119	0x770000
    R118	0x760000
    R117	0x750000
    R116	0x740000
    R115	0x730000
    R114	0x727802
    R113	0x710000
    R112	0x700000
    R111	0x6F0000
    R110	0x6E0000
    R109	0x6D0000
    R108	0x6C0000
    R107	0x6B0000
    R106	0x6A0007
    R105	0x694440
    R104	0x682710
    R103	0x670000
    R102	0x660000
    R101	0x650000
    R100	0x642710
    R99	0x630000
    R98	0x620000
    R97	0x610000
    R96	0x600000
    R95	0x5F0000
    R94	0x5E0000
    R93	0x5D0000
    R92	0x5C0000
    R91	0x5B0000
    R90	0x5A0000
    R89	0x590000
    R88	0x580000
    R87	0x570000
    R86	0x560000
    R85	0x55D800
    R84	0x540001
    R83	0x530000
    R82	0x522800
    R81	0x510000
    R80	0x50CCCC
    R79	0x4F004C
    R78	0x4E0001
    R77	0x4D0000
    R76	0x4C000C
    R75	0x4B0800
    R74	0x4A0000
    R73	0x49003F
    R72	0x480001
    R71	0x470081
    R70	0x46C350
    R69	0x450000
    R68	0x4403E8
    R67	0x430000
    R66	0x4201F4
    R65	0x410000
    R64	0x401388
    R63	0x3F0000
    R62	0x3E00AF
    R61	0x3D00A8
    R60	0x3C03E8
    R59	0x3B0001
    R58	0x3A9001
    R57	0x390020
    R56	0x380000
    R55	0x370000
    R54	0x360000
    R53	0x350000
    R52	0x340421
    R51	0x330080
    R50	0x320080
    R49	0x314180
    R48	0x3003E0
    R47	0x2F0300
    R46	0x2E07F0
    R45	0x2DC61F
    R44	0x2C1FA3
    R43	0x2B03E8
    R42	0x2A0000
    R41	0x290000
    R40	0x280000
    R39	0x2703E8
    R38	0x260000
    R37	0x250305
    R36	0x24002F
    R35	0x230004
    R34	0x220010
    R33	0x211E01
    R32	0x2005BF
    R31	0x1FC3E6
    R30	0x1E18A6
    R29	0x1D0000
    R28	0x1C0488
    R27	0x1B0002
    R26	0x1A0808
    R25	0x190624
    R24	0x18071A
    R23	0x17007C
    R22	0x160001
    R21	0x150409
    R20	0x144848
    R19	0x1327B7
    R18	0x120064
    R17	0x110096
    R16	0x100080
    R15	0x0F060E
    R14	0x0E1820
    R13	0x0D4000
    R12	0x0C5001
    R11	0x0BB018
    R10	0x0A10F8
    R9	0x090004
    R8	0x082000
    R7	0x0700B2
    R6	0x06C802
    R5	0x0530C8
    R4	0x040A43
    R3	0x030782
    R2	0x020500
    R1	0x010808
    R0	0x00219C
    

  • Hi Vicente,

    Thanks for your reply and help, I have resolved my issue. My goal here is to lock the PLL frequency and then do the rampimg for that certain range.

    Issue resolved by reprograming the 126 Registers in sequence for configuration and then changing the register for generating desired output

    Regards 

    Vanshaj