恒流源这个东西,说简单也简单,说讲究也是真讲究。我见过太多项目里用一颗电阻加一颗三极管就敢叫恒流源,结果批量生产时LED亮度参差不齐,或者传感器激励电流随温度飘得离谱。三极管恒流源电路设计的核心,其实不在于“能不能恒流”,而在于“恒得住多久、恒得多准、恒得多便宜”。这篇内容我打算把压箱底的几种经典方案翻出来,从最简陋的到精度能打的,逐个拆解原理、算参数、聊坑点。不管你是刚入行的硬件小白,还是画了几年板子想回头补基础的老手,应该都能找到能直接抄作业的电路。关键词里的电流镜、cascode、运放恒流源这些,我都会结合具体场景讲清楚它们各自适合待在哪。
1. 先搞明白三极管恒流源的底层逻辑
1.1 恒流源到底在“恒”什么
很多人一上来就背公式,我觉得不如先想清楚一个事:恒流源的本质是让流过负载的电流不随负载阻抗变化,也不随电源电压波动而变。理想恒流源的输出阻抗无穷大,现实中我们就是用各种电路去逼近这个无穷大。三极管之所以能担此重任,核心在于它的输出特性曲线在放大区非常平坦——集电极电流主要由基极电流决定,而几乎不受集电极-发射极电压影响。这就是恒流源的物理基础。
但这里有个容易被忽略的点:三极管的β值本身随温度、集电极电流、甚至批次都在变。所以如果你直接用基极电流去“设定”集电极电流,那精度基本靠运气。真正靠谱的做法,是用负反馈把电流采样回来,让电路自己纠正。这就是为什么几乎所有实用恒流源都绕不开发射极电阻——它把电流转换成电压,再反馈到输入端去调节基极。
1.2 三极管工作区的选择:为什么必须待在放大区
恒流源电路里的三极管,必须工作在放大区,也就是发射结正偏、集电结反偏。如果进入饱和区,集电极电流就不再受基极控制,而是由外部电路决定,恒流功能直接失效。判断方法很简单:测集电极-发射极电压Vce,如果它低于约0.3V(小功率管),基本就饱和了。设计时要留足裕量,保证在最恶劣工况下Vce仍然大于1V,这样温度漂移和参数离散性才不会把管子推进饱和。
我实际调试时习惯用示波器同时看Vce和发射极电压。如果发现Vce在动态负载下掉到0.5V以下,那这个电路在批量生产时一定会有部分板子失效。这时候要么提高电源电压,要么换用饱和压降更低的管子,要么重新分配电压裕量。这个经验在低压差场景里尤其重要,比如用3.3V驱动白光LED时,恒流源的压降预算必须算得非常精细。
1.3 电流采样电阻的取值权衡
发射极电阻Re是恒流源精度的关键。Re越大,负反馈越强,恒流精度越高,但代价是压降损失也越大。假设你要恒流20mA,Re取100Ω,那压降就是2V,电源电压至少得留出2V加Vce的裕量。如果供电只有5V,那留给负载的电压就非常紧张了。反过来,Re取10Ω,压降只有0.2V,但负反馈变弱,β值变化和Vbe温漂的影响就会被放大。
我的经验是:在电源电压允许的前提下,Re上的压降至少取0.5V到1V。这个区间既能提供足够的负反馈,又不会浪费太多电压。对于精度要求高的场合,比如驱动精密传感器,Re压降可以取到1.5V甚至2V,同时配合低温漂电阻。另外,Re的功率也要算:20mA流过100Ω就是0.04W,用0603电阻绰绰有余,但如果是200mA流过10Ω,那就是0.4W,得换0805或1206了。
2. 最简方案:二极管偏置恒流源
2.1 电路长什么样
这是最经典的两管方案:一颗NPN三极管作为调整管,两颗二极管串联在基极和地之间提供偏置,发射极接电阻Re到地,负载接在集电极和电源正极之间。二极管可以用1N4148或者直接用一颗三极管的发射结代替。电路简单到令人发指,成本不到一毛钱,但它在很多场景下确实能用。
工作原理是这样的:二极管串联后的电压约1.2V到1.4V,这个电压减去三极管的Vbe(约0.7V),剩下的电压落在Re上。所以恒流值大约是(Vd1+Vd2-Vbe)/Re。如果二极管和三极管用同种材料、同一批次,Vd和Vbe的温度系数会部分抵消,温漂表现比想象中好。我实测过用1N4148配9013,在0到50度范围内,电流变化大概在5%左右,对于驱动LED指示灯完全够用。
2.2 参数计算与选型实例
假设我要做一个15mA的恒流源,给一颗LED供电,电源电压5V。先选Re:假设二极管压降1.3V,Vbe取0.7V,那Re上的电压就是0.6V。Re = 0.6V / 15mA = 40Ω,取标准值39Ω。实际电流就是0.6V / 39Ω ≈ 15.4mA,可以接受。
然后验证三极管是否在放大区:LED压降约2V,Re压降0.6V,那Vce = 5V - 2V - 0.6V = 2.4V,远大于0.3V,安全。二极管偏置电流取1mA左右,用5V减去1.3V再除以1mA,得到3.7kΩ,取3.9kΩ。这个电阻不能太大,否则二极管动态电阻会影响偏置电压;也不能太小,否则浪费电流。1mA到5mA是比较舒服的区间。
2.3 这个方案的软肋在哪
最大的问题是二极管压降和Vbe的匹配度。如果你用的二极管和三极管不是同一工艺,温度系数可能差很多,温漂就会明显恶化。另外,电源电压变化时,二极管偏置电流会变,导致二极管压降微变,恒流值也会跟着动。我测过电源从4.5V变到5.5V,电流变化大约2%,对于要求不高的场合可以忍。
还有一个坑:如果负载短路,三极管会进入饱和,电流会飙升到电源电压除以Re的水平,可能烧管子。所以这个电路最好加一个限流电阻或者保险丝。我在早期项目里就吃过这个亏,负载端不小心短了一下,9013直接冒烟。后来养成习惯,凡是恒流源输出端都串一颗小电阻或者用自恢复保险丝。
3. 精度进阶:运放加三极管的负反馈恒流源
3.1 为什么运放能把精度拉起来
二极管偏置方案的精度瓶颈在于开环控制——它没有“感知”实际电流是多少,只是靠器件匹配来“猜”。运放方案则完全不同:它在发射极电阻上取电压,和基准电压比较,然后驱动三极管基极,形成一个闭环。运放的开环增益通常有80dB以上,这意味着它能把采样电压和基准电压的误差压到极低。只要基准电压够稳、采样电阻够准,恒流精度可以做到1%以内。
这个电路的结构是:运放同相端接基准电压Vref,反相端接三极管发射极,运放输出通过电阻驱动三极管基极,三极管集电极接负载到电源正极,发射极接Re到地。运放会强制反相端电压等于同相端,所以Re上的电压就等于Vref,恒流值就是Vref/Re。简单粗暴,而且精度极高。
3.2 基准电压怎么给才靠谱
基准电压的来源决定了整个恒流源的精度上限。最便宜的做法是用电阻分压,但分压比会随电源电压变化,恒流值也跟着变。稍微好一点用TL431,温漂可以做到50ppm/度,价格也就几毛钱。要求再高就用专用基准芯片,比如REF3012之类的,初始精度0.2%,温漂25ppm/度。
我一般根据负载需求来选:驱动LED指示灯,电阻分压加一颗滤波电容就够了;驱动传感器电桥或者激光二极管,必须上TL431以上;如果是精密测量设备,那就直接上专用基准,别省这个钱。另外,基准电压的噪声也要考虑,可以在基准端并一颗1uF到10uF的电容,把高频噪声滤掉。
3.3 运放选型与补偿电容
运放的选择主要看三个参数:输入失调电压、输入偏置电流、增益带宽积。输入失调电压直接叠加在Vref上,所以越小越好。通用运放如LM358,失调电压几个mV,对于Vref=1V来说就是0.几%的误差,可以接受。但如果Vref只有100mV,那失调电压的影响就大了,得用失调电压几十uV的精密运放。
输入偏置电流会影响采样精度,特别是Re较大的时候。比如Re=10kΩ,偏置电流1uA,就会产生10mV的误差。所以高阻采样时要用CMOS输入运放,偏置电流在pA级别。增益带宽积决定了电路的响应速度,恒流源一般不需要太快,1MHz以上就够。但要注意,运放驱动三极管基极时,整个环路可能振荡,需要在运放输出和基极之间串一颗小电阻,再在基极和地之间加一颗小电容,构成一个低通,把高频增益压下去。我通常先用100Ω和100pF试,然后用示波器看阶跃响应,微调到自己满意。
4. 电流镜:集成电路里的恒流担当
4.1 基本电流镜的工作原理
电流镜的核心思想是:如果两颗三极管的Vbe相同,那么它们的集电极电流就成比例。把两颗NPN的基极连在一起,发射极都接地,其中一颗的集电极和基极短接(二极管接法),注入参考电流Iref,另一颗的集电极就是输出电流Iout。理想情况下Iout = Iref,因为两颗管子Vbe一样,电流自然一样。
但现实中,基极电流会分走一部分Iref,导致输出电流比参考电流小。如果两颗管子的β都是100,那误差大约2/β,也就是2%。这个误差在要求不高的场合可以接受,但精密应用就需要改进。改进方法有两种:一是加缓冲管做基极电流补偿,二是用cascode结构提高输出阻抗。
4.2 威尔逊电流镜和cascode电流镜
威尔逊电流镜用三颗管子,把基极电流误差几乎完全消除,输出阻抗也提高了一个数量级。它的结构是:两颗管子做基本电流镜,第三颗管子接在输出管的集电极和基极之间,形成负反馈。这个电路的输出阻抗大约为β×ro,比基本电流镜的ro高了β倍。对于需要高输出阻抗的场合,比如给差分对做尾电流源,威尔逊电流镜是非常划算的选择。
Cascode电流镜则是另一种思路:在输出管的集电极再串一颗管子,让输出管的Vce保持恒定,从而消除Early效应带来的电流误差。Cascode的输出阻抗可以做到β×ro甚至更高,而且频率响应也不错。在版图设计里,cascode电流镜的匹配性很好做,因为所有管子都可以放在同一个阱里,方向一致,梯度效应可以抵消。我在做高精度DAC的偏置电路时,cascode电流镜是首选。
4.3 版图匹配的实战经验
电流镜的精度很大程度上取决于版图匹配。即使电路原理完美,版图画得不对,匹配误差也可能超过5%。我的经验是:第一,所有电流镜管子必须同方向、同尺寸,不要为了省面积把管子旋转90度;第二,在管子周围加dummy管,保证边缘管子和中间管子的环境一致;第三,用共质心布局,把两颗管子拆成多个指状交叉排列,抵消线性梯度;第四,尽量远离功率器件和时钟线,避免热梯度和衬底噪声。
还有一点:电流镜的参考电流走线要对称,最好用相同的线宽和长度,避免IR drop导致Vbe不一致。如果参考电流是外部给的,那走线上的压降会直接变成电流误差。我一般会在参考电流路径上留测试点,流片后实测再微调。
5. 高压场景:Cascode恒流源与高压运放方案
5.1 高压下三极管的击穿问题
当电源电压超过三极管的Vceo额定值时,直接使用就会击穿。比如常见的9013,Vceo只有20V,用在24V或48V系统里就非常危险。这时候有两种选择:一是换用高压管子,比如MJE13003,Vceo有400V;二是用cascode结构,把电压压力分摊到两颗管子上。
Cascode恒流源的结构是:下面一颗管子做电流设定,上面一颗管子做电压阻挡。下面管子的集电极电压被上面管子的基极电压钳位在一个固定值,比如5V,这样下面管子永远看不到高压。上面管子承受大部分电压,但它的Vbe由下面管子的集电极电压决定,所以电流仍然由下面管子控制。这个结构在高压LED驱动和工业传感器激励里非常常见。
5.2 高压运放的选型与保护
如果用运放做高压恒流源,运放本身的供电电压就成了问题。普通运放供电最高36V,对于48V系统就不够。这时候要么用高压运放,比如OPA454,供电可以到100V以上;要么用低压运放加高压三极管,运放只控制基极,集电极电压由外部管子承担。
保护方面,高压场景一定要考虑负载开路和短路。负载开路时,三极管集电极电压会升到电源电压,如果超过Vceo就击穿。所以要在集电极和电源之间加钳位二极管,或者用TVS管把电压限制在安全范围内。负载短路时,电流会飙升,要在发射极加快速熔断保险丝或者用运放的限流功能。我在一个48V工业项目里,就因为没加钳位,负载插拔时打火把管子打穿了,后来加了TVS才稳定。
6. 调试与实测:从仿真到量产的坑
6.1 仿真能信几分
仿真对于恒流源设计很有帮助,特别是验证工作点和温度漂移。但仿真模型里的β值和Vbe通常都是典型值,实际批次离散性可能很大。我一般会在仿真里做蒙特卡洛分析,把β设为50到200的均匀分布,Vbe设为0.6V到0.75V,看看电流分布范围。如果仿真显示最坏情况下电流偏差超过10%,那实际电路肯定更糟,必须改设计。
另外,仿真里的热效应往往是静态的,实际电路中三极管自热会导致Vbe下降,电流上升,形成正反馈。如果散热不好,可能热失控。我习惯在仿真里加一个温度源,模拟管子结温升高20度,看看电流变化多少。如果变化超过5%,就要考虑加发射极电阻负反馈或者用温度补偿。
6.2 实测中常见的异常波形
调试恒流源时,示波器是最重要的工具。我遇到过几种典型异常:第一种是上电瞬间电流过冲,原因是运放输出从0V升到工作点时,三极管基极电压上升太快,导致瞬间大电流。解决办法是在运放输出加RC缓启动,或者用软启动电路。第二种是负载变化时电流振荡,原因是环路相位裕度不够,需要在运放输出和基极之间加补偿电容。第三种是电流随温度缓慢漂移,原因是采样电阻温漂或者基准温漂,需要换低温漂器件。
还有一种隐蔽的坑:三极管自激振荡。有时候示波器上看电流很稳,但用频谱仪能看到几十MHz的杂散。这种振荡可能来自基极引线的电感,也可能来自负载的电容。解决办法是在基极串磁珠或者小电阻,在集电极加RC吸收。
6.3 量产一致性怎么保证
量产时最怕的是批次一致性差。我的做法是:第一,采样电阻用0.1%精度的,别用5%的;第二,三极管选同一批次、同一封装,最好让供应商提供β分档;第三,基准电压源用同一批次,避免混用;第四,在PCB上留一个可调电阻的位置,量产时用自动测试设备微调,把电流调到目标值±1%以内。
另外,测试环节要模拟实际工作温度。我一般会在高低温箱里抽测,-20度、25度、70度各测一次,看电流变化是否在规格内。如果超差,就要分析是基准漂移还是三极管漂移,然后针对性换料。这个流程虽然麻烦,但比批量退货划算得多。
7. 几种方案的横向对比与选型建议
7.1 成本、精度、复杂度的三角关系
| 方案 | 元件数 | 典型精度 | 温漂 | 成本 | 适用场景 |
|---|---|---|---|---|---|
| 二极管偏置 | 4 | ±5% | 差 | 极低 | LED指示、低要求负载 |
| 运放加三极管 | 6-8 | ±1% | 中 | 低 | 传感器激励、精密LED |
| 基本电流镜 | 2-3 | ±3% | 中 | 极低 | 芯片内部偏置 |
| 威尔逊电流镜 | 3-4 | ±1% | 中 | 低 | 高阻抗尾电流源 |
| Cascode电流镜 | 4-5 | ±0.5% | 好 | 中 | 高精度模拟电路 |
| 高压Cascode | 5-6 | ±1% | 中 | 中 | 高压LED、工业传感器 |
选型时先问自己三个问题:电流精度要求多少?电源电压和负载电压的裕量够不够?成本能接受多少?如果精度要求低于2%,二极管偏置或基本电流镜就够了。如果要求1%以内,运放方案或威尔逊电流镜更合适。如果电源电压超过30V,必须考虑cascode或高压管。
7.2 我的个人选型习惯
做了这么多年,我形成了一套自己的选型顺序:先看电源电压,如果低于12V且精度要求不高,直接二极管偏置,省事省钱。如果精度要求1%左右,用运放加三极管,基准用TL431,采样电阻用0.1%,这套组合我用了上百次,非常稳。如果是芯片内部设计,基本电流镜加cascode,面积和精度平衡得最好。高压场景一律cascode,下面管子用低压高β的,上面管子用高压低β的,分工明确。
还有一点:不要迷信仿真,也不要迷信理论计算。实际焊接一块板子,用可调电源和电子负载测一遍,比什么都强。我见过太多理论计算完美但实际一塌糊涂的电路,也见过理论粗糙但实际很稳的电路。硬件设计的乐趣就在这,永远有惊喜。
8. 几个容易被忽略的细节
8.1 三极管的功耗计算
很多人选三极管只看电流和电压,忘了功耗。恒流源里三极管的功耗是Vce乘以Ic。比如5V电源驱动2V LED,恒流20mA,Vce=3V,功耗就是60mW。SOT-23封装的热阻大约250度/W,温升15度,没问题。但如果是24V电源驱动2V LED,Vce=22V,功耗440mW,SOT-23就扛不住了,得换SOT-223或者加散热片。我一般会留50%的裕量,算出来功耗300mW,就选额定600mW以上的封装。
8.2 采样电阻的温漂
采样电阻的温漂直接变成电流温漂。普通厚膜电阻温漂100ppm/度,温度变化50度就是0.5%的阻值变化,电流也跟着变0.5%。如果精度要求1%,那这个温漂就吃掉一半预算。所以精密场合要用金属膜电阻,温漂25ppm/度甚至更低。另外,电阻的自热也会导致阻值变化,功率裕量至少留2倍以上。
8.3 电源抑制比
恒流源的电源抑制比是指电源电压变化时,输出电流的变化率。二极管偏置方案的电源抑制比很差,因为偏置电流直接随电源电压变。运放方案的电源抑制比取决于基准的电源抑制比和运放的电源抑制比。如果基准是电阻分压,那电源抑制比基本为零。所以精密场合基准必须用带隙基准或者TL431,它们内部有反馈,电源抑制比可以做到60dB以上。
8.4 启动时间与软启动
有些负载对启动电流敏感,比如激光二极管,瞬间过流会损坏。这时候需要软启动。最简单的软启动是在基准端加RC,让Vref缓慢上升。运放方案里,可以在运放输出和基极之间加RC,时间常数取1ms到10ms。但要注意,软启动电容会影响环路稳定性,需要重新补偿。我一般先用10kΩ和1uF试,然后看启动波形,调整到没有过冲为止。
9. 从分立到集成:什么时候该换方案
分立三极管恒流源适合中小电流、成本敏感、设计自由度高的场景。但如果电流超过1A,或者精度要求0.1%以上,分立方案就开始吃力了。这时候可以考虑专用恒流源芯片,比如LM334,或者恒流二极管,或者用运放加MOS管。MOS管的优势是没有基极电流误差,而且导通电阻可以做得很低,适合大电流。但MOS管的栅极驱动需要额外考虑,而且跨导比三极管低,环路补偿更麻烦。
我个人的分界线是:电流小于100mA、精度要求1%左右,用三极管方案;电流100mA到1A,用三极管加运放或者MOS加运放;电流大于1A,直接用专用芯片或者开关恒流源。开关恒流源效率高,但噪声大,不适合精密模拟负载。线性恒流源简单干净,但效率低,散热压力大。选哪个,看你的负载和预算。
10. 写在最后的一些实操心得
恒流源电路设计这件事,理论归理论,最后还是要落到板子上。我这些年最大的体会是:不要追求一步到位,先搭一个最简电路,测通了再逐步加精度。二极管偏置方案虽然粗糙,但它是理解恒流原理的最好起点。运放方案虽然复杂,但它是通往高精度的必经之路。电流镜虽然多在芯片里用,但理解了它对做分立电路也有帮助。
另外,多备几种三极管。9013、9014、2N3904、BC547,这些便宜管子各买一包,调试时换着试。不同管子的β和Vbe差异很大,有时候换一颗管子,电路就稳了。还有,采样电阻多买几个阻值,39Ω、47Ω、51Ω、100Ω,调试时用可调电阻先找感觉,确定了再换固定电阻。
最后说一个我踩过的坑:有一次用运放方案驱动LED,电流设定20mA,结果批量时发现10%的板子电流只有15mA。查了半天,发现是运放输入失调电压超差,批次里有部分管子失调电压到了5mV,而我的Vref只有200mV,误差2.5%加上其他误差就超了。后来把Vref提高到1V,采样电阻相应减小,问题解决。所以,Vref不要设得太低,至少500mV以上,给失调电压留足裕量。这个经验,希望对你有用。