SNAA449 June   2025 LMX2820

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Various Options in Instant Calibration
    1. 2.1 When Delay for Instant Calibration Needs to be Increased From 2.5μs to 5μs
    2. 2.2 Generating the Lookup Table for Instant Calibration With the VCO Doubler
    3. 2.3 Reading Back the Instant Calibration Lookup Table Through SPI
    4. 2.4 Writing the Lookup Table Through SPI
    5. 2.5 Dealing With Case When Phase Detector Frequency is Changed Without Re-generating the Lookup Table
  6. 3Summary
  7. 4References

Generating the Lookup Table for Instant Calibration With the VCO Doubler

When generating the lookup table for the VCO doubler with the LMX2820 with instant calibration, the device can fail rarely coming out of calibration. The software workaround for this is for the user to read back from the device to make sure the lookup table was properly generated. This does involve registers that are not disclosed in the data sheet. The general procedure is:

  1. Power off the supply and on.
  2. Load Default 6GHz tics pro file with 100MHz as input OSCIN.
  3. Program the following registers with the stated conditions
    1. Register R0:
      1. INSTCAL_SKIP_ACAL(R0[13]) = 1
    2. Register R70:
      1. DBLBUF_PLL_EN(R70[4]) =1
      2. DBLBUF_CHDIV_EN(R70[5]) = 1
      3. DBLBUF_OUTBUF_EN(R70[6]) = 1
      4. DBLBUF_OUTBUF_EN(R70[7]) = 1
    3. Register R1:
      1. INSTCAL_DBLR_EN(R1[1]) = 1
      2. INSTCAL_EN(R1[0]) = 1
      3. LUT_GEN_SEL(R4[15]) = 0
    4. Register R106:
      1. INDEX_TEST(R106[10]) = 1
      2. INDEX_WR_RD(R106[11]) = 1
  4. Initialize the look up table look up table entries to zero
    1. For Index = 514 to 519
      1. INDEX_NO(R106[9:0]) = Index
      2. INDEX_TEST_WRDATA_37_32(R107[5:0]) = 0
      3. INDEX_TEST_WRDATA_31_16(R108[15:0]) = 0
      4. INDEX_TEST_WRDATA_15_0(R109[15:0]) = 0
      5. INDEX_WR_RD(R106[11) = 1
      6. INDEX_WR_RD(R106[11]) = 0
  5. Program the following registers

    1. INDEX_TEST(R106[10]=1) as 0.

    2. R36 [14:0], PLL_N as 28

    3. R42(MSB),R43(LSB) as 250 (NUM)

    4. R38(MSB),R39(LSB) as 1000(DEN)

    5. R44(MSB),R45(LSB) as 2^30 (2^32*(NUM/DEN) INSTCAL_PLL_NUM)

    6. FCAL_EN (R0[4]) = 0

    7. FCAL_EN (R0[4]) = 1

    8. FCAL_EN (R0[4]) = 0

  6. Check for rb_DBLR_CAL_DONE(R75<12]).

    1. If it is 1, proceed further.

    2. If not, RESET(R0[1]) = 1 and repeat the above steps till rb_DBLR_CAL_DONE =1