ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Widlar电流源原理与设计:从电流镜到小电流偏置的模拟IC核心技巧

Widlar电流源原理与设计:从电流镜到小电流偏置的模拟IC核心技巧 1. 为什么模拟电路里离不开Widlar电流源做模拟IC设计或者搭分立元件电路的人早晚都会撞上电流源这个坎。很多人一开始接触的是最简单的两管电流镜两个三极管基极并在一起发射极都接地输出电流就约等于参考电流。这个结构简单是简单但有个很尴尬的局限——要是你想产生一个微安级别的电流参考电流也得是微安级别那芯片里或者板子上就得配一颗兆欧级的电阻。在集成电路里高阻值电阻占的面积极其可观成本兜不住而在分立电路里兆欧电阻的噪声和温漂也让人头疼。这个问题的解法就是Bob Widlar在1965年给出的。他在Fairchild期间设计的LM101运算放大器内部第一次用了一个非常巧妙的电流源结构也就是我们现在说的Widlar电流源。它的核心思路就一句话利用两个三极管VBE之间的差值在小电流输出端串一颗电阻来“吃掉”这个压差从而在小电流输出侧获得比参考电流低好几个数量级的电流。一个典型场景是这样的你手上有一颗5V电源想给某条偏置支路供50微安的电流。如果用普通镜像参考电流也得50微安那限流电阻就是(5-0.7)/50μA≈86kΩ。但如果用Widlar结构你完全可以把参考电流定在0.5mA然后通过一颗几百欧的发射极电阻把输出压到50微安。两边的电阻阻值差了两个数量级在芯片里省下的面积是肉眼可见的。这篇文章适合三类人看一是刚开始学模拟集成电路、对电流镜理解还停留在“镜像”层面的学生二是做分立元件模拟电路、经常为偏置电流和恒流源方案发愁的硬件工程师三是想搞懂为什么运放内部电路图里那些“奇怪”结构这么画的爱好者。我会把Widlar电流源的原理推导、参数计算、仿真验证、应用场景和常见坑一次性讲透读完你应该能自己在Multisim或者LTspice里复现它并且知道在什么场合下选它、什么场合下绕开它。2. Widlar电流源的原理与公式推导2.1 从“镜像”到“非镜像”的关键一步在讲Widlar之前先回顾一下普通电流镜为什么叫“镜像”。两管基极相连发射极都接地假设两个管子完全匹配那么它们的VBE相同。BJT的集电极电流和VBE之间是指数关系I_C I_S · e^(V_BE/V_T)。既然VBE相同只要IS相同I_C就相同于是输出电流严格等于参考电流。Widlar源的不同之处在于它在输出管Q2的发射极和地之间串了一颗电阻R_E。这样一来Q2的VBE就不是基极对地的电压了而是“基极电压减去R_E上的压降”。基极电压在两点之间是多少Q1的VBE记为V_BE1。Q2的实际VBE就是V_BE1减去I_E2·R_E显然比V_BE1小。VBE减小指数函数里指数变小Q2的集电极电流就比Q1的参考电流小很多。这就是“非镜像”的由来Q2的电流不是接近Q1的电流而是被R_E“削”了一大截。这个结构聪明在什么地方指数函数的“半对数”性质被利用到了极致。VBE只要差几十毫伏电流就能成倍变化。所以不需要多高的R_E阻值就能获得巨大的电流比值。这也是Widlar源在芯片内部如此受欢迎的根本原因——用小电阻换大电流比。2.2 公式推导一个超越方程的求解过程下面推导Widlar源的核心方程。写方程之前先约定符号I_ref是Q1的参考电流也就是输入侧电流。I_out是Q2的输出电流也就是我们要的目标电流。V_T是热电压室温下约26mV。I_S是两个匹配晶体管的反向饱和电流。R_E是Q2发射极串联电阻。对于Q1集电极电流I_ref对应一个VBEV_BE1 V_T · ln(I_ref / I_S)对于Q2基极到地的电压同样等于V_BE1因为基极是同一个节点但V_BE1被分成了两部分Q2的VBE加上R_E上的压降。所以V_BE1 V_BE2 I_E2 · R_E对于Q2I_E2 ≈ I_out忽略基极电流或者用I_E2 I_out · (β1)/β修正精度要求高的时候再算这个所以V_BE2 V_T · ln(I_out / I_S)代入上面两式得到V_T · ln(I_ref / I_S) V_T · ln(I_out / I_S) I_out · R_E两边消去ln项里的I_SV_T · ln(I_ref / I_out) I_out · R_E这个方程就是Widlar电流源设计的核心。注意I_out同时出现在左边对数内和右边的乘积因子中这是一个超越方程没办法写成I_out f(I_ref, R_E)这种显式解。实际工程中一般反过来做给定I_ref和I_out先求R_ER_E (V_T / I_out) · ln(I_ref / I_out)这个式子非常实际设计和计算都用它。比如I_ref 500μAI_out 50μA室温V_T 26mVR_E (0.026 / 50e-6) · ln(500/50) 520 · ln(10) ≈ 520 · 2.3026 ≈ 1197Ω取标称值1.2kΩ即可。这里有个容易踩的坑公式里用的是V_T而V_T kT/q随温度变化。室温下26mV在55℃时V_T 1.38e-23 × 328 / 1.6e-19 ≈ 28.3mV同一颗电阻对应的I_out就会漂移。另外I_S本身也随温度指数变化但两边同时含I_S推导中消掉了所以Widlar源的输出电流对I_S的温度敏感性不如普通电流镜那边直接但对V_T的依赖依然存在。这点在后面仿真和实际测试中会看得很清楚。2.3 输出阻抗与稳定性为什么它比普通镜像更“硬”普通两管电流镜的输出阻抗约等于三极管的r_o也就是集电极-发射极动态电阻大概几十千欧到几百千欧。Widlar源呢Q2发射极串了R_E相当于引入了本级负反馈。如果输出端电压试图拉高I_outI_out增加会让R_E上的压降增加Q2的VBE被削得更狠反过来抑制电流增加。这个机制直接抬高了输出阻抗。定量算的话Widlar源的输出阻抗约为R_out ≈ r_o2 · (1 g_m2 · R_E)其中g_m2是Q2的跨导等于I_out / V_T。还是拿I_out 50μA来算g_m2 50μA / 26mV ≈ 1.92mS。若R_E 1.2kΩ则1 g_m2·R_E ≈ 1 2.3 3.3倍。再乘上r_o2若r_o2 100kΩR_out ≈ 330kΩ。比普通镜像明显提高。但这只是理想情况。BJT的r_o本身就随集电极电压变化而且实际三极管还有Early效应。为了保证小信号输出阻抗通常要求Q2工作在放大区V_CE不能太低。这是什么概念输出端电压至少要保证Q2的集电极-发射极间有0.3V到0.5V以上的压降否则管子进入饱和区输出电流不再恒定。这一点后面做实际电路时一定要检查。3. 设计与实现参数计算和器件选型3.1 设计指标分解与器件选择假设现在要设计一个Widlar电流源作为运放输入级的尾电流源具体指标如下电源电压5V单电源参考电流I_ref500μA输出电流I_out50μA温度范围0℃~70℃要求I_out在该范围内漂移不超过±15%最低输出电压要求I_out恒定的最小输出电压不低于1V有了这些指标第一步就是算R_E按上面的公式R_E (V_T / I_out) · ln(I_ref / I_out)室温V_T 26mVI_ref 500μAI_out 50μA算出来约1.2kΩ取标称值1.2kΩ或者1.21kΩ1%精度。第二步确定参考电流支路的电阻。如果参考电流从5V电源直接取那么限流电阻R_REF为R_REF (V_CC - V_BE1) / I_ref (5 - 0.7) / 500μA 8.6kΩ取标称值8.66kΩ1%。但注意V_BE1大约是0.7V没错可它会随温度变化约-2mV/℃所以I_ref也会漂这个漂移会通过Widlar的对数关系传递到I_out。第三步选管子。如果做分立电路我建议用两颗匹配的NPN小信号管比如2N3904配对或者用集成对管如BCM847BS。集成对管的好处是热耦合好I_S匹配度高IC里当然就直接用版图匹配的管子。分立配对时实测VBE差值最好小于1mV否则输出电流误差会很直观。第四步确认Q2的工作点。Q2的集电极-发射极电压V_CE2至少需要多少考虑Q2基极电压V_B V_BE1 ≈ 0.7V发射极电压V_E I_out·R_E 50μA × 1.2kΩ 60mV所以V_BE2 0.7 - 0.06 0.64V。若输出端电压V_out 1V则V_CE2 1 - 0.06 0.94V大于0.3V的最小饱和压降没问题。如果输出端电压降到0.1VQ2就完了直接饱和。3.2 直接给出一份可复制的参数表为了方便直接搭电路我把几个常用电流对的R_E算好了。V_T取26mV计算时忽略基极电流β100时误差小于1%实际可用β修正。I_refI_outln(I_ref/I_out)R_E计算值标称值1%1mA100μA2.303599Ω604Ω1mA10μA4.60511.97kΩ12.1kΩ500μA50μA2.3031.197kΩ1.21kΩ500μA5μA4.60523.94kΩ24.3kΩ200μA20μA2.3032.994kΩ3.01kΩ用这个表反向验证R_E取12.1kΩI_ref 1mA时I_out是否等于10μA理论上12.1kΩ对应的I_out (V_T / R_E) · ln(I_ref/I_out)这里I_out在两边都有需要迭代或者直接代入验证I_out 0.026/12100 × 4.605 ≈ 9.9μA基本吻合。工程上完全够用。3.3 电阻精度和温度系数怎么取舍Widlar源的I_out由R_E、V_T和I_ref共同决定。I_ref由R_REF和V_BE决定。分析一下误差传递R_E的误差直接线性进入I_outR_E偏差1%I_out就偏差约1%。R_REF的误差通过I_ref进入因为I_out对I_ref是对数关系所以R_REF偏差10%ln(I_ref/I_out)变化不到0.1I_out变化约10%/ln(I_ref/I_out)在比值10左右时大约4%。所以R_REF的影响相对温和但也不能乱用温漂大的。V_T的温度依赖是最难搞的。从0℃到70℃V_T从23.4mV变到29.6mV变化约26%。这26%会直接进入I_out吗不会因为ln(I_ref/I_out)这个项也受温度影响I_ref随温度漂移I_out会找到一个平衡点。但工程上估算I_out的温度系数通常在2000~4000ppm/℃量级。实践中的选型建议是R_E必须用低温度系数的电阻金属膜电阻温漂±50ppm/℃起步要求高就上精密薄膜电阻±25ppm/℃甚至±10ppm/℃。R_REF可以用普通金属膜电阻因为它的影响是对数压缩的。R_E的阻值精度至少要1%最好0.5%或更高。还有一个细节R_E的功耗。I_out 50μAR_E 1.2kΩ功耗只有3微瓦随便什么封装都行。但如果是R_E 12kΩ、I_out 1mA这种极端情况功耗会到12mW0805封装没问题0603也勉强但注意自热效应——电阻自身发热会改变阻值进而影响I_out。好在这个场景里Widlar源本身就是小电流源很少出现高功耗。3.4 基底电流的影响和β修正推导公式时用了I_E ≈ I_C这对β200的管子误差是0.5%。但如果你用PNP管做互补结构或者用低β的达林顿管误差就会变大。这时可以用精确式V_T · ln(I_ref / I_out) I_out · (1 1/β) · R_E也就是说有效R_E被放大了(11/β)倍。如果β50相当于R_E变成了1.02倍I_out对应偏差约2%。选管子时尽量选β100的且注意β随温度变化——低温时β下降明显这会叠加到温度漂移里。4. Multisim仿真验证从零复现Widlar电流源4.1 搭建仿真电路下面我在Multisim里手把手走一遍完整流程。打开Multisim后新建一个设计在元件库里选择BJT_TRANSISTORS选2N3904或者直接选BC547B更接近国内常用管。先放两颗分别标号为Q1和Q2。再取两个电阻一个8.66kΩ做参考电流限流一个1.2kΩ做发射极电阻。最后接一个5V电源。连接关系5V电源正极接R_REFR_REF另一端接Q1的基极和集电极二极管接法Q1发射极接地。Q1基极再接Q2基极。Q2集电极作为电流源输出端接一个负载电阻R_L可以先接1kΩ到地。Q2发射极接R_ER_E下端接地。电路搭好后用Multimeter电流表串到Q2集电极支路或者更省事的方法在Q2集电极和R_L之间加一个1Ω的采样电阻用电压表测采样电阻两端电压电压数值除以1Ω就是电流。4.2 直流工作点分析点Simulate - Analyses - DC Operating Point选上Q2集电极电流I_IQ2和Q1集电极电流I_IQ1。仿真结果应该大致为I_IQ1 ≈ 497μA受VBE和电阻精度影响略低于理论值500μAI_IQ2 ≈ 47~53μA取决于管子Is是不是匹配如果偏差很大先检查VBE1和VBE2的差值。用探针测Q1基极电压应该约0.7V。测Q2发射极电压应该约0.06VI_out × R_E 50μA × 1.2kΩ。这两个电压之差就是VBE2 0.64V。如果管子不匹配VBE2就会出现几个到几十毫伏的偏差直接影响I_out。4.3 扫描I_out随负载的变化这一步用来验证输出阻抗。做直流扫描分析DC Sweep把R_L作为扫描参数从100Ω扫到10kΩ观察I_IQ2变化。理想电流源应该在负载变化时电流纹丝不动实际BJT的Early效应会让电流稍微上翘。扫描结果可以看到当R_L很小输出端电压低时I_out开始下降到某个点后急剧下降——这就是Q2进入饱和区了。在饱和区之前那段I_out的斜率很平缓这就是输出阻抗高的表现。如果输出阻抗是330kΩ那负载从1kΩ变到10kΩ时电压变化约0.45V电流变化约1.36μA肉眼可见但不夸张。用曲线图直接看斜率可以估算输出阻抗R_out ΔV_out / ΔI_out实测值可以和理论值对照。4.4 温度扫描看漂移到底有多厉害Multisim里做温度扫描Temperature Sweep设置温度从0℃到70℃步长10℃。观察I_IQ2的变化。结果通常是I_out随温度升高而增大。原因是V_T随温度增大而ln(I_ref/I_out)这个项的减小速度跟不上。V_T从23.4mV到29.6mV增大约27%而I_ref随温度变化其实不大VBE负温漂让I_ref略上升但幅度有限所以I_out最终可能上升20%~30%。如果要求±15%以内这里就超标了。超标后怎么补偿一种办法是给R_E串联一颗正温度系数电阻来对冲但市面上正温度系数电阻不太好买且线性度差。另一种办法是用PTAT电流源做偏置但Widlar源本身作偏置时通常不做严格的温漂补偿因为它在整个系统里一般不是决定精度的环节更多是“给出一个大致合理的偏置”。如果对温漂有硬性要求后面讲替代方案。4.5 一个常见的Multisim仿真坑用Multisim自带的BJT模型仿真Widlar源时很多人会发现仿真结果和理论值差得有点多尤其是用理想模型的时候。因为理想模型里Is是默认值10fA而实际2N3904的Is大约是5fA~20fA如果两颗管子模型不同偏差自然出现。解决方法是检查两颗管子是不是同一个型号、同一个模型文件。更保险的做法是把两颗管子都改成实际的2N3904再跑一次结果会明显贴近真实。5. 应用场景在哪里用、怎么用好5.1 运放输入级的尾电流源Widlar源最经典的应用场景就是运放输入级。以LM101和后续的很多运放为例输入差分对的尾电流就是用Widlar源产生的。为什么不用普通电流镜因为普通电流镜要得到微安级的尾电流参考电阻要几百千欧甚至兆欧片内根本放不下。用Widlar源参考电流可以设在几百微安甚至毫安级参考电阻只有几到几十千欧面积省了很多。这种场景下Widlar源的设计重点是“输出电流的绝对值不太重要但要稳定”。因为运放的偏置电流决定静态功耗和输入偏置电流而不是某个精确的基准所以温漂和精度都可以放宽。这也是Widlar源“不精确但够用”的特点合拍的地方。5.2 双极型带隙基准里的电流分配带隙基准Bandgap Reference的设计中核心是产生一个PTAT与绝对温度成正比电流和一个与温度无关的电压叠加。Widlar源在这里承担的角色是将大电流通过R_E转换成小电流作为PTAT电流源的一部分。在经典的带隙基准电路里Widlar源利用ΔVBE随温度线性变化的特性直接在R_E上产生PTAT压降。这个架构里R_E的精度很关键因为它直接决定基准电压。实际设计中通常会把R_E做成可微调的电阻阵列在晶圆测试时激光修调。5.3 分立电路里的“穷人的”恒流偏置在音频放大器、传感器调理电路里经常要为一组晶体管提供稳定的偏置电流。用Widlar源搭一个分立版本成本低、元件少比用运放搭恒流源Howland电流源简单得多。举个例子一个简单的差分放大器用5V电源想给差分对尾部供给100μA尾电流。选I_ref 1mAR_E 599Ω1%R_REF 4.3kΩ两颗BC547B。整个电路占用面积不到1平方厘米元件成本不到一元钱。对比用运放搭的Howland恒流源Widlar源没有运放的失调电压和噪声问题也没有环路稳定性问题几乎是免费的高阻抗电流源。5.4 低功耗待机电路的“最低功耗合法偏置”低功耗设计里偏置电流越省越关键。一颗微处理器休眠时模拟前端还要保证基本偏置这时几百纳安甚至几十微安的偏置电流是常态。Widlar源可以做到I_out非常小——只要R_E够大就行。比如I_ref 10μA想要I_out 1μAR_E (26mV/1μA)×ln(10) ≈ 26kΩ × 2.3 ≈ 60kΩ。2.2MΩ的I_ref限流电阻和60kΩ的发射极电阻消耗的总电流才11μA功耗在3V电源下只有33μW。这在电池供电的设计里很香。但要提醒一句这个场景下静态电流成了主角R_E绝对不能选太大否则RC时间常数过大会影响上电启动速度。前面这个例子中R_E 60kΩ如果管子的结电容是10pF时间常数是0.6μs完全没问题。但R_E到兆欧级别时就要小心了启动时Q2的基极到地之间如果有100pF电容时间常数就是10μs某些高速电路可能吃不消。6. 常见问题与排查技巧实录6.1 输出电流远大于设计值通常原因有四个按概率排序R_E短路或虚焊。拿万用表量Q2发射极到地之间的电阻如果接近0Ω那就是焊锡桥接或者虚焊把R_E短路了。Q2基极没有连到Q1基极导致Q2基极悬空或电平不对。Q2的C、E接反了。BJT的E和C接反放大能力大大下降但电流还是能流结果各种异常。I_ref算错R_REF用了过小阻值导致参考电流偏大进而I_out线性增大。排查方法先测Q1基极电压应该在0.6~0.8V。再测Q2发射极电压应该等于I_out×R_E。如果Q2发射极电压读数大得离谱比如接近电源电压那是Q2发射极到地没有回路检查R_E和地线。6.2 输出电流随输出电压剧烈变化这说明Q2进入饱和区了。Q2要正常工作V_CE2必须大于饱和电压门限一般0.3V以上。如果输出端电压太低、或者R_E上压降太大导致V_C2不够高就出问题。算一下极限假设R_E 12kΩI_out 10μAV_E 0.12V基极电压0.7VV_BE2 0.58V输出端电压至少要0.12 0.3 0.42VI_out才开始正常。如果设计要求输出端最低电压是0.3V那这颗电阻是不是选太大了可以在保证电流精度的前提下减小R_E同时增大I_ref维持同样的I_out但代价是功耗上升。或者改用集电极输出端接法后面讲能减少一个压降损失。6.3 温度一高电流就飙升如果是温漂问题前面讲过是因为V_T随温度线性增加。解决办法用串联PNP对管或者集成对管使两颗管子的热耦合更紧密减少VBE失配随温度的变化。用低温漂电阻R_E降低电阻温漂贡献。如果允许把I_ref设计成PTAT这样它可以部分抵消V_T的温漂。这在带隙基准里就是正经做法。一个经验值一颗未补偿的分立Widlar源其I_out温度系数大约在2000~4000ppm/℃这意味0~70℃范围内变化可达14%~28%。如果要求更严必须上补偿方案而不能只靠换电阻。6.4 两颗同型号管子但I_out还是不对称分立元件最大的痛就是“型号一样特性不同”。VBE失配1mV在I_out 50μA、I_ref 500μA的工况下会带来约4%的输出电流误差因为ΔV_BE V_T·ln(I_ref/I_out)这里是60mV失配1mV就是1.7%的电流对数误差对应3.7%左右的电流变化。如果是随机失配算了也白算只能靠选对管来缓解。真正的解决办法是选配对管。市面上有专门的双NPN对管比如BCM847BSSOT-363封装内部两颗管子是同一晶圆上相邻位置做的失配VBE在1mV以内热耦合也很好。封装是超小型做分立电路时锡焊有点费劲但值得。如果找不到也可以买一些成对的2N3904自己测试配对挑VBE差小于0.5mV的用。6.5 高频应用下的稳定性问题Widlar源作为恒流源在低频下表现得像一个高档电阻但在高频下可能出问题。Q2的基极到地之间的等效电感走线寄生和结电容可能形成串联谐振引发振荡。排查方法用示波器看Q2集电极波形或者用频谱分析仪看输出频谱。如果发现某个频率上有尖峰基本就是寄生谐振。解决办法是给Q2基极到地加一个10~100pF的小电容压低谐振频率和Q值。不过这个电容也不能加太大否则影响启动速度。6.6 上电瞬间电流冲击如果R_E上没有并联启动电阻上电瞬间Q2的基极电压可能快速上升到V_BE1而R_E上的电流还没有建立电容充电需要时间V_E接近0V_BE2几乎等于V_BE1I_out瞬间飙到和I_ref一个量级然后慢慢回落到设定值。在某些高精度电路里这个冲击会打毛信号。解决方法是加大Q2的基极-发射极间电容就是B-C间的米勒电容或者C_BE减缓VBE2建立的速度。或者给Q1、Q2的基极串联一个小电阻限制瞬态基极电流。7. 横向对比Widlar源、Howland电流源和普通电流镜好多人把Widlar源、Howland电流源混在一起觉得都是“恒流源”用哪个都行。实际上它们差别很大用错场景会很难受。对比项普通电流镜Widlar电流源Howland电流源核心器件2只BJT/MOS2只BJT1电阻1个运放4颗电阻输出电流量级与参考电流接近可远小于参考电流由电压控制理论上任意精度高匹配好时中等对数关系取决于电阻匹配输出阻抗中等较高可很高频率特性好中等受限运放带宽成本低极低高适用场景IC内镜像IC内小电流偏置精密压控电流源从这张表能看出Widlar源的核心竞争力是“用小成本换大电流比”适合做偏置。Howland电流源的核心竞争力是“电压转电流而且负载可以接地”适合做传感器激励、电化学测量这类需要精密压控电流的地方。比如你要给一个铂电阻恒流激励1mA用Howland源运放是正路如果你只是给运放提供偏置用Widlar源就够。拿Howland源做偏置是杀鸡用牛刀拿Widlar源做精密激励则是自找苦吃。8. 延伸从Widlar源到Wilson源再到PTAT电流源Widlar源并不是电流参考设计的终点。它有个明显弱点输出电流的温漂大且输入侧电流I_ref的变化会通过对数项影响输出。为了改善这个后来出现了Wilson电流源在输出侧加了一颗二极管接法的钳位管把输出侧换成了共栅极结构输出阻抗又上一个量级对基极电流的敏感度也降低。再往后是改进型Wilson源加第四颗管子把输入侧的基极电流失配也修正掉。如果目标是产生一个“与绝对温度成正比”的PTAT电流用于温度传感器或带隙基准那Widlar源的变体是天然候选。因为V_T·ln(I_ref/I_out)本身就和T成正比只要让这个压降落在R_E上电流I_out就天然PTAT。温漂从“缺点”变成了“特性”这在带隙基准里是大用途。如果想生成与温度无关的参考电流就不能直接用Widlar源需要PTAT电流和一个CTAT负温度系数分量叠加。实战中常见做法是用一个PTAT电流来源再串联一个与温度负相关的电压源在电阻上合成零温度系数电流。这就进入带隙核心电路的地盘了。这些延伸方向每一条都能单独写一篇长文。如果你感兴趣后面我可以继续把Wilson源、改进型Wilson源、以及带隙基准里的电流参考设计一条龙讲清楚。有兴趣的可以先自己搭一下Wilson源的仿真电路对比一下它和Widlar源在输出阻抗上的差异实测数据会很有意思。
返回列表