做硬件设计这些年,只要一提到正弦波振荡电路,很多人第一反应是教科书里那个“没有输入却有输出”的奇怪框图,紧接着就是一堆增益、相移、品质因数的名词。说句实话,正弦波振荡电路在工程里的地位,远比教科书里几页纸重要得多:信号发生器、锁相环里的参考源、测量仪表的校准基准、无线发射的本振,背后都离不开它。这篇文章不打算把教材复述一遍,而是想从“怎么把它调出来、怎么让它稳”的角度,把正弦波振荡电路的核心逻辑、设计取舍和调试经验讲清楚。内容会参照《模拟电子技术基础》这类经典模电教材的体系,但重点放在实操中真正用得上的那部分,适合正在学模电、准备参加电子设计竞赛,或者刚接触信号源设计的同学参考。
1. 先从一个“违背常识”的电路说起
1.1 振荡器究竟在干什么
正常电路都有输入和输出,放大器再厉害也得喂个信号才有动静。但振荡器偏偏反着来:接上电源之后,输出端自己就冒出一个持续稳定的正弦波形,频率和幅度还能被你控制。你可以理解成电路内部自己给自己造了一个输入信号,然后不断放大、反馈、再放大,最终达到动态平衡。
我第一次接触这个电路的时候,脑子里最大的疑问就是:“信号从哪来的?”教材里经常给一句轻飘飘的解释——来源于电路内部的噪声或者上电冲击。可实际上,这个“种子信号”小到什么程度呢?通常是微伏甚至纳伏级别的热噪声。问题来了:这么小的信号,凭什么能变成伏特级输出?答案就藏在反馈回路里。
放大器把噪声放大一点点,输出的一部分再送回到输入端,接着又被放大,循环往复。只要每一轮放大之后信号不衰减,幅度就会像滚雪球一样涨起来。这个过程叫“起振”,本质上是把微小的扰动能量反复注入放大环节,让振荡幅度从小变大。
不过别高兴太早,雪球不能无限滚。放大器供电电压有限,输出幅度顶到电源轨附近就会被削顶。所以一个正经的振荡电路,必须同时具备“让振荡起来”和“让振荡停住”两种能力,后者就是我们常说的稳幅控制。这也是判断振荡器设计水平高低的第一个分水岭。
1.2 起振条件和平衡条件,别被一个公式骗了
任何一本模电教材讲到振荡器,都会给出巴克豪森判据:
- 环路增益的模要大于等于 1:|A(jω)F(jω)| ≥ 1
- 环路总的相移为 0(或 2nπ):arg(A(jω)F(jω)) = 0 或 2nπ
很多初学者把这两个条件背下来就完事了,做出来的电路却死活不起振,原因在于把“等于1”理解错了。注意,教材里那个等于1的条件叫“平衡条件”,描述的是振荡稳定之后的理想状态。实际起振时,环路增益必须比1大,通常是1.5倍到3倍,否则噪声经不起几轮循环的损耗,根本涨不起来。
为什么会有这种差异?因为起振阶段信号极小,放大器的增益还处在线性区,这时候要让每一轮反馈回来的信号比上一轮大,才能冲破噪声底。等幅度越来越大,放大器逐渐进入非线性区,实际增益自动下降,最后收缩到环路增益刚好等于1的位置,振荡幅度才稳定下来。所以“增益大于1”是起振的前提,“增益等于1”是终态结果,二者对应振荡器生命周期里的不同阶段。
我习惯用一个生活化的类比:推秋千。前几把必须用力比摩擦消耗的力大,秋千才荡得起来;等到荡到理想高度,你每次在最低点给出的能量恰好弥补空气阻力和摩擦损耗,高度就维持住了。如果你一开始就只想“恰好抵消”,秋千永远停在静止状态。
相位条件同样关键。环路里的放大器和选频网络都会引入相移,只有总相移满足 2nπ,反馈信号才能和原始信号同相叠加。如果相位不对,哪怕增益再大也只是“负反馈”,起不来振。在设计阶段,你往往需要借助选频网络的相频特性来精确控制相位;到了调试阶段,相位的偏差通常表现为频率偏移,而不是完全停振,这点后面再展开。
2. 主流拓扑怎么选:RC、LC,还有更讲究的
2.1 文氏桥振荡器:低频正弦波的常青树
工程里要产生 1Hz 到几百 kHz 的低频正弦波,文氏桥振荡器是首选。它的核心是 RC 串联支路和 RC 并联支路组成的选频网络,加上一个同相放大器构成正反馈环路。
选频网络的功能就是“只挑一个频率”。在谐振频率 f0 附近,反馈系数最大;偏离这个频率,反馈系数迅速衰减。文氏桥的谐振频率计算公式很简单:
f0 = 1 / (2πRC)
这个式子很有用,因为 R 和 C 同时出现在分子分母上,意味着你可以用一个双联可调电位器同步改变两个电阻,轻松实现连续调频。我在实验室常用的一组参数是 R = 15.9kΩ、C = 10nF,算下来谐振频率正好约 1kHz,适合做低频信号源的原型验证。
选频网络分压之后的反馈系数是 1/3,也就是说,无论运放本身增益多大,经过选频网络回到输入端的信号只剩三分之一。为了补上这损失,同相放大器的增益必须调到 3 倍以上。如果用常规运放搭同相放大器,增益就是 1 + Rf/Rg,所以需要 Rf/Rg ≥ 2。这是文氏桥电路里最需要记住的一组数字。
实际电路里我通常会把增益先调到 3.1 倍左右,保证可靠起振,再靠后面的稳幅电路把增益自动压回 3 倍附近。不要一上来就精确调成 2 倍,否则温漂和器件误差一掺和,电路要么不起振,要么输出幅度忽大忽小。
2.2 LC 三点式振荡器:高频频段的主场
频率一旦跑到兆赫兹以上,RC 网络的损耗和寄生电容开始捣乱,文氏桥就不太灵光了。这时大家改用 LC 选频网络,利用电感电容的谐振特性选频。所谓“三点式”,是晶体管(或场效应管)的三个电极分别接谐振回路的三个端点,常见的有考毕兹电容三点式和哈特利电感三点式。
考毕兹振荡器用两个电容分压作为反馈网络,频率公式为:
f0 = 1 / (2π√(L × C_eq))
其中 C_eq 是两个反馈电容的串联值:C_eq = C1×C2 / (C1+C2)。实际设计还要把晶体管的极间电容算进去,尤其是工作频率高到几十 MHz 时,极间电容的影响非常明显,理论计算值和实测值差 20% 都不奇怪。
哈特利振荡器则用两个电感分压,反馈比例容易控制,但电感之间的互感会给调试带来不确定性。从我个人的经验看,固定频率应用选考毕兹更省心,电容的精度和温度稳定性普遍优于电感,而且晶体管结电容本来就在并联通路里,可以通过调整 C1、C2 来部分抵消它的影响。哈特利更适合频率覆盖范围要求较宽的场合,但如果你对相位噪声和频率稳定度有要求,得多花精力处理电感布局。
2.3 晶体振荡器和其他思路
频率稳定度要求达到 ppm 级别时,普通 LC 回路就没法看了。这时候直接用石英晶体作为谐振元件,靠晶体的压电效应稳定频率,这就是晶振。晶振的本质仍然是一个选频反馈网络,只不过它的 Q 值极高,对频率的“挑剔”程度远超 LC 回路,所以频率几乎不随温度和供电电压漂移。
做产品设计时,我通常会给信号链的参考频率直接上温补晶振或者恒温晶振。设计上晶振电路比 LC 振荡器简单,因为晶体已经把频率“规定”好了,你需要做的只是提供一个合适的激励电平、匹配负载电容,再把输出缓冲整形送给后续电路。麻烦的地方反而在 PCB 布局和电磁兼容上,晶振下面一般不能铺地,走线要短,不然杂散电容会拉偏频率。
3. 参数化设计与稳幅控制,真正见功夫的地方
3.1 从传递函数看起振裕度
设计振荡器,不能只看“能不能振荡”,还要问“是不是总是在振荡”。我习惯在搭建电路之前,先算一遍环路增益的余量。以文氏桥为例,如果放大器增益恰好设到 3 倍,开环增益余量就是 0 dB,任何负载变化、元件漂移都会让环路增益跌破 1,振荡立刻停摆。所以实际增益我一般会留 2~3 dB 的余量,换算成线性值就是 1.26~1.41 倍。
但增益余量也不是越大越好。如果我把放大器增益直接调到 10 倍,振荡幅度会一路冲到电源轨,输出波形顶部和底部被硬生生削平,出现严重的失真。正弦波一旦削波,谐波含量猛增,你就得不到一个“纯净”的正弦信号了。
这就引出最核心的设计矛盾:起振需要增益稍大,稳定需要增益收敛。解决矛盾的思路是引入非线性环节,让增益在大信号时自动压缩。常见的方案有三种:
- 用稳压二极管或两只反向并联二极管做限幅;
- 用场效应管或模拟开关构成自动增益控制环;
- 用热敏电阻利用自身温度系数改变反馈深度。
3.2 二极管限幅和 JFET 稳幅的实际调法
二极管限幅方案最简单,就是在反馈电阻两端并联两只反向并联的二极管。输出幅度很小的时候,二极管基本不导通,增益保持高位,利于起振;输出幅度增大后,二极管导通,等效反馈电阻减小,增益被拉低,幅度就被压在二极管导通阈值附近。这里有个容易踩的坑:二极管的导通特性不是突然转折的,波形交界处会出现轻微的非线性,输出幅度越靠近削波点,谐波失真越明显。
场效应管稳幅则高级一些。让输出信号经过峰值检测变成直流控制电压,再控制 JFET 的栅压,改变其沟道电阻。这个反馈环有点像一个自动音量控制器,时间常数由峰值检波电容和电阻决定。调这个时间常数需要点耐心:电容太大,稳幅反应慢,输出会打嗝,一松一紧;电容太小,又会把振荡频率的纹波耦合到控制线上,造成额外的调频噪声。我的经验是先按振荡周期的 20 倍左右选时间常数,再根据示波器上的幅度稳定速度微调。
表格展示三种稳幅方式的优缺点,方便对照:
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 二极管限幅 | 便宜、起振快、电路简单 | 失真较大,幅度受温度影响 | 对波形要求不高的低频电路 |
| JFET/AGC 环路 | 失真小、幅度稳定、控制端灵活 | 环路补偿复杂,成本稍高 | 需要低失真正弦源的仪器 |
| 热敏电阻 | 纯无源自动增益调节、失真很低 | 反应慢、调频时数值变化不灵 | 固定频率或慢变化频率的振荡器 |
3.3 从原理图到 PCB,几个容易翻车的细节
振荡器对寄生参数极其敏感,这一点在 PCB 阶段表现得淋漓尽致。第一次搭文氏桥时我直接用普通万用板掏洞焊接,结果振荡频率比设计值偏了 12%,波形还不干净。后来换了思路,把反馈网络的 R 和 C 紧挨着运放放置,地线单独走一条粗线,频率误差立刻缩小到 2% 以内。
具体布局时有几条原则值得记下来:
- 谐振回路的走线尽量短且等长,反馈电容、谐振电容直接靠近有源器件引脚;
- 反馈网络的采样点单独引线,别让输出级的大电流回路侵扰采样点;
- 电源引脚上至少要加一个 0.1μF 的去耦电容,而且离电源脚越近越好;
- 如果有屏蔽壳,振荡器部分单独一个屏蔽区间,与数字电路物理隔离。
高频 LC 振荡器更要讲究“一点接地”,避免地环路形成隐藏的反馈路径。我见过一个 20MHz 考毕兹振荡器,明明仿真都正常,实际通电就是往外跑频,最后发现是输出走线跟谐振电感靠得太近,寄生耦合把选频曲线拉偏了。把输出缓冲级往后挪了 3mm,问题立刻消失。
4. 调试实录:一台示波器,一堆意外
4.1 起不了振,先查这四件事
振荡器调试最让人头疼的永远是“看起来都对,就是不干活”。我总结了一个排查顺序,按这个顺序走,绝大多数情况能很快定位:
- 先查电源:电压幅度对不对,纹波大不大,限流有没有被触发。很多振荡器不振是供电不足导致的,尤其是运放输出级吃电的时候,电源跌掉零点几伏,增益就不够了。
- 再查反馈相位:用示波器双通道同时看放大器的输入和输出,确认相位关系是不是同相。如果接反了,电路就变成稳如磐石的负反馈,不可能起振。
- 然后查环路增益:把反馈网络断开,临时给放大器输入一个已知信号,测输出幅度,估算增益是否超过理论起振值。这个办法虽然粗暴,但非常有效。
- 最后查静态工作点:三极管振荡器尤其要注意偏置是否让管子处于合适的放大区。没设好静态工作点时,管子可能已经完全饱和或截止,信号根本放大不了。
有一次帮同学排查一个三极管考毕兹振荡器,前三个检查全过,就是不振荡,浪费了快一个小时。最后发现是基极偏置电阻太大,导致静态电流只有 0.3mA,管子增益低到起振条件不满足。把偏置电阻换小、让静态电流到 2mA,上电立刻起振。可以说,静态工作点这关没过,后面调什么都没用。
4.2 波形失真,幅度和失真度怎么平衡
振荡器最常见的失败模式不是不振,而是“振了,但波形没法看”。正弦波的顶部和底部出现裁切,谐波失真高达百分之几,这时候你就要考虑稳幅环节是不是失效了,或者增益余量是不是留太大。
我调失真有一个笨但有效的方法:先用示波器看输出,把放大器增益从大往小慢慢调,一边调一边观察波形有没有削顶。当削顶刚刚消失的那一刻,记下这个位置,再把增益往回加 3%~5%。这个位置就是起振可靠性和波形纯度之间的甜点。如果削顶消失后波形交界处仍有明显转折,说明稳幅器件进入了非线性区,需要调整它的偏置点或者更换稳幅方案。
另外要注意输出负载的影响。振荡器输出端如果直接接低阻抗负载,相当于给谐振回路并了一个电阻,会显著拉低环路增益。所以正规设计都会在振荡器输出后面加一个高输入阻抗的缓冲级,先在缓冲级幅度稳定,再通过它驱动负载。没有缓冲的时候,我遇到过波形明明是纯正弦,一接负载立刻变成锯齿状的情况,最后排查下来就是负载把振荡频率的 Q 值拉低了,选频作用变弱。
4.3 频率不稳定,温度、电源、寄生参数轮番捣乱
频率稳定度是振荡器的硬指标,也是最容易被忽视的一项。如果示波器上频率周期性地扫动,多半是温度变化或电源纹波调制了电路的工作点。晶体管的结电容会随温度变化,LC 谐振回路的电感也会因为温度导致尺寸微变,这些都会反映成频率漂移。
调试频率稳定问题时,我常用一个简单手段:将振荡器放进一个恒温环境(比如实验室空调稳定的角落),再对比在窗边太阳直射下的频率偏差。如果偏差过大,优先考虑换温度系数更低的电容,比如 NP0/C0G 材质的陶瓷电容,而不是随手抓一个 X5R 电容。X5R 的容量会随着温度变化掉 15% 甚至更多,用在选频回路里,频率漂移能让你怀疑人生。
电源的影响也值得重视。供电电压里叠加的 50Hz 纹波进入振荡器的控制环之后,会形成调频边带,表现出来就是波形上叠加了缓慢的幅度起伏。解决思路很简单:给振荡器单独用一个低噪声 LDO 供电,别和数字芯片共用开关电源的 5V。
5. 常见问题与排查技巧速查表
把这些年折腾振荡器遇到过的问题整理成一张速查表,下次再翻车可以直接对照:
| 现象 | 可能原因 | 排查顺序 | 解决办法 |
|---|---|---|---|
| 完全不振 | 环路增益不足 | 测放大器增益 | 增大反馈深度、调静态工作点 |
| 完全不振 | 反馈相位反了 | 看示波器相位 | 交换反馈节点 |
| 时振时不振 | 起振余量贴近1 | 测低温下增益 | 加大起振增益 10%以上 |
| 输出削顶 | 稳幅失效或增益过大 | 减小增益观察波形 | 调稳幅阈值,换二极管 |
| 频率偏高 | 谐振电容偏小 | 算实际等效电容 | 补偿极间电容和寄生电容 |
| 频率随温度漂 | 电容温度系数差 | 对比恒温环境 | 更换 NP0/C0G 电容 |
| 带载后波形恶化 | 输出阻抗过高 | 断开负载看波形 | 增加缓冲级 |
| 波形有毛刺 | PCB 寄生耦合 | 挪走输出走线 | 加屏蔽、优化布局 |
还有一个容易被忽视的细节:示波器探头的输入电容一般在 10~20pF 左右,直接接到谐振回路上会改变谐振频率。高频振荡器观测时,我一般用有源探头或者通过一个小电容(比如 3pF)隔离耦合,测到的频率才是电路真实的频率,而不是“探头干扰后的频率”。
最后再说一个我个人的体会:学振荡器最好的方式不是把教材例题算一百遍,而是亲手搭一个文氏桥,然后故意把增益调到非常大,眼睁睁看着正弦波变成方波,再一步步把稳幅调回来。这个过程会让你对“为什么需要稳幅”“为什么增益不能太大”有非常直观的记忆。下次你再看到任何振荡电路,脑子里会自动浮现出一幅能量循环的图景:噪声注入、环路放大、选频提纯、非线性收敛,四个环节缺一不可。等你想通了这个图景,正弦波振荡电路就再也不是什么神秘的东西了。