尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

TL431六种经典电路设计详解:从并联稳压到程控恒流源

TL431六种经典电路设计详解:从并联稳压到程控恒流源 1. 从一颗基准源说起TL431到底能干什么搞电源的人手里要是没几颗TL431那基本等于炒菜不放盐。这颗三端可调精密基准源从诞生到现在几十年了依然是反馈环路里的绝对主力。它的核心本事就一句话用一个2.5V的基准电压配合外部电阻分压去控制一个阴极到阳极的导通电流。听起来简单但围绕这个基本特性能玩出的花样非常多。我最早接触TL431是在修一个ATX电源的时候。辅助绕组反馈电路里那颗小小的三脚元件就是TL431。当时不懂以为它就是个普通稳压管后来查了手册才发现它的开环增益能做到60dB以上温漂典型值只有50ppm/℃这在低成本基准源里相当能打。更关键的是它的价格便宜到可以忽略不计一颗不到两毛钱这让它在开关电源、恒流源、过压保护等场景里几乎无处不在。这篇文章我打算把TL431的六种经典电路设计从头到尾捋一遍。从最基础的并联稳压到恒流源再到反激式开关电源里的光耦反馈每一种都会给出详细的参数计算过程。同时我会结合Arduino和PHPoC这类微控制器平台讲讲怎么用它们来测试、验证甚至程控这些电路。不管你是刚入门电源设计的新手还是想复习一下TL431用法的老手这篇内容应该都能让你有所收获。注意本文涉及的所有电路计算均基于理想器件模型实际搭建时需考虑器件容差、温度漂移和寄生参数的影响。2. TL431的工作机理与核心参数解读2.1 内部结构决定了它的用法边界TL431的内部可以等效为一个2.5V的基准电压源、一个运算放大器和一个输出晶体管。运放的同相端接基准反相端接REF引脚输出驱动晶体管。当REF引脚电压高于2.5V时晶体管导通阴极电压被拉低当REF低于2.5V时晶体管截止。这个逻辑决定了TL431在电路中通常扮演“误差放大器基准”的角色。理解这一点非常重要因为它意味着TL431不能像普通三极管那样去“放大”信号它只能根据REF端的电压来调节阴极电流。所以你在设计电路时本质上是在设计一个让REF端电压等于2.5V的负反馈系统。2.2 关键参数与选型依据选TL431不能只看“2.5V”这一个数字下面这几个参数直接决定了你的电路能不能稳定工作参数典型值意义设计注意事项基准电压2.495VREF端维持的电压精度分档A档±0.5%B档±1%动态阻抗0.2Ω阴极到阳极的交流阻抗影响环路增益和稳定性最小工作电流1mA维持正常工作的阴极电流低于此值基准会失稳最大阴极电流100mA阴极允许流过的最大电流超过会永久损坏温漂50ppm/℃基准电压随温度的变化率精密场合需选低漂移型号我实际用下来最小工作电流1mA这个点最容易被忽略。很多新手设计并联稳压时分压电阻取值太大导致TL431的阴极电流不到1mA结果输出电压飘得厉害还以为是芯片坏了。其实只要把限流电阻减小一点问题就解决了。2.3 与微控制器平台的结合点Arduino和PHPoC在这类电路里主要扮演两个角色一是作为可编程负载或信号源来测试TL431电路的性能二是通过DAC或PWM滤波的方式给TL431的REF端注入可调电压实现程控恒流源或程控稳压源。PHPoC的优势在于它自带网络功能和Web IDE你可以直接在浏览器里写代码通过网页界面实时调整TL431的参考电压观察输出电流的变化。Arduino则更适合做本地闭环控制比如用ADC读取采样电阻上的电压再用PID算法调整PWM输出形成完整的恒流控制环路。3. 六种经典电路设计逐一拆解3.1 并联稳压器最基础也最容易被低估这是TL431最经典的用法。电路结构很简单一个限流电阻R1从输入电压接到TL431的阴极TL431的阳极接地REF端通过两个电阻R2和R3组成的分压网络接到输出端。工作原理当输出电压升高时REF端电压超过2.5VTL431导通增强阴极电压下降通过R1的电流增大R1上的压降增大从而把输出电压拉回来。反之亦然。参数计算假设输入电压Vin12V期望输出电压Vout5V负载电流IL10mA。第一步确定分压电阻。根据公式Vout 2.5V × (1 R2/R3)取R310kΩ则R2 10kΩ × (5V/2.5V - 1) 10kΩ。第二步确定限流电阻R1。最坏情况是负载电流为零所有电流都流过TL431。TL431的最小工作电流为1mA我们取5mA作为设计余量。则R1 (Vin - Vout) / (IL_min I_TL431) (12V - 5V) / (0 5mA) 1.4kΩ取标准值1.5kΩ。此时最大阴极电流为(12V-5V)/1.5kΩ 4.67mA在安全范围内。实操心得R1的功率要算够。在这个例子里R1上的功耗是(12V-5V)×4.67mA≈33mW用0603封装就够了。但如果输入电压是24V功耗会翻倍建议用0805或1206。3.2 恒流源电路让电流不随负载变化TL431做恒流源的思路很巧妙利用它REF端电压恒定为2.5V的特性在REF端和阳极之间接一个采样电阻Rs那么流过Rs的电流就恒定为2.5V/Rs。这个电流再通过一个三极管或MOS管传递给负载就形成了恒流源。电路结构TL431的阴极接电源正极阳极接NPN三极管的基极REF端接三极管的发射极发射极再通过采样电阻Rs接地。负载接在电源正极和集电极之间。参数计算假设需要恒定电流Iout100mA。Rs 2.5V / Iout 2.5V / 0.1A 25Ω取标准值24Ω或25Ω。此时实际电流为2.5V/24Ω≈104mA误差在可接受范围内。三极管的选择要注意集电极电流要大于Iout功耗要算够。如果电源电压是12V负载压降是5V那么三极管上的压降是12V-5V-2.5V4.5V功耗为4.5V×100mA450mW需要选SOT-223或TO-252封装的管子。用Arduino做程控恒流源如果你想用Arduino控制输出电流可以把Rs换成数字电位器或者用PWMRC滤波生成一个可调电压通过运放缓冲后叠加到REF端。具体做法是Arduino的PWM引脚输出经过两级RC滤波得到0-2.5V的可调电压接到TL431的REF端。这样REF端电压就不再是固定的2.5V而是你设定的值输出电流也随之改变。// Arduino程控恒流源示例代码 int pwmPin 9; int analogPin A0; void setup() { pinMode(pwmPin, OUTPUT); Serial.begin(9600); } void loop() { // 读取上位机指令设置PWM占空比 if (Serial.available() 0) { int duty Serial.parseInt(); duty constrain(duty, 0, 255); analogWrite(pwmPin, duty); // 读取采样电阻上的电压反推实际电流 int adcValue analogRead(analogPin); float voltage adcValue * 5.0 / 1024.0; float current voltage / 24.0; // Rs24Ω Serial.print(设定占空比: ); Serial.print(duty); Serial.print( 实际电流: ); Serial.print(current * 1000); Serial.println( mA); } delay(100); }这段代码的逻辑很直接上位机通过串口发送0-255的占空比数值Arduino输出对应的PWM经过滤波后改变TL431 REF端的电压从而改变恒流值。同时ADC读取采样电阻上的电压反推实际电流并回传形成简单的闭环监测。3.3 反激式开关电源中的光耦反馈这是TL431在开关电源里最核心的应用。反激式开关电源的输出电压需要被反馈到初级侧的PWM控制器但初级和次级之间需要电气隔离所以要用光耦。TL431在这里的作用是检测输出电压的变化驱动光耦的发光二极管从而改变光耦接收管的电流最终调节PWM占空比。电路结构输出电压通过分压电阻R1和R2接到TL431的REF端。TL431的阴极接光耦的发光二极管阴极发光二极管阳极通过限流电阻R3接输出电压正极。TL431的阳极接地。光耦的接收管接在初级侧PWM控制器的反馈引脚上。参数计算假设输出电压Vout12V期望光耦工作电流If1mA。分压电阻取R210kΩ则R1 10kΩ × (12V/2.5V - 1) 38kΩ取标准值39kΩ。限流电阻R3光耦发光二极管的正向压降约1.2VTL431的阴极电压在导通时约2.5V。所以R3 (Vout - Vf - Vk) / If (12V - 1.2V - 2.5V) / 1mA 8.3kΩ取8.2kΩ。注意这里有个容易踩的坑。TL431的阴极电压并不是固定2.5V它随阴极电流变化。在光耦反馈电路里TL431通常工作在“线性区”阴极电压会在2.5V到Vout之间变化。所以R3的取值要保证在最坏情况下光耦仍能得到足够的电流。ATX电源辅助绕组反馈的实际情况有网友问ATX电源辅助绕组反馈电路中TL431的上下分压电阻阻值大概是多少。根据我拆解过的几款ATX电源辅助绕组输出通常是5V或3.3V分压电阻上端一般在10kΩ到20kΩ之间下端在10kΩ左右。具体值取决于光耦的电流传输比和PWM控制器的反馈特性。如果你要修电源建议直接测量原电路的分压电阻值不要随意更改因为这会直接影响输出电压。3.4 过压保护电路简单但救命TL431还可以做过压保护。电路结构是TL431的REF端接在被监测电压的分压点上阴极接一个可控硅或MOS管的栅极阳极接地。当电压超过设定值时TL431导通触发可控硅或MOS管把输出短路或切断输入。参数计算假设需要监测12V电压超过13.5V时触发保护。分压电阻取R210kΩ则R1 10kΩ × (13.5V/2.5V - 1) 44kΩ取43kΩ。这个电路的关键在于响应速度。TL431的响应时间在微秒级对于大多数过压保护场景够用。但如果是要保护敏感的MCU建议再加一级RC滤波防止误触发。3.5 双二极管恒流源提高精度的技巧普通的TL431恒流源有个问题TL431的REF端电流约2μA会流过采样电阻造成误差。虽然2μA在100mA量级下只占0.002%但在小电流场合比如1mA就不可忽略了。双二极管恒流源的思路是用两个二极管或一个双二极管封装来补偿REF端电流的影响。具体接法是TL431的REF端接第一个二极管的阳极第一个二极管的阴极接第二个二极管的阳极第二个二极管的阴极接采样电阻。这样REF端电流会通过两个二极管流到采样电阻但两个二极管的压降相互抵消不影响恒流精度。这个技巧在精密恒流源里很实用尤其是你需要1mA以下的小电流时。3.6 运放MOS管的恒流源性能天花板如果你对恒流精度要求很高比如要做程控恒流源给激光二极管供电那TL431三极管的方案就不够看了。这时候可以用运放MOS管TL431的组合。电路结构TL431提供2.5V基准接到运放的同相端。运放的反相端接采样电阻。运放的输出驱动MOS管的栅极。MOS管的源极接采样电阻漏极接负载。工作原理运放强制反相端电压等于同相端的2.5V所以采样电阻上的电压恒定为2.5V电流就恒定为2.5V/Rs。MOS管在这里只是执行元件不参与反馈计算所以线性度很好。参数计算假设需要500mA恒流Rs 2.5V / 0.5A 5Ω。运放选轨到轨输入输出的比如OPA333或MCP6001。MOS管选低阈值电压的比如AO3400或IRLML2502。采样电阻要用低温漂的比如0.1%精度的金属膜电阻。这个方案的恒流精度可以做到0.1%以内温漂主要取决于TL431和采样电阻。如果用TL431B档±1%加0.1%采样电阻整体精度约1.1%。要更高精度就得换基准源了比如REF5025。4. 基于Arduino和PHPoC的测试与验证4.1 用Arduino搭建自动化测试平台设计完电路只是第一步验证它能不能稳定工作才是关键。我用Arduino Uno搭了一个简单的测试平台可以自动测量TL431电路的输出电压和电流并记录数据。硬件连接Arduino的A0接输出电压分压后的采样点A1接采样电阻上的电压D9输出PWM控制负载电流。通过串口把数据传到电脑上用Excel或Python画曲线。// TL431电路自动化测试代码 int voutPin A0; int isensePin A1; int loadPin 9; void setup() { Serial.begin(115200); pinMode(loadPin, OUTPUT); } void loop() { for (int duty 0; duty 255; duty 5) { analogWrite(loadPin, duty); delay(50); // 等待电路稳定 int voutRaw analogRead(voutPin); int isenseRaw analogRead(isensePin); float vout voutRaw * 5.0 / 1024.0 * 2; // 分压比2:1 float isense isenseRaw * 5.0 / 1024.0; float current isense / 5.0; // Rs5Ω Serial.print(duty); Serial.print(,); Serial.print(vout, 3); Serial.print(,); Serial.print(current, 4); Serial.println(); } delay(2000); }这段代码会逐步增加负载同时记录输出电压和电流。把串口数据导出到Excel就能画出TL431电路的负载调整率曲线。我实测下来一个设计良好的TL431恒流源在0到满载范围内电流变化可以控制在1%以内。4.2 PHPoC的Web远程监控方案PHPoC的好处是自带网络服务器你可以把TL431电路接到PHPoC的ADC引脚上然后在浏览器里实时查看数据。PHPoC的Web IDE支持直接写PHP脚本把ADC读数显示在网页上。?php // PHPoC Web监控脚本 $adc_value adc_read(0); $voltage $adc_value * 3.3 / 4096; $current $voltage / 5.0; // Rs5Ω echo htmlbody; echo h2TL431恒流源监控/h2; echo p采样电压: . number_format($voltage, 4) . V/p; echo p输出电流: . number_format($current * 1000, 2) . mA/p; echo meta http-equivrefresh content1; echo /body/html; ?这个脚本每秒刷新一次你可以在手机或电脑浏览器里远程查看恒流源的输出状态。对于需要长时间老化测试的场景这个方案非常省事。4.3 测试中发现的典型问题在测试过程中我遇到了几个典型问题这里分享出来供大家参考。第一个问题是振荡。TL431在光耦反馈电路里容易产生低频振荡表现为输出电压周期性波动。原因是TL431的增益太高而光耦的响应速度有限形成了相位裕度不足。解决方法是在TL431的阴极和REF之间并联一个电容通常0.1μF到1μF降低高频增益。或者在光耦的发光二极管两端并联一个电阻降低直流增益。第二个问题是启动不良。有些TL431电路在上电时输出电压会先冲高再回落这是因为TL431还没建立基准光耦没有反馈。解决方法是在TL431的REF端加一个电容延缓REF端的上升速度让TL431先于主输出建立工作点。第三个问题是温漂。在恒流源电路里采样电阻的温漂会直接反映到输出电流上。我用普通碳膜电阻时温度从25℃升到60℃电流变化了约2%。换成金属膜电阻后变化降到0.5%以内。所以精密场合一定要用低温漂电阻。5. 常见问题与排查技巧实录5.1 TL431电路故障速查表现象可能原因排查方法解决方案输出电压为零TL431阳极和阴极接反检查引脚定义调换引脚输出电压等于输入电压TL431未导通测量REF端电压检查分压电阻是否开路输出电压波动环路振荡用示波器看阴极波形加补偿电容恒流值偏大采样电阻偏小测量Rs实际阻值更换精度更高的电阻恒流值随温度变化采样电阻温漂大加热电路观察电流变化换金属膜或合金电阻光耦反馈无响应光耦损坏或限流电阻过大测量光耦发光二极管电流调整限流电阻5.2 几个容易被忽略的细节REF端不能悬空。TL431的REF端如果悬空内部运放没有输入输出状态不确定。有些电路里REF端通过电容接地这是为了滤波但电容不能太大否则会影响响应速度。阴极电流不能太小。前面提过最小1mA。但实际设计中建议留2-3倍余量因为温度升高时最小工作电流会增大。我一般按3mA设计。光耦的CTR会老化。光耦的电流传输比CTR会随着使用时间下降导致反馈环路增益降低。设计时要留足够的增益余量否则用几年后电源可能启动不了。PCB布局影响很大。TL431的REF端是高阻抗节点走线要尽量短远离开关节点。采样电阻的接地要单独走线到TL431的阳极不能和功率地混在一起。5.3 用Wokwi仿真平台快速验证如果你不想一开始就搭硬件可以用Wokwi这个在线仿真平台。它支持Arduino和ESP32可以仿真TL431的基本行为。虽然仿真模型不如实际电路准确但用来验证逻辑和代码是够用的。在Wokwi里你可以拖一个TL431元件接上电阻和LED写几行Arduino代码读取ADC就能看到TL431的稳压效果。对于新手来说这是个零成本的入门方式。6. 从电路到产品几个实战建议6.1 器件选型不要只看价格TL431有多个档位A档精度±0.5%B档±1%标准档±2%。价格差不了几分钱但精度差一倍。如果是做批量产品建议至少用B档。采样电阻也是普通5%精度的碳膜电阻几毛钱0.1%的金属膜电阻要几块钱但恒流精度天差地别。光耦的选择也很关键。PC817是最常用的但CTR范围很宽50%到600%一致性差。如果做批量产品建议选CTR分档的光耦比如PC817B或PC817C或者用线性光耦如LOC110。6.2 保护电路不能省TL431电路本身很皮实但外围器件容易坏。比如光耦的发光二极管如果限流电阻取值不当上电瞬间可能过流烧毁。建议在光耦两端反并联一个保护二极管防止反向电压击穿。恒流源电路里如果负载开路TL431的阴极电流会全部流过采样电阻可能导致采样电阻过热。建议在采样电阻上并联一个稳压二极管限制最大电压。6.3 调试时先静态后动态我的习惯是先不接负载用万用表测量TL431的REF端电压确认是2.5V。然后接一个假负载测量输出电压或电流。最后再接实际负载用示波器看动态响应。这样一步步来出了问题容易定位。如果一上来就接满载万一电路有问题可能烧一串器件。尤其是开关电源反馈电路如果TL431没工作PWM控制器会开环运行输出电压可能冲到很高炸电容是常有的事。6.4 用Arduino做批量测试如果你要做一批TL431电路板可以用Arduino搭一个简易测试架。把板子插上去Arduino自动测量输出电压和电流合格亮绿灯不合格亮红灯。这样比人工用万用表测快得多而且不会漏测。// 批量测试示例 int goodPin 12; int badPin 13; void setup() { pinMode(goodPin, OUTPUT); pinMode(badPin, OUTPUT); Serial.begin(9600); } void loop() { int voutRaw analogRead(A0); float vout voutRaw * 5.0 / 1024.0 * 2; if (vout 4.9 vout 5.1) { digitalWrite(goodPin, HIGH); digitalWrite(badPin, LOW); Serial.println(PASS); } else { digitalWrite(goodPin, LOW); digitalWrite(badPin, HIGH); Serial.print(FAIL: ); Serial.println(vout); } delay(500); }这个测试架的成本不到50块钱但能帮你省下大量测试时间。尤其是做几十块板子的时候效率提升非常明显。6.5 关于反激式开关电源的额外提醒如果你是在设计反激式开关电源TL431的反馈环路只是其中一环。RCD吸收电路、变压器设计、PCB布局都会影响整体性能。我见过很多新手把TL431电路算得很准但PCB一塌糊涂结果电源效率低、EMI超标。反激式开关电源的PCB布局有几个要点初级侧的高频环路面积要最小TL431的REF走线要远离变压器光耦要放在初级和次级的隔离带附近。这些细节在《精通开关电源设计》那本书里有详细讲但真正做好还是要靠实际项目积累。7. 写在最后TL431这颗芯片说简单也简单说复杂也复杂。简单在于它的基本原理就一句话REF端2.5V多了就导通少了就截止。复杂在于围绕这个基本原理你要考虑环路稳定性、温度漂移、器件容差、PCB寄生参数等一系列问题。我自己的经验是先把最基础的并联稳压电路搭一遍用万用表和示波器把波形看透。然后再做恒流源理解采样电阻和REF端电流的关系。最后再碰开关电源反馈因为那个涉及隔离和环路补偿难度最高。Arduino和PHPoC在这类电路里不是必须的但它们能帮你把测试和验证自动化让你把更多精力放在电路设计本身。尤其是PHPoC的Web监控功能对于需要长时间运行的测试非常方便。如果你在调试过程中遇到问题先检查三个地方TL431的REF端电压是不是2.5V阴极电流是不是大于1mA光耦的发光二极管有没有电流。这三个点查完大部分问题都能定位。剩下的就是耐心调整参数慢慢逼近你想要的结果。
返回列表