How do I debug a PLL that will not lock to the desired frequency?
PLL Lock Failure Debugging
PLL lock problems are systematic: either the loop cannot physically reach the desired frequency (hardware issue), or the loop dynamics prevent acquisition (filter/stability issue), or the PLL is incorrectly programmed (software issue). The debug process narrows down which category the problem falls into.
Systematic Debug Flow
- Step 1: Power verification. Measure all Vcc pins with a multimeter. Check for correct voltage (within 5% of nominal). Check current draw against datasheet typical values. Low current may indicate a non-functioning section; high current may indicate damage
- Step 2: Reference verification. Measure the reference input with a spectrum analyzer or frequency counter. Verify frequency (exact), power level (within specification, typically -10 to +10 dBm), and spectral purity (no harmonics or spurs that could confuse the phase detector)
- Step 3: Register verification. Read back all PLL registers to verify the programming matches the intended values. Pay special attention to: N-divider, R-divider, charge pump current setting, output power setting, and VCO band/core selection
- Step 4: Tuning voltage measurement. Measure the voltage at the VCO tuning port. If it is railed at 0V or Vdd, the loop is searching but cannot find the target frequency. Check VCO frequency range and N/R divider values. If the voltage is mid-range but the lock detect is not asserted, the loop may be oscillating (unstable loop dynamics)
- Step 5: VCO direct test. If possible, inject a DC voltage directly onto the VCO tuning port (disconnecting the loop filter) and verify the VCO produces the expected frequency at the expected tuning voltage. This isolates VCO problems from loop problems
VCO tuning voltage range: typically 0.5 to VCC - 0.5 V
Lock time: T_lock ~ 1 / (loop_bandwidth x phase_margin_factor)
Typical: 10-100 us for narrow loop, < 1 us for wideband loop
Phase margin for stable lock: > 45 degrees (60 degrees preferred)
Frequently Asked Questions
The VCO tuning voltage is railed at 0V or Vdd. What does this mean?
The tuning voltage at rail (0V or Vdd) means the loop is driving the VCO to its frequency extreme but still cannot reach the target frequency. This indicates: incorrect N or R divider programming (the target frequency is outside the VCO range), the VCO is operating in the wrong band (some PLL ICs have automatic VCO band selection that may fail), or a hardware fault in the charge pump or loop filter.
The PLL locks briefly then unlocks. What causes this?
Brief locking followed by unlock indicates either: insufficient phase margin (the loop is marginally stable and loses lock due to noise or perturbation), temperature drift (the VCO frequency drifts out of the lock range as the device heats up), or a reference signal quality issue (reference dropouts or jitter cause phase detector errors that the loop cannot track). Check the loop filter design for adequate phase margin (>50 degrees) and verify the reference signal quality.
How do I verify the PLL register programming is correct?
Most modern PLL ICs support SPI register readback. Read all registers after writing them and compare to the intended values. Simulate the expected output frequency using the manufacturer's design tool (Analog Devices ADIsimPLL, Texas Instruments TICS Pro) and compare to the register values you have programmed. Common programming errors: writing registers in the wrong order (many PLLs require a specific write sequence), not triggering the double-buffered register update, and incorrect chip select or SPI timing.