恒流源这个东西,刚入行那会儿我觉得它特别不起眼——不就是让电流稳住不变嘛,能有多难?后来做LED驱动、电池充电、传感器激励、电化学测试这些项目,才发现恒流源电路的花样远比想象中多,选错了方案轻则精度不够,重则烧管子炸电容。这些年我用过至少十几种恒流源拓扑,踩过的坑也够写一本小册子了。这篇文章就把我实际项目中反复用到的六种经典恒流源电路拿出来,从原理、计算、选型到实操注意事项,一次性讲透。不管你是刚学模电的学生,还是正在做硬件方案选型的工程师,看完至少能少走两三年弯路。
1. 恒流源到底在解决什么问题
1.1 从“稳压”到“恒流”的思维切换
大部分人学电源是从稳压开始的,LM317、AMS1117这些三端稳压器用得很顺手,输入电压一变、负载一变,输出电压纹丝不动。但恒流源的逻辑正好反过来:它不管负载两端的电压怎么变,只保证流过负载的电流恒定。这个区别听起来简单,实际用起来思维方式要彻底切换。
举个最直观的例子。LED的正向压降会随温度漂移,一颗白光LED在25°C时Vf大概是3.2V,到了80°C可能降到2.9V。如果你用稳压源供电,电压不变、Vf降了,电流就会猛增,LED很快光衰甚至烧掉。但用恒流源供电,电流锁死在比如350mA,Vf怎么变都不影响亮度一致性,这就是恒流源在LED驱动领域不可替代的原因。
再比如电化学传感器、应变片、铂电阻测温,这些传感器的输出信号都正比于流过它的电流。电流一抖,测量精度直接崩。所以恒流源的精度和温漂指标,往往决定了整个系统的测量上限。
1.2 恒流源的三个核心指标
选恒流源方案之前,先把这三个指标搞清楚,后面选型就不会盲目。
恒流精度:实际电流和设定电流的偏差。注意这个精度要分初始精度和全温区精度,很多方案常温下0.1%,到了-40°C到85°C就变成2%了,原因就是基准源和电阻的温漂。
输出 compliance voltage:恒流源能维持恒流的最大负载电压。比如你用5V供电做一个恒流源,负载电阻太大导致需要的电压超过5V减去管子压降,恒流就失效了。这个指标决定了你的恒流源能带多大的负载。
温度系数:每摄氏度电流变化多少ppm。高精度场合这个指标比初始精度还重要,因为初始误差可以校准,温漂没法校准。
注意:很多人选恒流源只看精度不看compliance voltage,结果负载一接上去电流就不对了。选型时一定要先算清楚负载在最坏情况下需要多少电压。
1.3 六种经典方案的全景对比
先上一张总表,把六种方案的定位说清楚,后面再逐个展开。
| 方案 | 核心器件 | 典型精度 | 温度系数 | 适用电流范围 | 成本 | 复杂度 |
|---|---|---|---|---|---|---|
| 三端稳压器恒流 | LM317 | 1%~5% | 较差 | 10mA~1.5A | 极低 | 极简 |
| 基准源+运放+MOS | TL431+运放 | 0.1%~0.5% | 好 | 1mA~10A | 中 | 中等 |
| 运放+三极管 | 运放+三极管 | 0.5%~2% | 中等 | 1mA~500mA | 低 | 简单 |
| 镜像电流源 | 匹配三极管 | 2%~10% | 差 | 10uA~10mA | 极低 | 简单 |
| 双二极管恒流源 | 双二极管+运放 | 0.5%~1% | 中等 | 1mA~100mA | 低 | 中等 |
| 开关型恒流 | Buck芯片 | 1%~3% | 中等 | 100mA~20A | 中高 | 复杂 |
这张表是我自己项目经验的总结,精度和温漂都是实测典型值,不是datasheet上的理想值。下面逐个拆解。
2. 三端稳压器恒流源:最省事的入门方案
2.1 LM317恒流源的工作原理
LM317做恒流源是教科书级的经典电路,原理简单到一句话就能说清:LM317的ADJ引脚和OUT引脚之间固定1.25V基准电压,只要在这两个引脚之间接一个电阻R,电流就是1.25V/R,负载接在ADJ引脚和地之间,这个电流就全部流过负载。
电路结构是这样的:LM317的OUT脚接电阻R一端,R另一端接ADJ脚,负载接在ADJ脚和GND之间。LM317内部会调整OUT脚电压,使得OUT和ADJ之间始终保持1.25V,于是流过R的电流恒定为1.25/R,这个电流从OUT流出经R到ADJ,再经负载到地。
计算例子:要做一个350mA的LED恒流源,R = 1.25V / 0.35A = 3.57Ω。选3.6Ω标准值,实际电流约347mA,够用。
2.2 为什么LM317方案精度上不去
LM317的1.25V基准电压本身温漂就有几十ppm/°C,加上ADJ引脚的偏置电流(典型50uA,最大100uA)会分流一部分电流,导致小电流时误差特别大。比如你设定10mA,ADJ偏置电流50uA就占了0.5%,而且这个偏置电流本身还随温度变。
另外LM317的最小工作电流要求是10mA左右,低于这个值它就不稳压了,所以LM317做不了太小的恒流。我实测过,设定5mA的时候电流直接飘到8mA,完全不能用。
实操心得:用LM317做恒流源,电流最好设在20mA以上,低于这个值精度和稳定性都没法保证。如果非要小电流,ADJ脚对地加一个1mA左右的预负载电阻,能改善一些。
2.3 LM317恒流源的实操要点
散热是LM317方案最大的坑。LM317的压差乘以电流就是它自身的功耗。比如输入12V,负载LED压降3.2V,那LM317上要承受12-3.2-1.25=7.55V的压差,乘以350mA就是2.64W。TO-220封装不加散热片的热阻大概50°C/W,2.64W直接让结温升130°C,必炸。
所以用LM317做恒流源,输入电压不能太高,或者必须加足够大的散热片。我一般会先算功耗,超过1W就上散热片,超过3W就换方案。
电阻R的功率也要算。350mA流过3.6Ω,功耗是0.35²×3.6=0.44W,得用1W的电阻,用0.25W的会烧。这个细节很多人忽略。
3. TL431加运放加MOS:高精度恒流源的主力方案
3.1 为什么这个组合能做出0.1%精度
TL431是并联型基准源,2.5V基准的初始精度可以做到0.5%,温漂典型50ppm/°C,好的型号能到20ppm/°C。运放负责比较采样电阻上的电压和TL431的基准电压,MOS管作为调整管。这个架构的好处是基准和调整管分离,各自可以选最优的器件。
电路逻辑:采样电阻Rs串联在负载回路里,运放的同相输入端接TL431产生的2.5V基准(通过分压得到你需要的参考电压),反相输入端接采样电阻上端,运放输出驱动MOS管栅极。运放会调整MOS管导通程度,使得采样电阻上的电压等于参考电压,于是负载电流 = Vref / Rs。
这个架构的精度取决于三个因素:TL431基准精度、采样电阻精度、运放失调电压。三个都可以选很好的器件,所以整体精度能做到0.1%甚至更高。
3.2 采样电阻的选型与计算
采样电阻是恒流源的“标尺”,它的精度和温漂直接决定电流精度。我一般选合金电阻或者精密金属膜电阻,温漂25ppm/°C以内,精度0.1%。
阻值的选择要权衡:阻值大,采样电压大,运放失调影响小,但功耗大、compliance voltage损失大;阻值小则相反。经验法则是让采样电压在100mV到500mV之间。
计算例子:要做一个2A的恒流源,采样电压选200mV,则Rs = 0.2V / 2A = 0.1Ω。功耗 = 2²×0.1 = 0.4W,选1W的2512封装合金电阻。参考电压Vref = 200mV,用TL431的2.5V经分压得到,分压电阻选1%精度的金属膜电阻。
运放的选择很关键。失调电压要小,因为失调电压直接叠加在采样电压上。比如运放失调1mV,采样电压200mV,误差就是0.5%。要0.1%精度,运放失调要小于0.2mV,得选OPA333、ADA4522这类零漂移运放。
3.3 MOS管选型与环路稳定性
MOS管选型看三个参数:Vds耐压、Rds(on)、栅极电荷。Vds要大于最大compliance voltage加裕量。Rds(on)要小,减少压降和功耗。栅极电荷影响环路响应速度。
环路稳定性是这个方案最容易翻车的地方。运放加MOS管构成负反馈环路,如果相位裕度不够就会振荡。振荡的表现是电流纹波大、MOS管发热、甚至啸叫。
我一般会在运放输出和MOS管栅极之间串一个小电阻(10Ω到100Ω),在栅极和源极之间加一个电容(100pF到1nF),构成一个低通,压低高频增益。同时在采样电阻两端并联一个小电容(100nF),滤掉高频噪声。
注意:环路补偿没有万能公式,跟运放带宽、MOS管跨导、PCB布局都有关。我建议先用仿真跑一下环路增益和相位,再实际调试。实测时用示波器看采样电阻上的电压波形,有振荡就加大栅极电容或降低运放带宽。
3.4 一个实际项目的完整参数
我之前做过一个电化学传感器激励用的恒流源,要求100uA精度0.1%,温漂小于50ppm/°C。参数如下:
- 基准:TL431B(0.5%初始精度,50ppm/°C)
- 运放:ADA4522-2(失调0.5uV,温漂0.01uV/°C)
- 采样电阻:100Ω 0.1% 25ppm/°C 金属膜
- MOS管:2N7002(小电流场合够用)
- 参考电压:10mV(TL431的2.5V经250:1分压)
- 供电:12V
这个方案实测精度0.05%,温漂30ppm/°C,完全满足要求。关键点是采样电阻选了100Ω而不是小阻值,因为100uA电流下采样电压10mV,用大阻值能提高信噪比,但要注意运放失调要足够小。
4. 运放加三极管:低成本中等精度方案
4.1 三极管方案和MOS管方案的本质区别
三极管是电流控制器件,基极电流会影响集电极电流,而基极电流本身又是输出电流的一部分(发射极电流 = 集电极电流 + 基极电流),这就引入了误差。MOS管是电压控制器件,栅极几乎不取电流,所以精度更高。
但三极管便宜、驱动简单、低频噪声好,在对成本敏感、精度要求不高的场合还是很常用。比如LED指示灯、小功率充电器、简单的传感器激励。
4.2 三极管恒流源的误差分析
三极管的β值直接影响精度。假设β=100,输出电流100mA,基极电流就是1mA,如果采样电阻接在发射极,那发射极电流是101mA,集电极电流才是100mA。如果你从集电极取输出,误差就是1%。而且β随温度变化,-40°C到85°Cβ可能变化一倍,误差也跟着变。
解决办法是用达林顿管提高β,或者用运放反馈把基极电流也纳入环路。但达林顿管压降大,至少1.2V,compliance voltage损失大。
我一般会在发射极串一个小电阻做负反馈,改善β变化带来的影响。但这样又损失了电压裕量,需要权衡。
4.3 实操中的温度补偿技巧
三极管的Vbe有-2mV/°C的温度系数,如果采样电阻上的电压比较小(比如100mV),Vbe的变化就会显著影响电流。补偿方法是在运放的同相输入端加一个同样温度系数的三极管be结,让两个Vbe变化相互抵消。
具体做法:用一颗和调整管同型号的三极管,基极和集电极短接,接在基准电压和运放同相输入端之间。这样基准电压就叠加了一个Vbe,和调整管的Vbe抵消。这个方法在精密场合很有效,能把温漂从几百ppm降到几十ppm。
实操心得:三极管方案我一般只用在精度2%以内的场合,超过这个要求直接上MOS管方案。省下的调试时间远比省下的几毛钱值钱。
5. 镜像电流源:集成电路内部的经典结构
5.1 镜像电流源的工作原理
镜像电流源是模拟集成电路里最基础的恒流结构,两颗匹配的三极管,基极相连、发射极相连,其中一颗的集电极和基极短接(二极管接法),另一颗的集电极作为输出。因为两颗管子Vbe相同,如果匹配得好,集电极电流就相等。
参考电流由一颗电阻决定:Iref = (Vcc - Vbe) / R。输出电流理论上等于Iref,实际因为基极电流误差和Early效应,会有几个百分点的偏差。
5.2 镜像电流源的精度限制
镜像电流源的精度取决于三极管的匹配度。分立三极管的匹配度很差,Vbe可能差几十mV,导致电流差百分之几十。所以分立器件做镜像电流源基本没法用,它主要是集成电路内部的结构,因为IC上相邻的三极管匹配度可以做到1mV以内。
如果非要用分立器件,得用匹配对管,比如BCM847、MAT02这些,但价格不便宜,还不如直接用运放方案。
镜像电流源的另一个问题是输出阻抗不够高,Early效应导致输出电流随负载电压变化。改进方案是共源共栅镜像(cascode),能提高输出阻抗,但需要更多电压裕量。
5.3 什么时候该用镜像电流源
镜像电流源适合多路相同电流输出的场合,比如给多个传感器提供相同的偏置电流。在IC内部,一个参考电流可以镜像出十几路,每路精度1%左右,非常经济。
分立电路里我基本不用镜像电流源,除非是超低成本、精度要求极低的场合。比如给几颗LED提供大致相同的电流,用匹配对管做镜像,比每路都做一个恒流源省事。
6. 双二极管恒流源:一个被低估的巧妙结构
6.1 双二极管恒流源的原理
双二极管恒流源利用两个二极管的压降差来产生恒流。具体来说,一个二极管的正向压降大约是0.7V,两个二极管串联是1.4V,但如果你让一个二极管流过不同的电流密度,它的压降会变化。利用这个压降差除以一个电阻,就能得到恒流。
更常见的结构是用一颗三极管的be结和一颗二极管串联,利用be结和二极管压降的差异。或者用两颗不同电流密度的二极管。这个结构的温度系数可以通过调整电流密度比来补偿,做到接近零温漂。
6.2 双二极管恒流源的实操计算
假设你用一颗1N4148和一个三极管be结。1N4148在1mA下Vf约0.65V,三极管be结在1mA下Vbe约0.65V,两者差不多,压差接近零,没法用。所以要让两者电流密度不同,比如二极管流过10uA,三极管流过1mA,这样压差可能有100mV左右。
实际电路中,这个压差加在一个电阻上,产生恒流。压差的正温度系数和电阻的负温度系数(如果用普通电阻)可以部分抵消,但很难做到完全补偿。
我实测过这个电路,精度大概1%,温漂200ppm/°C,不算好但也不差。优点是电路极简,两颗管子一个电阻就搞定,适合对成本极度敏感的场合。
6.3 双二极管恒流源的适用场景
这个结构我主要用在两个地方:一是给运放提供偏置电流,精度要求不高但要求简单;二是做电流限制,比如限制某个电路的启动电流。它不适合做精密恒流,但作为“够用就好”的方案,性价比很高。
注意:双二极管恒流源的输出电流对电源电压比较敏感,因为二极管的压降会随电流变化。用的时候最好加一个预稳压,或者用恒流源供电。
7. 开关型恒流源:大电流场合的唯一选择
7.1 为什么大电流必须用开关方案
线性恒流源的调整管始终工作在线性区,压差乘以电流就是功耗。比如做一个5A的恒流源,压差3V,功耗就是15W,得用巨大的散热片,效率只有百分之几十。开关型恒流源用Buck拓扑,调整管工作在开关状态,效率能到90%以上,功耗小、体积小。
Buck型恒流源的原理和Buck稳压一样,只是反馈量从电压变成了电流。采样电阻放在输出回路里,反馈电压正比于输出电流,控制环路调整占空比使电流恒定。
7.2 Buck恒流源的电感选型
电感是Buck恒流源的核心器件,选型要看三个参数:电感量、饱和电流、直流电阻。
电感量决定了电流纹波。纹波电流ΔI = (Vin - Vout) × D / (L × fsw),其中D是占空比,fsw是开关频率。一般让纹波电流为输出电流的20%到40%。比如输出2A,纹波取0.6A,根据公式反推电感量。
饱和电流要大于输出电流加纹波电流的一半,即Iout + ΔI/2。比如2A输出、0.6A纹波,饱和电流要大于2.3A,留20%裕量选2.8A以上。
直流电阻影响效率,越小越好,但太小体积大。一般选DCR在50mΩ以内的。
7.3 开关恒流源的EMI和纹波问题
开关恒流源最大的问题是EMI和输出纹波。开关节点的高dv/dt和di/dt会辐射干扰,输出电流上叠加开关纹波。对于LED驱动,纹波会导致光闪烁;对于电池充电,纹波影响充电质量。
解决办法:输入加π型滤波,开关节点的铜皮面积尽量小,电感选屏蔽型,输出加LC滤波。如果纹波要求高,可以在输出再加一级线性恒流源做后级,构成开关加线性的混合方案,兼顾效率和精度。
我做过一个10A的LED驱动,用Buck恒流加线性后级,效率88%,电流纹波小于1%,效果很好。但成本比纯线性方案高不少,得看项目预算。
8. 六种方案选型决策树与实战建议
8.1 按精度和电流快速定位方案
选型其实就两个维度:精度要求和电流大小。我整理了一个决策流程,照着走基本不会错。
| 电流范围 | 精度要求 | 推荐方案 | 理由 |
|---|---|---|---|
| <10mA | 一般 | 镜像电流源 | 简单,IC内部常用 |
| <10mA | 高 | 运放+MOS | 精度高,失调小 |
| 10mA~500mA | 一般 | LM317或运放+三极管 | 成本低,够用 |
| 10mA~500mA | 高 | TL431+运放+MOS | 精度0.1%可达 |
| 500mA~5A | 一般 | LM317加散热或Buck | 看压差和效率 |
| 500mA~5A | 高 | TL431+运放+MOS | 线性方案精度高 |
| >5A | 任意 | Buck恒流 | 线性方案功耗不可接受 |
8.2 我踩过的选型坑
第一个坑:用LM317做1A恒流源,没算功耗,结果LM317烫到能煎鸡蛋,加了散热片还是热,最后换成Buck方案才解决。教训是线性方案超过2W功耗就要慎重。
第二个坑:运放+MOS方案,采样电阻选了0.01Ω,采样电压只有10mV,运放失调1mV导致10%误差。后来改成0.1Ω,采样电压100mV,误差降到1%。教训是采样电压不能太小,至少100mV。
第三个坑:Buck恒流源电感选小了,纹波电流达到输出电流的80%,LED闪烁明显。后来电感量加倍,纹波降到30%,问题解决。教训是电感量要按纹波要求算,不能随便选。
第四个坑:TL431方案里TL431的阴极电流没留够,低于1mA导致基准不稳。TL431需要至少1mA的阴极电流才能正常工作,分压电阻要算好。
8.3 元器件选型的几个硬指标
采样电阻:精度0.1%起步,温漂25ppm/°C以内,功率留2倍裕量。合金电阻优于金属膜,但贵。
运放:失调电压小于采样电压的0.1%,温漂小于5uV/°C。零漂移运放(如ADA4522、OPA333)是首选。
基准源:初始精度0.5%以内,温漂50ppm/°C以内。TL431B、LM4040、REF3025都是常用型号。
MOS管:Vds耐压留2倍裕量,Rds(on)在目标电流下压降小于100mV,栅极电荷适中。
电感:饱和电流留20%裕量,DCR尽量小,屏蔽型优先。
实操心得:选型时不要只看datasheet的典型值,要看全温区的最坏值。很多器件的参数在温度极限时会恶化好几倍,常温调好的电路到了高温就飘了。
9. 常见问题排查与调试技巧
9.1 恒流源不恒流的排查思路
恒流源不恒流,先查三个地方:供电电压够不够、采样电阻对不对、环路有没有振荡。
供电电压不够是最常见的。用示波器看调整管两端的电压,如果接近零,说明调整管已经饱和,没有调节余量了。这时候要么提高供电电压,要么减小负载。
采样电阻虚焊或阻值不对也会导致电流不对。用万用表量采样电阻的实际阻值,和标称值对比。
环路振荡表现为电流波动、管子发热、有啸叫。用示波器看采样电阻上的电压波形,有高频振荡就是环路问题,加补偿电容或降低运放带宽。
9.2 温漂问题的定位与解决
温漂大,先分清是基准漂、采样电阻漂还是运放漂。用热风枪或恒温箱给各部分分别加热,看电流变化。
基准漂:换低温漂基准,或者用恒温槽。采样电阻漂:换合金电阻或精密金属膜。运放漂:换零漂移运放。
还有一个容易被忽略的:PCB布局导致的温漂。采样电阻靠近发热器件,局部温度高,阻值变化。解决办法是把采样电阻远离热源,或者用四线制接法消除引线电阻影响。
9.3 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决措施 |
|---|---|---|---|
| 电流偏大 | 采样电阻偏小 | 万用表量阻值 | 换电阻 |
| 电流偏小 | 基准偏低 | 量基准电压 | 换基准或调分压 |
| 电流波动 | 环路振荡 | 示波器看波形 | 加补偿 |
| 高温电流漂 | 温漂大 | 加热测试 | 换低温漂器件 |
| 带载能力差 | compliance不够 | 量调整管压差 | 提高供电 |
| 开机冲击 | 软启动缺失 | 看开机波形 | 加软启动 |
| 纹波大 | 滤波不足 | 看纹波波形 | 加LC滤波 |
9.4 调试时的几个实用技巧
调试恒流源,我习惯先不接负载,用电子负载或者大功率电阻做假负载,从低电流开始调,逐步加到目标电流。这样安全,不会一上来就烧管子。
测电流不要用万用表串联,万用表的内阻会影响恒流源工作。用采样电阻上的电压除以阻值来算电流,或者用电流探头。
调环路时,先用一个大的补偿电容(比如1uF)让环路变慢,确认能稳定工作,再逐步减小电容提高响应速度。这样比一上来就调快更安全。
注意:调试大电流恒流源时,一定要戴护目镜。我见过采样电阻过功率炸开的,碎片飞出来很危险。安全第一。
10. 从恒流源延伸出去的几个设计思路
10.1 恒流源加恒压源做电池充电
锂电池充电需要先恒流后恒压,用一颗运放加MOS管就能实现。恒流阶段运放控制电流,恒压阶段运放控制电压,两个环路通过二极管或逻辑切换。这个结构在充电器里非常常见,理解了恒流源,充电器设计就通了一半。
10.2 恒流源做传感器激励
铂电阻测温、应变片测力、电化学传感器,都需要恒流激励。恒流源的精度直接决定测量精度。我做过一个PT100测温,用TL431加运放加MOS做1mA恒流,测温精度0.1°C,比用恒压分压方案好很多。
10.3 恒流源做LED驱动
LED驱动是恒流源最大的应用市场。从几毫安的指示灯到几十安的舞台灯,恒流源方案从LM317到Buck加线性后级,覆盖了全功率段。做LED驱动,核心就是选对恒流源拓扑和散热方案。
10.4 程控恒流源的设计思路
程控恒流源用DAC代替基准电压,MCU控制DAC输出,就能编程设定电流。关键是DAC的精度和温漂要匹配恒流源的要求。我用过DAC8552加OPA333加MOS管做程控恒流源,0到1A可调,精度0.1%,用于自动化测试设备。
最后分享一个我个人的习惯:每次做恒流源,我都会在采样电阻旁边放一个测试点,方便随时量电压算电流。这个小小的测试点,在调试和排查问题时能省大量时间。还有,恒流源的PCB布局,采样电阻的地线一定要单独走,接到运放的地,不要和功率地混在一起,否则地线上的压降会串进采样回路,精度直接崩。这些都是文档里不会写、但实际项目中决定成败的细节。