搭这个电路的起因很直接:我跟很多做振荡器的朋友一样,一开始迷信考毕兹和哈特利,觉得三点式结构简单、反馈网络好算。但后来发现,真正的高频振荡器设计,尤其是射频IC内部,几乎清一色都用差分放大电路构成的交叉耦合LC振荡器。手头正好有S9018高频管和几个色环电感,就用分立BJT差分对搭了一个中心频率约11MHz的LC振荡器,顺便把实测频率误差彻底拆了一遍。这篇文章想解决的不只是“怎么搭出来”,更想讲清楚“为什么差分结构更好用”以及“频率误差到底从哪来、怎么压下去”。
如果你是对射频振荡电路感兴趣的学生、想补LC振荡器实战知识的电子爱好者,或者刚从纯软件转到硬件的工程师,这篇都会有点用。文里的数据全部来自实板测量,不是仿真结果,所以你会看到很多教科书不写的真实偏差。
1. 为什么是差分放大电路:从负阻角度看LC振荡器
1.1 传统三点式振荡器的思路与局限
先快速回顾一下考毕兹和哈特利。考毕兹用电容分压取反馈,哈特利用电感抽头取反馈,两者本质都是“有源器件提供增益 + LC选频网络提供相位条件”的正反馈结构。看上去很简单,实际搭起来有几个麻烦。
第一是频率容易“跑偏”。三点式的谐振频率确实由LC决定,但三极管的输入阻抗和输出阻抗会并联到谐振回路上。Cbc和Cbe这些结电容会随静态工作点变化,导致实际振荡频率和理论计算值差出一大截。我早期搭过一个10MHz考毕兹,算出来10.00MHz,示波器量出来只有8.7MHz,当时还以为是示波器坏了,后来才知道是结电容和探头负载在捣乱。
第二是波形不对称。单管放大天然有偶次谐波,波形正负半周不均衡。低频时无所谓,一旦接到混频器或倍频器前端,这种不对称就会变成很讨厌的杂散分量。
第三是负载牵引明显。输出端带负载变化时,谐振回路的等效阻抗跟着变,频率和幅度一起飘。我第一次拿它直接去驱动下一级电路时,频率变了近2%,后面才知道振荡器输出一定要经过缓冲级。
1.2 差分对负阻原理:用三极管“造”一个负电阻
差分放大电路在这里的核心价值,是它能在特定端口表现出“负电阻”特性。先别被负阻两个字吓住,理解它其实很简单。
看这个连接方式:Q1基极接Q2集电极,Q2基极接Q1集电极,两个发射极连在一起再接尾电流源或电阻。想象一下在Q1、Q2集电极之间加上一个小信号电压,极性是左正右负。
Q1集电极电压上升,通过交叉耦合传到Q2基极,Q2导通增强,Q2集电极电压就下降。Q2集电极电压下降再传回Q1基极,Q1导通减弱,Q1集电极电流减小。从外部看,两个集电极之间电压在上升,但从外部流入的电流反而在减小,这种“电压变大电流变小”的关系,正是负电阻的特征。
小信号推导结果很干净,从两个集电极看进去的等效电阻约等于负的2/gm,其中gm是每个管子的小信号跨导。负阻绝对值越小,表示这个器件“往外送能量”的能力越强。
把负阻并联到LC回路上,就等于用差分对持续抵消LC回路本身的损耗。我常用的类比是机械钟摆:LC回路的电阻像空气阻力和轴承摩擦,负阻就像发条的动力,每摆一下补一点能量。发条给力,钟摆就不会停。
1.3 起振条件与稳态幅度:为什么说负阻振荡器更好调
知道了等效负阻是-2/gm,起振条件就变成:负阻的绝对值要小于LC回路的等效并联损耗电阻Rp。这里算个数。
S9018在1mA静态电流下的gm大约是38mS,2/gm约为53Ω。LC回路里,两个4.7μH电感在11MHz时的感抗约2πfL=325Ω,如果电感Q值按40估,并联等效损耗电阻Rp=Q×X_L,按差模总感抗650Ω算,Rp可达26kΩ量级。53Ω对比26kΩ,差了快500倍。这意味着这个电路起振极其容易,几乎不需要刻意调什么。
稳态时,幅度不会无限涨,而是被三极管截止和饱和等非线性机制压住。负阻振荡器一个很实际的好处是:波形天然比单管三点式对称,奇次谐波为主,偶次谐波分量明显更小。这在后面测试频谱时能直观看到。
也有朋友问过我,能不能用运放组成差分放大电路来搞这个。答案是通用运放带宽不够,NE5532增益带宽积只有10MHz,做11MHz振荡器已经明显吃力,高速运放不是不行,但供电麻烦、价格也高。手工搭高频LC振荡器,分立BJT差分对是性价比最合理的选择。
2. 电路参数设计与元件选型
2.1 目标频率与LC谐振参数计算
我先把目标定为11MHz附近,这是短波频段,示波器轻松观测,频率计和普通万用表频率档都能覆盖。电路采用双电感差分负载结构:Q1和Q2集电极各接一个4.7μH电感到VCC,两个集电极之间并一个22pF电容。
注意,这里的谐振等效电感和单端电路不一样。两个电感在差模信号下是串联关系,因为VCC对交流来说是地,所以差模等效电感L_eff = L1 + L2。标称L1=L2=4.7μH,L_eff就是9.4μH。
用这个式子算标称频率:
import math L_eff = 9.4e-6 # 差模等效电感,单位H C = 22e-12 # 谐振电容,单位F f_nom = 1 / (2 * math.pi * math.sqrt(L_eff * C)) print(f"标称谐振频率: {f_nom / 1e6:.3f} MHz")算出来约11.07MHz。这个数值先记住,后面实测数据就是要跟它对比。
2.2 核心元件清单与选型要点
元件清单和选型理由如下表:
| 元件 | 参数 | 选型要点 |
|---|---|---|
| Q1 Q2 | S9018或2N3904 | 选fT高的,S9018约600MHz,11MHz下增益余量充足 |
| L1 L2 | 4.7μH色环电感 | 尽量选Q值高、直流电阻小的,别用电阻代替 |
| C | 22pF NP0/C0G | 谐振回路电容必须选低温度系数材质 |
| Cc | 100pF ×2 | 基极与集电极之间的隔直耦合电容 |
| Cout | 10pF | 输出隔直电容,降低测试端对回路的影响 |
| Rb1 Rb2 | 20kΩ / 10kΩ | 基极分压偏置电阻,阻值尽量取大 |
| Re | 560Ω | 尾电阻,决定静态电流 |
| C1 C2 | 10μF + 100nF | 电源去耦电容,必须靠近电路 |
有两点要特别强调。第一是谐振电容材质,千万不要随手拿X7R或Y5R贴片电容当谐振电容,这种电容容量随直流偏压和温度变化非常明显,实测频率漂到你看不懂。第二是电感,色环电感的Q值虽然不算高,但够用,尽量测量后使用,因为色环电感的实际电感量常常比标称值偏大3%到10%。
2.3 偏置与反馈网络设计:一定要看清直流工作点
分立BJT交叉耦合有一个关键细节:不能像射频IC那样把基极直接接对方集电极,否则直流工作点直接报废。基极电位会被集电极电位钳住,三极管不是饱和就是截止。必须在基极和对方集电极之间串隔直电容,同时给基极单独做分压偏置。
偏置计算很简单。Rb1=20kΩ接到VCC,Rb2=10kΩ接到地,基极电压约等于VCC×10/(20+10)=1.67V。S9018的Vbe按0.67V算,发射极电压约1.0V。两个发射极合在一起经560Ω到地,尾电流约1.79mA,每管约0.9mA,gm约34mS,满足起振条件绰绰有余。
直流工作点预期值是这样的:
| 节点 | 预期电压 |
|---|---|
| VCC | 5.0V |
| 基极 | 1.67V |
| 发射极 | 1.0V |
| 集电极 | 5.0V(电感直流电阻很小,可视为直通) |
集电极电压等于VCC,这是正常的。因为电感对直流几乎是短路,三极管集电极电压就等于电源电压。
耦合电容Cc选100pF,在11MHz下阻抗约145Ω,对高频信号来说相当于短路线,但又不会影响直流偏置。这里有个小经验:Cc不能太大,太大会把基极偏置网络的等效电阻更重地牵引到谐振回路上,频率会偏得更厉害;太小又会衰减反馈信号,不容易起振。100pF对这个频率是顺手的选择。
3. 分步搭建与示波器实测
3.1 面包板布局与走线要求
我先用面包板搭原型,因为方便改参数。但面包板的分布电容和长引脚寄生电感受是频率误差的重要来源,后面实测误差有一部分就来自这里。搭的时候注意几点。
谐振回路要集中放置。L1、L2和22pF电容尽量围绕Q1、Q2的集电极周围,连线越短越好。交叉耦合的两根反馈线,也就是Q1基极到Q2集电极、Q2基极到Q1集电极,这两条线要尽可能短,别在面包板上绕大圈。电源去耦电容放在供电点附近,10μF电解和100nF陶瓷并联。
面包板的分布电容不能忽略。常见面包板相邻两列插孔之间约有1pF,一排5个孔的横向寄生大概2到4pF。我这种接法,谐振区域杂散走线导致单端对地分布电容少说6到8pF。这个数字听着不大,但对11MHz来说已经是谐振电容的1/3量级。
3.2 上电前的静态工作点检查
上电前先用万用表欧姆档确认供电不短路。然后上电,先量基极和发射极电压,对比上一节的预期值。如果基极电压异常低,先查偏置电阻是不是插错孔。
确认静态工作点正常后,用示波器探头接Q1集电极,看有没有正弦波。如果没起振,按这个顺序排查:先看交叉耦合线的位置对不对,是不是把Q1基极接到了自己集电极上,那种接法是没有正反馈的。再看尾电阻过不过大,电流太小的时候负阻太弱,可以临时换成470Ω或390Ω试试。最后看电感是不是开路,色环电感引脚端部氧化是家常便饭。
判断起振还可以用一个小技巧:把示波器灵敏度调高,在Q1集电极能看到大约几十mV到几百mV不明噪声,这时候用手碰一下LC回路附近,频率或幅度有明显变化,说明正在“临界状态”,调大电流就稳定振荡了。
3.3 示波器接线与频率测量方法
示波器测量是后面误差分析的关键环节,接法和设置直接影响读数可信度。
探头务必打到×10档位,同时通道菜单也要设成对应比例。原因是×10探头输入电容约10到15pF,×1探头输入电容可能高达80到100pF,这对谐振回路来说完全不是一个量级。我实测用×1探头直接测这个电路,频率能再掉将近20%,非常吓人。
输出经过Cout=10pF隔直电容再接探头,避免探头内部直流偏置网络影响三极管工作点。示波器触发设成上升沿,时基调到让屏幕上显示大约3到5个完整周期,然后打开Measure菜单选Frequency。一个容易忽略的操作是,用统计功能看平均频率,不要只看单次读数,波形抖动时单次读数误差很大。
如果手头有频率计,建议并用频率计读数。示波器时基晶振精度一般是±50ppm量级,频率计能做到±1ppm以内,两者的差异在高精度校准环节会体现出来。
4. 实测频率误差分析:数据、来源与修正
4.1 实测频率与理论值对比
先看一组实测数据。我用LCR表测了元件实际值,再用示波器和频率计分别测振荡频率。
| 项目 | 数值 |
|---|---|
| L1实测 | 4.83μH |
| L2实测 | 4.91μH |
| C实测 | 21.6pF |
| 标称理论频率 f_nom | 11.07MHz |
| 仅用实测LC修正 f_LC | 10.98MHz |
| 示波器实测频率(×10探头) | 9.88MHz |
| 频率计实测频率 | 9.88MHz |
误差怎么算?9.88MHz相对于标称理论值,误差是:
(9.88 - 11.07) / 11.07 = -10.7%
也就是说,直接用标称参数算出来的频率比实测高出了10%以上。这个偏差根本不是示波器不准,而是理论计算本身太理想化。
4.2 误差来源逐项拆解:元件容差、分布电容、结电容与探头负载
逐项拆开看误差更清楚。
元件容差。电感和电容都有标称误差。色环电感实测偏大,L1和L2比标称值多了约3%和4.5%,22pF电容比标称少了约1.8%。电容偏小通常是因为瓷片电容标称容量本身就在低端,这也是NP0电容常见的正负允差分布。综合算下来,f_LC是10.98MHz,比f_nom低了约0.8%。这部分误差不算大,但真实存在。
面包板分布电容。这是原理图上根本不存在、实际却一直参与谐振的电容。我搭完电路后用反推法估算,谐振区域内单端对地分布电容约6到8pF,折算到差模谐振回路约1.5到2pF。面包板交叉走线和长引脚越多,这个值越大。
晶体管结电容。S9018的Cbc约2pF,Cbe在1mA偏置下也有可观数值。交叉耦合结构里,这些结电容跨接在反馈路径和集电极节点之间,等效到谐振回路上约1到1.5pF。这部分最隐蔽,也最容易被忽略,因为拿掉三极管之后用仪器根本测不到它,只有振荡器工作起来才体现。
探头负载。×10探头输入电容约10pF,再串一个10pF Cout隔直电容,折算到地约5pF。这5pF是单端对地,折算到差分谐振回路大约是1.2到2.5pF。如果直接用×1探头,加载的电容会直接把频率拉下来一大截。
把各项叠起来算:
| 等效电容组成 | 估计值 |
|---|---|
| C实测 | 21.6pF |
| 面包板分布电容(差模折算) | 1.5pF |
| 结电容(差模折算) | 1.0pF |
| 探头负载(差模折算) | 2.5pF |
| 合计 | 26.6pF |
用L_eff=9.74μH、C_eff=26.6pF重新算预测频率,大约是9.89MHz。实测9.88MHz,误差只有约0.1%。也就是说,上面这套误差模型基本把真实情况解释透了。
4.3 用修正公式反向验证
反向验证这个方法强烈推荐。把实测频率代回去,反推电路里的“隐藏总电容”:
C_total = 1 / ( (2πf_meas)^2 × L_eff ) = 约26.7pF
这个值和我前面正向估算的26.6pF基本吻合。以后再搭类似振荡器,我可以先用这个方法摸清自己电路的寄生电容底数,设计时提前预留容量。手摸到探头附近重新读数,会发现频率往下掉,这也是验证探头和人体电容影响最直接的办法。
5. 把误差从百分之几压到千分之几:工程化校正手段
5.1 用微调电容做精调
把误差从10%压到0.1%之后,还想进一步精确到目标频率,可以用微调电容。我在22pF固定电容旁边并联了一个5到30pF的微调电容,上电后用频率计观察,拿无感陶瓷起子慢慢调。
操作上有一个重点:每次拧完微调,手必须离开探头和电路,等3到5秒再读数。人体本身有几十pF的分布电容,手一靠近频率就变,这是测LC振荡器最经典的“幽灵误差”。我用普通金属螺丝刀调微调电容时,频率读数会随着手的位置来回跳,后来换成无感陶瓷起子才稳定下来。
如果实测频率比目标低,说明总电容偏大,需要把微调电容调小;微调电容已经调到最小时还不够,就得把固定电容换成更小的值。反过来也是一样。我最后把频率稳定在10.98MHz附近,和实测LC元件值算出的理论频率接近,说明系统已经很干净。
5.2 高Q值与低相噪的取舍
想追求更低的频率误差和更好的稳定性,Q值是绕不开的话题。电感Q值低时,LC回路的等效损耗电阻小,负阻虽然仍能维持振荡,但回路的选频能力差,频率抖动和相噪都明显变差。
电源去耦也很关键。我用开关电源供电时,频率计上的读数会周期性跳几个Hz,换成5V锂电池供电后立刻安静下来。因为电源纹波会通过三极管的工作点调制结电容,进而牵动振荡频率。VCC附近的10μF和100nF去耦电容很有必要,尽量靠近两个电感的供电端点。
差分结构在这里有个被低估的优势:VCC上的共模噪声会被差分对天然抑制,对振荡频率的影响远小于单管结构。这也是射频IC里用差分振荡器的一个重要原因。
5.3 经验清单与常见坑
最后整理一份踩坑清单,基本覆盖我把这个电路从无到有调通的全过程。
- 示波器测LC振荡器频率,永远用×10探头,先做探头补偿校准。
- 谐振电容用NP0或C0G材质,别用X7R/Y5V。
- 读数时手离电路至少20cm,用无感起子调微调电容。
- 面包板搭高频电路,谐振回路线长尽量不超过5cm。
- 基极偏置电阻尽量取大,避免把偏置网络的等效电阻过重加载到谐振回路上。
- 集电极电压等于VCC是正常的,别误判三极管坏了。
- 波形如果有明显削顶,减小尾电流或VCC,必要时在发射极串10Ω负反馈电阻换线性度。
- 用实测LC值和反推的寄生电容做误差模型,比对着标称值空想有用得多。
这个实验做完收获很大。以前搭三点式振荡器,频率偏了就盲目换电容,换半天也不知道根源在哪。这次用差分差分放大电路搭LC振荡器,把误差一项项拆开,才真正理解寄生参数在谐振回路里有多重要。现在我做任何带LC振荡的设计,都会提前预留电容裕量,上电第一件事不是看波形,而是先用频率计读数,再反推隐藏电容,方向对了再动手改板子。