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.

LMX2820: Programming clarifications without using TICSpro software

Part Number: LMX2820


The procedure published from TI is:

  1. Open TICS Pro and select EVM default modeconfiguration
  2. In User Controls page, check all Double Buffer bits
  3. In PLL page, uncheck DBLR_CAL_EN in Instant calibrationbox
  4. Vcc power up the EVM
  5. Press Ctrl+L to program the EVM to lock to 6GHz
  6. Set INSTCAL_EN = 1 in Instant calibrationbox
  7. Type 5650 and then Enter in the VCObox (PLL_NUM, PLL_N and INSTCAL_PLL_NUM will be programmed automatically)
  8. Uncheck FCAL_EN in the VCO calibrationbox
  9. Check FCAL_EN
  10. Uncheck FCAL_EN and wait for a while (VCO will lock to 5650 MHz)
  11. Change VCO frequency, for example, type 5800 and then Enter in the VCObox (PLL_NUM, PLL_N and INSTCAL_PLL_NUM will be programmed automatically)
  12. Click Calibrate VCObutton (this will write R0 once, VCO will lock to 5800 MHz)
  13. Change VCO frequency to, for example, 6200 MHz
  14. Click Calibrate VCObutton (this will write R0 once, VCO will lock to 6200 MHz)

But... I’m writing code to program the LMX2820 from an MCU.  As such, can't quite reconcile what the TICSpro software is doing behind the scenes. 

In step 3 – DBLR_CAL_EN is in R0, but the unit isn’t powered up until step4, so what exactly is this doing?  Is it overriding some setting that is sent when the registers are programmed when the unit is eventually powered up?

Step 5 – does this imply you program all of the registers w/o the doubler CAL being run with the default values in the Register map?

Step 6 – does it execute the R1 register immediately, or does this wait for an R0 command (in step 8) sent later?  Since I want calibration both with and without the frequency doubler, do I set INSTCAL_DBLR_EN = 1 when I set INSTCAL_EN in step 6?

Step 7 – PLL_NUM, PLL_N, and INSTCAL_PLL_NUM registers changes don’t execute until R0 is sent (because these registers are double buffered in step 2).  Does TICSpro software also send an R0 command here as well?

I’m using a 10MHz reference, so PLL_NUM=0 when I need to tune to 5650.  So I set INSTCAL_PLL_NUM to 0 in this step?

Step 8, 9, and 10.  These are all R0 commands, so these execute immediately.  If I eventually want to program the doubler to get 20GHz, for example, do I need the DBLR_CAL_EN bit set in these R0 commands?

Step 12 and 14.  When you press the “Calibrate VCO” button – does that just send the R0 command with the appropriate register fields values?  If so, if I wanted to generate 20GHz, for example, would I set DBLR_CAL_EN to “1”.  Is FCAL_EN = 1 when this R0 command is issued?

  • Hi Chris,

    I will response before Monday.

  • Hi Chris,

    In step 3 – DBLR_CAL_EN is in R0, but the unit isn’t powered up until step4, so what exactly is this doing?  Is it overriding some setting that is sent when the registers are programmed when the unit is eventually powered up? TICS Pro EVM default configuration has DBLR_CAL_EN enabled. If the application does not need the VCO doubler, we can disable DBLR_CAL_EN to save some calibration time. In my opinion, this step isn't important, I will review this later.

    Step 5 – does this imply you program all of the registers w/o the doubler CAL being run with the default values in the Register map? EVM default configuration has OUTA_MUX set to "VCO", so VCO doubler calibration is not needed. The main purpose of step 5 is to fully program the device after a Vcc power up. Lock frequency is not matter.

    Step 6 – does it execute the R1 register immediately, or does this wait for an R0 command (in step 8) sent later?  INSTCAL_EN is not double buffered, the execution is immediately. Since I want calibration both with and without the frequency doubler, do I set INSTCAL_DBLR_EN = 1 when I set INSTCAL_EN in step 6?Set INSTCAL_DBLR_EN = 1

    Step 7 – PLL_NUM, PLL_N, and INSTCAL_PLL_NUM registers changes don’t execute until R0 is sent (because these registers are double buffered in step 2).  Does TICSpro software also send an R0 command here as well? No, TICS Pro will not program R0 automatically in this step

    I’m using a 10MHz reference, so PLL_NUM=0 when I need to tune to 5650.  So I set INSTCAL_PLL_NUM to 0 in this step? Correct.

    Step 8, 9, and 10.  These are all R0 commands, so these execute immediately.  If I eventually want to program the doubler to get 20GHz, for example, do I need the DBLR_CAL_EN bit set in these R0 commands? No, during InstCal calibration, INSTCAL_DBLR_EN determines if VCO doubler calibration will be executed

    Step 12 and 14.  When you press the “Calibrate VCO” button – does that just send the R0 command with the appropriate register fields values? Just R0. If so, if I wanted to generate 20GHz, for example, would I set DBLR_CAL_EN to “1”.  Is FCAL_EN = 1 when this R0 command is issued? No, when we apply InstCal, we should not enable the regular VCO or VCO doubler calibration, otherwise, VCO or VCO doubler calibration will be executed and we will get a longer switching time. 

  • Noel - thanks for the thorough response.  Had I downloaded TISC Pro in the first place, I could have figured out most of my issues by running though your procedure and looking at the registers programmed.