大家好,又见面了,我是你们的朋友全栈君。
—引言—
开关电路在单片机电路设计中经常用到,一般有两个作用,一是电平的转换,二是增加单片机IO口的驱动能力。虽然这个电路很简单,也很常用,但是我发现还是有些人电路结构错误或者参数不会设置。
—电路结构—
如图1所示,三极管开关电路基本结构由基极电阻,集电极电阻(负载)组成。
图1 三极管开关电路基本结构
有些人设计的开关电路就没有基极电阻,有可能不是他不知道这种电路结构,而是他不会调参数,不管怎么改变Rb,始终电路都没有进入饱和区,最后将Rb短接后发现电路正常了,导致他认为这样电路是可以用的。
事实上,没有基极电阻,如果说是单片机的IO口接的控制引脚,那么单片机工程师控制单片机IO口输出高电平的时候,IO口上的电压只有0.7V左右。那是由于单片机IO口的电流只有10mA左右,不能给三极管提供足够大大的电流,以至于拉低电压至三极管b、e之间的导通电压0.7V左右。当给三极管基极能够提供足够电流,而控制电压大于三极管b、e之间电压极限电压的时候就会烧坏三极管,如果没有大于它的极限电压,但是电流很大,时间久了就会导致三极管热损坏。所以只有设置合适的基极电阻才能保证电路的可靠性。
该电路存在一个问题,就是控制端没有接任何东西就会出现高阻状态,三极管的工作状态是不确定的。为了安全起见,没有对三极管进行控制的时候,应该让三极管工作在截止区,要想NPN型三极管截止,Ib就要很小,可以选择在三极管基极接一个下拉电阻,如图2所示。取值是要远大于(10倍以上)Rb的,这样才能下拉电阻不影响对三极管的控制。小编我个人的取值习惯是100K。
图2 带下拉电阻的开关电路
如果我们想驱动无源蜂鸣器,那么就要在控制端输入一个方波信号进行控制,这时候就需要三极管进行快速切换,想加快三极管切换速度就要如图3所示,在Rb上并联一个加速电容。
图3 带加速电容的三极管开关电路
其原理是,电容两端的电压不能发生突变,那么控制端给一个高电平的瞬间,电容可以视为短路,此时的电流最大,因此加快了三极管的导通速度,这个暂态过程很快就结束了,电容充电完成后进入了稳态,电容就形如开路,而不影响电路的正常工作。由于电容在控制端高电平期间充了左正右负的电压,当控制端变成低电平(0V)瞬间电容两端的电压不能突变,所以在电容的右端出现了负电压,加快了三极管的关断。大多数情况下,加速电容取值约为几百个皮法。为什么加了加速电容就能实现加快关断与导通,那是因为三极管是存在结电容的,导通与关断时间是决定于结电容的充放电时间的,这个现象就叫米勒效应,加了加速电容后,就加快了结电容充放电时间,使得三极管很快跨越了米勒平台,所以能加快三极管的关断与导通。
—参数计算—
三极管的开关状态就是三极管的饱和与截止,三极管的截止容易实现,只要将IB降为O就可以实现三极管的截止。而三极管的饱和没有截止那么实现,开关电路的计算就是在计算三极管进入饱和的参数。要想进行计算,那么就要了解三极管的饱和特性。
1.如何判断饱和?
一是三极管发射结和集电结正偏,基极电流变化,集电极电流几乎不变。
饱和条件:1.集电极和电源之间电电阻越大越容易饱和;2.基极电流比较大以使得集电极的电阻上分得的电压越大,集电极电压就被拉低,而出现Ub大于Uc的情况。
影响饱和的因素:1.集电极电阻的大小(负载);2.放大倍数的大小;3.基极电流的大小。
饱和的现象:1.基极电压大于集电极电压;2.Uce为0.5V左右,越小饱和越深。
临界饱和条件:Ib=(Vcc/RL)/β
知道这些概念后,我们就知道怎么去计算参数了。首先我们在设计前期我们应该知道负载一些参数,如电压电流。负载需要的电流就是设计的关键,通过负载电流求得Ib,此时的Ib是三极管临界饱和的值,一般我们要取数倍才能保证三极管进入深度饱和。然后根据控制端的电压减去Ube(0.7V)除以Ib就可以得到Rb。
—电路设计—
要求 | 3.3V供电单片机驱动液晶背光 |
---|
1.电路结构确定
我不需要控制背光亮度,只需要控制背光亮与不亮,所以选择带下拉电阻的开关电路。如图4所示。
图4 背光驱动电路
2.电源电压确定
图5 一款液晶的背光参数
通过图5 就可以知道要想背光正常量的话,电源电压要大于3.0V,那么电源电压就取3.3V。
3.RC阻值确定
RC的作用是分压,限流,保证背光不被烧。背光是3.0V,电流是15mA,电源是3.3V,那么RC=(3.3V-3.0V)/15mA=20Ω。
4.RB的确定
根据前面叙述的,临界饱和的基极电流为IB=IC/β,这里β取100,那么IB=15mA/100=150uA,为了保证三极管进入深度饱和,还要取数倍IB,这里取10倍,那么饱和IB=150uA*100=1.5mA,单片机IO完全能够提供1.5mA电流。单片机高电平是3.3V,那么RB=(3.3V-Ube)/1.5mA=(3.3V-0.7V)/1.5mA=1.733KΩ,因为电阻系列没有这种电阻,所以我们取2K,因为IB我们取了数倍,所以RB比理论值大一点也是可以行的。
5.R1确定
R1下拉电阻,我在前面已经叙述过了,这里我们取100K。
6.三极管确定
该电路的电源电压不高,电流也不大,所以对三极管要求也不是很大,所以选择9013,8050三极管都可以。下面我们看看这两款三极管的参数。
图6 9013性能参数
图7 8050性能参数
如图8仿真结果
图8 电路仿真
通过,仿真我们发现我们计算的参数已经使得三极管进入了深度饱和,因为Uce=92mV,满足深度饱和条件。
但是IC没有达到15mA,那是因为我们忽略了Uce的存在而导致的偏差,但是这一点偏差不影响开关电路的正常工作,可以接受。
因此,我们这种设计的思路是可行的,如果大家有更好的方法就在评论讨论讨论。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191560.html原文链接:https://javaforall.cn