As a firmware engineer, recently I found myself looking around for VCO calibration tutorials. I need to come up with firmware function to drive VCO calibration. It is hard to communicate with the hardware team without a basic understanding of how VCO, PLL, and VCO calibration works. But after some search, it is a surprise there is no good document talking about VCO calibration online, especially for a firmware engineer who doesn’t understand much of radio design terms. There are some good IEEE papers, for example, “VCO Design with On-Chip Calibration System” authored by Paavo Vaananen, el. A better, to the point, and easy to understand IEEE paper is “A 60Ghz PLL Synthesizer with an Injection Locked Frequency Divider using a Fast VCO Frequency Calibration Algorithm” authored by Takahiro Shima, el. With the help of hardware team, I finally understand the basics of VCO cal and would like to share here. I am a firmware engineer and not a radio designer. This post is for engineers with interest in VCO cal but not versed in radio design.
Some of below diagrams are borrowed from Shima’s paper. Fig.1 is a generic PLL architecture. PFD (phase frequency detector), CP (charge pump), LPF (low pass filter), counter which serves as VCO clock divider, and VCO (voltage controlled oscillator) itself are all typical components of a PLL. You can ignore CMLD and ILFD since they are not related to our discussion. At the bottom of the Fig1, there are two components, clock counter and calibration controller. Combined, these two serves VCO calibration.
Fig. 2 shows the circuit schematic of the VCO. It employs a 3-bit band switching array with MOS varactors that provides 8 frequency sub-bands. Each of the three control bits, b3-b1, can determine if the corresponding MOS capacitor takes effect in VCO operation.
Three control bits has 8 combinations. As shown below, there are 8 sub-bands that this VCO can operate in. VCO calibration is really about how to find out which sub-band to use. In other words, what is the optimal switching band cap value or the control bits? For example, if we use BAND=1 or BAND=8, VCO can’t even oscillate at the target frequency. If we use other bands, the target frequency doesn’t show up in the middle of band operating range.
Use points to gain access. You can either purchase points or contribute content and use contribution points to gain access.