我盯着频谱仪上那个该死的杂散,它在-75dBc的地方晃来晃去,像一根扎进眼里的刺。锁相环,这东西我调了快十年,可每次上电,心里还是发虚。它太敏感了,一点点走线电感、一丝丝电源纹波,就能让相噪曲线翘起一条丑陋的尾巴。但你又离不开它,对吧?没有锁相环,射频系统就是个聋子,模数转换器连10个有效位都稳不住。
我恨它,也爱它。
负反馈的数学骨架:从相位噪声到环路带宽的纠结
说到底,锁相环就是个相位负反馈系统。你有一个参考时钟,一个压控振荡器(VCO),一个鉴频鉴相器(PFD),再加一个低通滤波器。PFD比较两者的相位,泵出电流脉冲,滤波器把它磨平,变成控制VCO的电压。VCO的频率被慢慢拽向参考时钟的整数倍,最后锁住。就这么简单?才怪。
环路带宽这个参数,能让人掉光头发。带宽设宽了,锁定快,但参考时钟的杂散会漏过来,相噪底抬升;设窄了,相噪好看,可锁定时间长得像等泡面,VCO自己的低频相位噪声也压不住。这根本就是个跷跷板。有一回我贪心,想把GSM手机的锁定时间压到20微秒以下,带宽开到200kHz,结果参考杂散直接干到-40dBc,EMC测试当场翻车。后来学乖了,老老实实套用开环传递函数:G(s) = Kpd * Kvco * Z(s) / (N * s),慢慢算零极点。那个Z(s)是环路滤波器的传递函数,二阶无源滤波器的公式我现在还能默写:Z(s) = (1+s*R1*C1) / (s*(C1+C2)*(1+s*R1*(C1//C2)))。别看它只是几个电阻电容,位置摆错一个,相位裕度就能从45度掉到10度,环路直接振荡给你看。
我给你打个比方。VCO就像个脾气暴躁的赛马,你拉缰绳(控制电压)想让马加速或减速,但马的反应有延迟,而且它自己还乱动。环路滤波器就是那根缰绳的阻尼,太软马不听使唤,太硬马嘴都要扯破。PFD是骑手的眼睛,时刻盯着马头和参考栅栏的差距。锁定过程就是骑手在不断调整,直到马头稳定地齐平栅栏。

电荷泵的电流失配:那个让你抓狂的1%
电荷泵是锁相环里最现实的妖孽。理想情况下,PFD输出UP和DN脉冲,电荷泵的电流源应该完全对称,source电流和sink电流一丝不差。但实际上呢?沟道长度调制效应、阈值电压偏差,让这两股电流差个百分之几太正常了。这失配会转换成参考杂散和相位失调。
有一次我测一颗片内锁相环,5MHz参考频率,输出1.8GHz,杂散居然在-55dBc,怎么都消不掉。查了一整天,最后用探针点测电荷泵输出电压,发现静态时电压不是Vdd/2,偏了30mV。这就意味着失配电流在滤波器上产生了压降,VCO控制电压有纹波,输出频率被调制。后来我在滤波器前面加了一级单位增益缓冲器隔离,杂散立刻掉到-70dBc以下。那个瞬间,我差点把示波器亲一口。
数据最能说明问题。我用同一颗VCO,分别测了有电荷泵线性化电路和无的情况。在10kHz频偏处,相位噪声从-95dBc/Hz恶化到了-87dBc/Hz,整整8个dB。8dB啊,那可是功率的6倍多!对于雷达系统,这就意味着动目标检测的信噪比直接降一个档次。所以现在我做锁相环,电荷泵的电流镜必定用cascode结构,再加共模反馈。面积大不了多少,但失配能压到0.1%以下。

坑点一:电源噪声耦合——你以为的“干净”其实脏得离谱

锁相环对电源噪声的敏感度,怎么说呢,就像猫对黄瓜的应激反应。VCO的控制电压纹波,哪怕只有几十微伏,就能产生可观的相位噪声。而板级的DC-DC转换器,纹波动辄几毫伏。你就算用了线性稳压器,那1/f噪声频段也够你喝一壶的。
我掉进的最大的坑,就是把锁相环和数字基带处理器放在了同一个电源域。当时图省事,一块LDO同时供数字和PLL,结果锁相环输出的相噪曲线在低频段(<1kHz)凸起一个大包,像怀孕了的蛇。后来用频谱仪探头靠近LDO输出,发现10Hz到100Hz的噪声密度高达-80dBV/√Hz。解决办法是给锁相环单独供电,并且用π型滤波(磁珠+电容)隔离,再在VCO的偏置电路上串一个10Ω电阻,并联1μF和10nF电容,星型接地。那之后,低频相噪乖乖地降了下去,比理论值只劣化了2dB。
坑点二:环路滤波器元件容差——理论值都是骗人的
你花了一下午算出的电阻电容值,焊上去却发现锁定范围偏了10%,或者相位裕度根本不够。这往往是因为用了X7R陶瓷电容,它的容值在直流偏压下能掉30%甚至更多。想象一下,你算的是100pF,实际上只有70pF,零极点全跑了。
解决:环路滤波器电容全部用C0G(NP0)电介质,半点压电效应和容值衰减都没有。电阻用0.1%精度,温漂控制在25ppm以下。另外,永远不要相信单板调试时的手焊元件寄生参数,一定要做PCB后仿真,把走线电感和焊盘电容考虑进去。我一般用大厂提供的PDK里提供的电感电容模型,先做蒙特卡洛仿真,看3σ范围。如果锁定范围需要覆盖全部PVT,那就得在滤波器里加开关电容阵列,分档调节。
坑点三:锁定检测的假像——你以为锁了,其实它在飘

很多芯片的锁定指示信号,只是简单比较PFD输出的UP和DN脉冲宽度,当两者都窄于某个阈值时就拉高。但这时VCO的控制电压可能还在蠕升,频率在慢慢地漂,这个状态叫“频率锁定但相位未锁定”。如果处理器在这时开始收发数据,误码率绝对让你怀疑人生。
正确的做法是:在锁定检测电路里加入一个时间窗计时器,要求UP和DN持续小于阈值至少几十微秒,并且VCO控制电压的斜率小于某个值(比如1mV/μs)。我一般还会用数控监视器看VCO频率的瞬态:先用粗调锁定,再切精调。另外,务必用同步计数器观察分频器输出和参考时钟的实际相位差。不要信任标称的锁定指示,那东西经常撒谎。
最终实测数据:在一个27GHz毫米波锁相环中,我严格遵循以上设计准则,环路带宽100kHz,电荷泵电流1mA,三阶无源滤波器。实测相位噪声:1kHz频偏-100dBc/Hz,10kHz频偏-115dBc/Hz,100kHz频偏-125dBc/Hz,1MHz频偏-140dBc/Hz。积分抖摆仅为112fs(10kHz到20MHz)。这不仅满足802.11ad的EVM要求,还留了6dB余量。对比早期没加隔离的那版,相噪整体改善了12dB。这靠的不是什么秘诀,就是跟每一个微伏、每一个皮法死磕。锁相环就是那种玩意儿——你越怕它,它越欺负你。你得比它还轴,还顽固,才能驯服它。