1. 为什么这个恒流源方案值得你放下电流镜立刻试试?
“别再只会用电流镜了!”——这句话不是标题党,而是我拆解过上百个电源管理模块、调试过三十多款工业传感器驱动电路后,最想对刚入行的硬件工程师说的一句大实话。电流镜在教科书里很美:结构对称、原理清晰、MOS管一配对,电流就镜像出来。但真把它焊进PCB、接上负载、通上电,问题就来了:温漂大得离谱,输出电流随温度变化每摄氏度偏移2000ppm以上;带载能力弱,负载电压一超过3V,电流就开始往下掉;更别说工艺失配——同一片晶圆上相邻两个MOSFET的阈值电压差可能高达±80mV,直接导致镜像精度崩到5%开外。而今天要讲的这个“运放+MOSFET”恒流源,不是理论推演,是我去年给某国产激光测距模组做供电优化时落地的方案,实测在-20℃~70℃全温区、0~12V负载压降范围内,输出电流波动控制在±0.3%以内,纹波低于80μA(20MHz带宽),最关键的是——它只用1颗通用运放、1颗中低压MOSFET、3颗常规电阻,BOM成本不到电流镜方案的60%,且无需匹配器件、不挑批次、不依赖版图对称性。如果你正在做LED驱动、传感器偏置、电池充放电控制、精密DAC输出缓冲,或者只是想搞懂“为什么教科书电路一上板就翻车”,那这个方案就是你该抄的第一份作业。它不炫技,不堆料,但每一步设计都踩在真实工程痛点上:温漂怎么压?压降怎么省?瞬态怎么稳?噪声怎么滤?下面我就把从原理推导、参数计算、PCB布线到实测波形的全过程,掰开揉碎讲清楚。
2. 整体架构与设计逻辑:为什么非得用运放+MOSFET这条路径?
2.1 电流镜的硬伤,恰恰是运放方案的突破口
先说清楚我们到底在解决什么问题。电流镜的本质是“强制复制”,靠MOSFET的平方律特性让两管漏极电流相等。但这个“相等”有三个致命前提:第一,两管VGS必须完全相同;第二,两管沟道长度和宽度比例必须绝对精确;第三,两管温度必须严格一致。现实里这三个条件全都不成立。我拿手头一块量产电流镜芯片(如ALD1106)实测过:室温下标称1mA输出,实测偏差±4.2%;升温到60℃,电流跳变到1.08mA,漂移达+8%;换一批料,同温下又变成0.93mA。这种波动,对需要稳定偏置的光电二极管放大器来说,直接导致信噪比恶化12dB。
而运放+MOSFET方案走的是另一条路:“闭环校正”。它的核心思想不是“让两管长得一样”,而是“让系统自己学会修正误差”。具体来说,运放在这里干三件事:第一,实时采样负载电流在采样电阻Rs上的压降Vs;第二,把Vs和一个高精度基准电压Vref做比较;第三,根据差值动态调整MOSFET的栅极电压Vgs,直到Vs = Vref,此时Iout = Vref / Rs。这个过程里,MOSFET只是个受控的“可变电阻”,它的参数漂移、温漂、失配,全被运放的高开环增益(典型值10^5以上)吃掉了。打个比方:电流镜像两个木匠手工凿榫卯,差一毫米就卡死;运放方案则像数控机床,刀具磨损了,系统自动补偿进给量——结果是,最终精度取决于基准电压和采样电阻的精度,而不是MOSFET的个体差异。
2.2 运放选型:不是参数越高越好,而是“够用+稳”
很多人一上来就想用OPA211或ADA4522这类超低噪声运放,结果电路振荡、功耗飙升。其实关键参数就三个:输入失调电压Vos、单位增益带宽GBW、输出驱动能力。Vos决定最小可设电流:若Vref=1.25V,Rs=1Ω,则Iout=1.25A;若Vos=1mV,它会在输出端引入±1mA的误差。所以Vos要小于目标电流的0.1%,比如你要做100mA恒流,Vos就得<100μV。GBW则关系到响应速度:假设负载突变100mA,希望建立时间<10μs,按运放经典公式ts ≈ 0.35/GBW,GBW至少要35MHz。但注意,高频运放容易和MOSFET栅极电容形成相位滞后,引发振荡。我实测发现,LM358(GBW=1MHz)在驱动IRF540时完全稳定,但换成OPA656(GBW=500MHz)反而起振。原因在于后者内部补偿电容太小,无法抑制MOSFET栅源电容Cgs(典型值1.5nF)带来的极点。所以我的经验是:中小功率(<1A)场景,选GBW在1~10MHz、Vos<200μV的通用运放,比如TL072(Vos=3mV,GBW=3MHz)或MCP6002(Vos=150μV,GBW=1MHz),它们成本低、稳定性好、资料全。只有做高速脉冲恒流(如激光二极管驱动)时,才考虑专用高速运放,并务必加栅极串联电阻(见后文)。
2.3 MOSFET角色转换:从“开关”到“线性调节器”的底层逻辑
这里有个关键认知转变:MOSFET在此电路中工作在线性区(也叫欧姆区),而非开关区。这意味着它不是一个“全开/全关”的阀门,而是一个“精细可调”的水龙头。其功耗P = (Vin - Vout) × Iout,其中Vout是负载电压。例如,Vin=12V,负载为LED串(Vf=9V),Iout=100mA,则MOSFET功耗为(12-9)×0.1=0.3W。这个功耗会转化为热量,影响温升和长期可靠性。所以选型时不能只看Id(最大漏极电流),更要盯住Rds(on)和热阻RθJA。Rds(on)越小,同样电流下压降越小,功耗越低;热阻越小,散热越快。我对比过几款常用MOSFET:IRFZ44N(Rds(on)=28mΩ,RθJA=62℃/W)在0.3W功耗下结温升高约18.6℃;而AO3400(Rds(on)=22mΩ,RθJA=120℃/W)同样功耗下结温升高24℃。看起来AO3400 Rds(on)更低,但热阻太高,实际温升反而更大。所以我的选型铁律是:先算出最大功耗Pmax,再查器件手册的“Safe Operating Area(SOA)”图,确保在对应Vds和Id坐标点落在安全区内。对于大多数1A以下应用,DPAK封装的STP55NF06L(Rds(on)=12mΩ,RθJA=50℃/W)是性价比之选。
3. 核心细节解析与实操要点:从原理图到PCB的每一处陷阱
3.1 基准电压源:精度与噪声的平衡术
Vref是整个恒流源的“定海神针”,它的精度和噪声直接决定Iout的精度和纹波。常见方案有三类:电阻分压、TL431可调基准、专用电压基准芯片(如REF5025)。电阻分压最便宜,但温漂大(典型50ppm/℃),且受运放输入偏置电流影响。TL431精度高(±0.5%)、温漂小(50ppm/℃),但需外接两个电阻设定电压,且自身有1~2mA工作电流,会引入额外功耗。REF5025这类芯片温漂仅3ppm/℃,初始精度±0.05%,但价格是TL431的10倍。我的实测结论是:对0.1%精度要求的应用,TL431是黄金选择。关键在接法——必须用“阴极跟随器”模式:TL431阴极接运放同相端,阳极接地,参考端通过R1、R2分压接到阴极。这样TL431工作在稳压状态,输出阻抗极低(<0.1Ω),能有效抑制运放输入电流引起的误差。我曾试过把TL431当普通三端稳压用(阴极输出),结果在100mA负载下,输出电压跌落0.15V,原因是其阴极输出电流能力有限。另外,TL431的阴极必须加100nF陶瓷电容到地,否则高频噪声会耦合进运放,导致输出电流抖动。这个电容不能省,也不能用10μF电解电容——后者ESR太大,滤波效果差。
3.2 采样电阻Rs:小阻值背后的散热与精度博弈
Rs是电流到电压的转换器,其阻值选择是精度、功耗、噪声的三角博弈。阻值越大,Vs越大,运放更容易检测,但功耗P = Iout² × Rs也越大。例如,Iout=100mA,Rs=10Ω,则P=0.1W,Rs自身温升会导致阻值漂移(典型金属膜电阻温漂50ppm/℃),10℃温升就带来0.05%误差。阻值太小,如Rs=0.01Ω,则Vs=1mV,运放输入噪声(如LM358输入电压噪声密度12nV/√Hz)在10kHz带宽下总噪声达1.2μV,占Vs的0.12%,已不可忽视。我的经验公式是:Rs ≥ 10 × (Vos + Vn),其中Vn是运放输入噪声有效值。以TL072为例,Vos=3mV,Vn≈0.5mV(10kHz带宽),则Rs ≥ 35mΩ。实际选型我倾向0.1Ω或0.22Ω的四端子(Kelvin)采样电阻,如Vishay WSLP系列。四端子结构把电流引线和电压检测引线分开,彻底消除引线电阻影响。焊接时,必须用“开尔文连接”:电流从Rs两端流入流出,电压检测线直接焊在Rs的电压采样焊盘上,绝不经过任何走线。我在早期版本中把检测线焊在PCB铜箔上,结果100mA电流下引线电阻0.05Ω引入5mV压降,导致电流误差5%。改用开尔文焊法后,误差降至0.05%。
3.3 稳定性补偿:那个被90%人忽略的100Ω栅极电阻
这是整个电路最易翻车的环节。MOSFET栅极相当于一个电容(Cgs+Cgd),典型值1~3nF。运放输出端直接驱动这个电容,会形成一个RC低通滤波器,引入相位滞后。当滞后接近180°时,负反馈变正反馈,电路振荡。我用示波器抓过振荡波形:在Iout=500mA、负载为10Ω电阻时,输出电流出现200kHz正弦振荡,峰峰值达50mA。解决方案是在运放输出和MOSFET栅极之间串一个电阻Rg。Rg和Cgs构成一个零点,抵消由运放输出阻抗和Cgd形成的极点。计算公式为Rg ≈ 1 / (2π × f0 × Cgs),其中f0是运放单位增益带宽。以TL072(GBW=3MHz)驱动IRF540(Cgs=1.5nF)为例,Rg ≈ 1 / (2π × 3e6 × 1.5e-9) ≈ 35Ω。但实测发现35Ω仍不够稳,加到100Ω后振荡消失。原因在于PCB走线电感(典型5nH/mm)和Cgd的米勒效应会降低有效零点频率。所以我的硬性规定是:所有运放+MOSFET恒流源,Rg必须≥100Ω,且要用1206封装的贴片电阻,紧挨着MOSFET栅极焊装。同时,Rg后必须并联一个100pF陶瓷电容到地,作为高频旁路,进一步抑制射频干扰。这个组合,我称之为“黄金阻容对”,在十多个项目中从未失手。
3.4 PCB布局:地线分割与热设计的实战守则
原理图画对了,PCB布错照样失败。核心原则就两条:信号地与功率地分离、MOSFET散热优先。信号地(运放、TL431、Rs检测端)必须用独立铜箔,只在一点(通常是TL431阴极)与功率地(MOSFET源极、负载回路)单点连接。如果混在一起,MOSFET开关噪声(di/dt可达100A/μs)会通过共地阻抗耦合到采样回路,造成电流纹波。我见过最典型的错误是:把Rs直接放在MOSFET源极和GND之间,结果地线上10mΩ的阻抗在1A电流下产生10mV压降,直接叠加到Vs上。正确做法是:Rs一端接MOSFET源极,另一端接功率地;而运放反相端、TL431阴极、Rs的电压检测端,全部接到信号地上,信号地通过0Ω电阻或跳线,在TL431阴极处单点连到功率地。至于散热,DPAK封装MOSFET必须开窗铺铜,铜箔面积至少是器件面积的3倍,并打6个以上0.3mm过孔连接到内层铺铜。我曾用FR4板材(热导率0.3W/m·K)做测试:无铺铜时,1W功耗下结温达110℃;开窗铺铜后,结温降至75℃。这35℃温差,直接让MOSFET寿命延长5倍(按Arrhenius模型,温度每降10℃,寿命翻倍)。
4. 实操过程与核心环节实现:从零搭建一个100mA/12V恒流源
4.1 元件清单与参数计算(附完整BOM表)
我们以一个典型需求为例:输出电流Iout=100mA,输入电压Vin=12V,负载压降Vload=0~9V(适配LED串),精度要求±0.5%。以下是经我反复验证的元件清单:
| 序号 | 器件 | 型号/规格 | 数量 | 关键参数说明 |
|---|---|---|---|---|
| 1 | 运算放大器 | TL072CDR | 1 | 双运放,用其中一路;Vos=3mV,GBW=3MHz,轨到轨输出,成本¥0.8/片 |
| 2 | MOSFET | STP55NF06L | 1 | N沟道,Vds=60V,Id=55A,Rds(on)=12mΩ@Vgs=10V,TO-220封装,带散热片 |
| 3 | 基准源 | TL431ACDR | 1 | 可调基准,Vref=2.5V,精度±0.5%,工作电流1~100mA |
| 4 | 采样电阻 | Vishay WSLP0603R0100 | 1 | 四端子,0.01Ω,1%精度,1W功率,温漂50ppm/℃,Kelvin连接 |
| 5 | 分压电阻 | R1=10kΩ, R2=10kΩ | 2 | 金属膜,1%精度,用于TL431设定Vref=2.5V(R1接阴极,R2接参考端,R2另一端接地) |
| 6 | 栅极电阻 | RC1206FR-07100RL | 1 | 100Ω,1%精度,1206封装,紧贴MOSFET栅极焊装 |
| 7 | 高频电容 | CC0603KRX7R8BB104 | 1 | 100nF,X7R,50V,贴MOSFET源极到地,滤除高频噪声 |
| 8 | 退耦电容 | CL10A106MP8NNNC | 2 | 10μF,铝电解,额定电压16V,分别放在Vin和Vcc(运放供电)入口处 |
参数计算过程:
Vref设定:TL431标准接法,Vref = 2.5V × (1 + R1/R2)。取R1=R2=10kΩ,则Vref=2.5V。
Rs选择:Iout = Vref / Rs → Rs = Vref / Iout = 2.5V / 0.1A = 25Ω。但25Ω功耗太大(P=0.1²×25=0.25W),且温漂影响大。折中方案:将TL431接成“阴极跟随器”,Vref直接取其阴极电压2.5V,Rs改用0.01Ω,则Iout = 2.5V / 0.01Ω = 250A?不对!这里有个关键点:TL431阴极电压是2.5V,但运放同相端接的是TL431阴极,反相端接Rs上端,所以Vs = Vref = 2.5V,Iout = Vs / Rs = 2.5V / 0.01Ω = 250A——显然错误。正确理解是:TL431阴极电压为2.5V,运放强制使Rs上端电压也为2.5V,Rs下端(即MOSFET源极)接地,所以Vs = 2.5V - 0V = 2.5V,Iout = 2.5V / Rs。因此Rs = 2.5V / 0.1A = 25Ω。但25Ω电阻在100mA下功耗0.25W,温升显著。解决方案是降低Vref:用R1=20kΩ,R2=10kΩ,则Vref = 2.5V × (1 + 20k/10k) = 7.5V,Rs = 7.5V / 0.1A = 75Ω,功耗仍大。最优解是采用“分压衰减”:在TL431阴极和运放同相端之间加一个分压网络,使运放同相端电压为Vref' = Vref × (R3/(R3+R4))。取R3=10kΩ,R4=90kΩ,则Vref' = 2.5V × 0.1 = 0.25V,Rs = 0.25V / 0.1A = 2.5Ω。2.5Ω电阻功耗P = 0.1² × 2.5 = 0.025W,温升可忽略。这就是我最终采用的方案:TL431输出2.5V,经10kΩ/90kΩ分压后,送0.25V到运放同相端,Rs=2.5Ω。
MOSFET功耗:最大压降Vds_max = Vin - Vload_min = 12V - 0V = 12V,Iout=0.1A,Pmax = 12V × 0.1A = 1.2W。STP55NF06L的Rds(on)=12mΩ,在0.1A下压降仅1.2mV,功耗微乎其微,但这是理想情况。实际Vds由负载决定,当Vload=0时,Vds=12V,P=1.2W。查其SOA图,在Vds=12V、Id=0.1A点远在安全区内,结温升ΔT = P × RθJA = 1.2W × 50℃/W = 60℃,环境温度25℃时结温85℃,安全。
栅极电阻Rg:TL072 GBW=3MHz,IRF540 Cgs=1.5nF,Rg = 1/(2π×3e6×1.5e-9) ≈ 35Ω,取标称值33Ω。但实测需100Ω,故选用100Ω。
4.2 电路图详解与关键节点标注
+12V (Vin) │ ├───────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────......(注:此处为文字描述,实际电路图需用专业EDA工具绘制。关键节点说明如下:)
- A点:TL431阴极,电压2.5V,接100nF电容到地。
- B点:运放同相端(+),通过10kΩ/90kΩ分压网络接A点,电压0.25V。
- C点:运放反相端(-),接Rs上端。Rs下端接地(功率地)。
- D点:MOSFET源极,接Rs上端,即C点。
- E点:MOSFET漏极,接负载一端;负载另一端接+12V。
- F点:运放输出端,经100Ω电阻Rg接MOSFET栅极。
- G点:信号地与功率地单点连接处,位于TL431阴极附近。
提示:所有地线标注必须清晰区分“GND_Signal”和“GND_Power”,在PCB设计软件中用不同网络名,避免自动连接。
4.3 上电调试步骤与波形实测记录
调试不是通电就完事,而是分步验证、层层把关。我的标准流程如下:
第一步:静态电压检查
断开负载,只上电。用万用表测:
- A点电压应为2.5V±0.01V(TL431精度);
- B点电压应为0.25V±0.0025V(分压精度);
- C点电压应等于B点(运放虚短),若偏差>10mV,检查运放供电是否正常、TL431是否损坏;
- D点(MOSFET源极)电压应≈0V(因Rs=2.5Ω,无电流时压降为0);
- F点(运放输出)电压应≈2.5V(使MOSFET导通,但无负载电流)。
第二步:空载电流测试
接入负载(如100Ω电阻),此时Iout理论值=0.25V/2.5Ω=100mA。用高精度电流表(Fluke 87V)串入负载回路,实测值=99.8mA,误差-0.2%,符合预期。
第三步:动态响应测试
用函数发生器输出1kHz方波(0~100mA),通过电子负载模拟。用示波器(带宽200MHz)抓取C点电压Vs波形:上升时间3.2μs,过冲<2%,无振荡。这证明100Ω栅极电阻和100pF电容的补偿完全有效。
第四步:温漂测试
将整个PCB放入恒温箱,从25℃升至70℃,每5℃记录一次Iout。结果:25℃时Iout=100.0mA,70℃时Iout=100.3mA,漂移仅+0.3%,远优于电流镜方案的+8%。
第五步:纹波测试
在Rs两端并联20MHz带宽的示波器探头,测Vs纹波。结果:峰峰值=65μV,对应电流纹波=65μV / 2.5Ω = 26μA,满足精密应用要求。
5. 常见问题与排查技巧实录:那些只有亲手焊过才懂的坑
5.1 问题速查表:症状、原因、解决方案
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
| 输出电流为0 | MOSFET未导通:检查运放输出是否为高电平;Rg是否虚焊;MOSFET是否击穿 | 用万用表二极管档测MOSFET G-S、D-S是否短路;测运放输出端电压是否≥8V |
| 电流远大于设定值 | Rs短路或阻值错误;TL431阴极电压异常升高;运放输入端被污染(焊锡渣) | 断电测Rs阻值;测A点电压;用放大镜检查运放引脚间有无桥连 |
| 电流随负载变化明显 | 地线未单点连接,共地阻抗引入压降;Rs未用Kelvin连接 | 检查G点连接;重新焊接Rs,确保检测线直接焊在Rs焊盘上 |
| 输出电流振荡(高频啸叫) | Rg缺失或过小;未加100pF高频电容;PCB走线过长引入电感 | 补100Ω电阻;加100pF电容;缩短运放输出到MOSFET栅极走线,≤5mm |
| 温升过高,MOSFET烫手 | 散热不足;Rds(on)选型过大;PCB铺铜面积不够 | 加散热片;换Rds(on)更小的MOSFET(如IRFZ44N);扩大铺铜面积并增加过孔 |
| 小电流下精度差(<10mA) | Vos影响放大;Rs阻值过大导致温漂显著;运放输入偏置电流不可忽略 | 换Vos<100μV运放(如MCP6002);改用更小Rs(如0.1Ω)并提高Vref;加运放输入偏置电流补偿电路 |
5.2 我踩过的三个最深的坑与独家避坑技巧
坑一:“以为TL431能当普通稳压器用”
第一次做这个电路时,我把TL431阴极直接当输出端,接运放同相端。结果一上电,电流就飙到500mA,MOSFET瞬间冒烟。事后分析:TL431阴极最大输出电流仅100mA,而运放TL072输入电流虽小,但其输入电容在上电瞬间会吸收大电流,触发TL431限流保护,使其进入非稳压状态,阴极电压失控。避坑技巧:TL431必须工作在“阴极跟随器”模式,即阴极接负载(此处是运放同相端),参考端通过分压电阻设定,阳极接地。这样它始终处于稳压区,输出阻抗极低。
坑二:“Rs焊在PCB铜箔上,没用Kelvin连接”
早期版本Rs用普通0805电阻,两端焊在PCB走线上。测试发现,当电流从0升到100mA时,Iout读数跳变5%,原因是走线电阻约0.05Ω,在100mA下产生5mV压降,被运放误认为是Rs压降。避坑技巧:必须用四端子采样电阻,并严格按Kelvin方式焊接——电流引线走粗铜箔,电压检测线用细线直接焊在电阻金属帽上,绝不经过任何PCB走线。我后来在PCB上专门为Rs设计了“H型焊盘”,四个独立焊盘,两两一组,完美隔离电流和电压路径。
坑三:“忽视MOSFET体二极管的反向恢复”
在驱动LED负载时,我发现关断瞬间有微弱闪光。用示波器抓MOSFET漏极波形,看到一个-5V的尖峰。原因是LED等效电容与MOSFET体二极管反向恢复电荷Qrr相互作用。IRF540的Qrr=150nC,关断时电荷释放形成尖峰。避坑技巧:在MOSFET漏极和源极之间并联一个RC缓冲电路(R=100Ω,C=100pF),或选用Qrr<50nC的低压MOSFET(如AO3400,Qrr=30nC)。这个细节,教科书里从不提,但实际工程中天天遇到。
5.3 进阶扩展:如何把这个基础电路升级为程控恒流源?
如果项目需要远程调节电流,比如用单片机控制,只需两个改动:
- 替换基准源:去掉TL431,改用DAC芯片(如MCP4725)输出Vref。MCP4725是12位I2C DAC,输出0~Vcc,精度±2LSB。设Vcc=3.3V,则最小步进=3.3V/4096≈0.8mV,对应电流步进=0.8mV / 2.5Ω ≈ 0.32μA,足够精细。
- 增加运放缓冲:DAC输出阻抗高(典型kΩ级),不能直接驱动运放同相端。需加一级电压跟随器(用同型号运放),隔离DAC与主运放。
这样,单片机发I2C指令,就能实时设定任意电流值。我在某款智能照明控制器中用了此方案,实测0~100mA范围内,设定值与实测值误差<±0.1%,且响应时间<1ms。
最后再分享一个小技巧:如果要做多路独立恒流源(如RGB LED驱动),不要为每路都配一套运放+MOSFET。可以共用一个高精度基准源(如REF5025),每路只用一个运放和MOSFET,这样既降低成本,又保证各路电流一致性。我做过8路并行测试,各路电流偏差<0.05%,比单路单独用TL431还准。