TL431是由美国德州仪器公司(TI)和Motorola公司生产的2.50~36V可调精密并联稳压器,它是一种具有可调电流输出能力的基准电压源,TL431系列产品包括TL431C、TL431AC、TL431I、TL431AI、TL431M、TL431Y,共6种型号。它们的内部电路完全相同,仅个别技术指标略有差异。
该器件的符号如图1,三个引脚分别为:阴极(CATHODE)、阳极(ANODE)和参考端(REF),参考电压为2.5V。

由内部电路图图
2可以看出,它由多极放大电路、偏置电路、补偿和保护电路组成,其中晶体管V1构成输入极,V3、V4、V5构成稳压基准,V7和V8组成的镜像恒流源与V6、V9构成差分放大器作中间级,V10、V11形成复合管,构成输出,其它一些电阻、电容、二级管分别起偏置、补偿和保护作用,在原理上它是一个单端输入、单端输出直流放大器。

如其等效功能示意图如图3所示,由一个2.5V的精密基准电压源、一个电压比较器和一输出开关管等组成,参考端的输出电压与精密基准电压源Vref相比较,当参考端电压超过2.5V时,TL431立即导通。

这是431用得最多的电路,输出电压Vout=(1+R1/R2)Vref。选择不同的R1和R2的值可以得到从2.5V到36V范围内的任意电压输出,特别地,当R1=R2时,VO=5V。由于参考极输入用的是射极跟随器,因此具有很高的输入阻抗,而输入电流很小。
对于此电路,基本分析步骤为:
1)确定稳压电压
2)确定负载最大电流
3)根据输入电压Vin、稳压电压,限流电阻R确认TL431的工作电流(1mA~100mA)
4)算出限流电阻R的功率,P=(Vin-Vout)*(Vin-Vout)/R,选择合适的电阻R
例如输入电压12V,输出电压为3.3V,根据TL431的Ref引脚只需要uA级的电流就看实现稳压,因此R1和R2可选择K级电阻,K1这里选择15K,那么K2为47K,输出电压3.297V;
负载电流Iout假设是30mA,流过TL431的电流IKA可以按照最小值1mA计算,那么输入电流Iin=Iout+IKA=31mA,那么电流电阻R≤(Vin-Vout)/Iin≈280Ω,可以取220欧姆,此时电阻功率P≈344mW,电阻可取3/4W的2010封装贴片电阻。注意TL431的耗散功率,一般是350mW左右,即PD≥Iout*Vout。此种稳压器功率较小,一般只用作基准电源,适合于宽输入电压或存在大的输入电压瞬变场合。

串联稳压器可以说是并联稳压器的扩充,但是电流可以输出很大(如果用大电流的复合管),但是输出电压公式一样的,Vout=(1+R1/R2)Vref,注意输出最小值Vout(min)=Vref+Vbe。
R为TL431提供工作电流同时也为晶体管Q提供基极电流,C1起到补偿作用,TL431耗散功率PD=Vout*(Iout/β),其中β为晶体管放大倍数。这种基准电源适合于负载电流变化,电源电流和负载电流同时减小或者需要对基准源进行休眠或关断的场合。

并联扩流稳压电路是在基本的并联稳压电路基础上修改而来,通过增加三极管,三极管的发射极连接到输出电压端,利用三极管的放大状态,使其具有扩流作用。

利用EL431的基准电压Vref可以设计带温补电压基准的单电源比较器,其中Vth=Vref,当Vin<Vref时,Vout>0;当Vin>Vref时,Vout≌2V。

由于Vref端的电压始终稳定在2.5V,那么接在REF端和地间的电阻中流过的电流就应是恒定的。利用这个特点,可以将TL431设计出精密的恒流源。恒流电流I=Vref/R1。

在开关电源当中我们经常看见这样的反馈电路,以TL431构成误差放大器,以光耦进行原副边隔离的电路结构。R3和R5决定输出电压大小,C4和R6构成补偿网络。当输出电压有变化,最终导致光耦输入端二极管电流变化,从而控制电源芯片开关管通断频率,使输出电压保持不变。

参考原文:《TL431工作原理是什么,它的多种经典应用电路你都用过吗?》
TL431是一款很常用的电压基准源。如果输出端接电容会发生振荡,下面是实测的振荡波形。可以看出是完美的锯齿波,频率和电容相关。

1.输出接100nF电容时波形

2.输出接4.7nF电容时波形

3.为什么会振荡,需要看一下内部原理。431内部其实就是一个运放,反相端固定为2.5V。

当输出接电容在一定的范围内时,输出经过RC产生相移,就可能将稳定的负反馈变成正反馈,从而发生振荡。如图在KA之间接电容,就等于给R端接了对地电容,即等于给运放同相端接了输入电容。
产生振动的原因看下图就知道了,下图中的两行字:发生相移(延时反馈)的方式通常有两种:由于电容性负载(a);由于反向输入端子处的电容(b);

所以使用431作为基准源时需要避免这个问题,最简单可靠的是输出接33uF以上钽电容。
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
使用Ruby1.9.2运行IDE提示说需要gemruby-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的
目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类
我在我正在处理的一些代码中发现了这一点。它旨在解决从磁盘读取key文件的要求。在生产环境中,key文件的内容位于环境变量中。旧代码:key=File.read('path/to/key.pem')新代码:key=File.read('|echo$KEY_VARIABLE')这是如何工作的? 最佳答案 来自IOdocs:Astringstartingwith“|”indicatesasubprocess.Theremainderofthestringfollowingthe“|”isinvokedasaprocesswithappro