The procedure published from TI is:
- Open TICS Pro and select EVM default modeconfiguration
- In User Controls page, check all Double Buffer bits
- In PLL page, uncheck DBLR_CAL_EN in Instant calibrationbox
- Vcc power up the EVM
- Press Ctrl+L to program the EVM to lock to 6GHz
- Set INSTCAL_EN = 1 in Instant calibrationbox
- Type 5650 and then Enter in the VCObox (PLL_NUM, PLL_N and INSTCAL_PLL_NUM will be programmed automatically)
- Uncheck FCAL_EN in the VCO calibrationbox
- Check FCAL_EN
- Uncheck FCAL_EN and wait for a while (VCO will lock to 5650 MHz)
- 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)
- Click Calibrate VCObutton (this will write R0 once, VCO will lock to 5800 MHz)
- Change VCO frequency to, for example, 6200 MHz
- 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?