一、蜂鸣器驱动电路
蜂鸣器是电路设计中常用的器件,广泛用于工业控制报警、机房监控、门禁控制、计算机等电子产品作预警发声器件,驱动电路也非常简单,然而很多人在设计时往往随意设计,导 致实际电路中蜂鸣器不发声、轻微发声和乱发声的情况发生。
下面就 3.3V NPN 三极管驱动有源蜂鸣器设计,从实际产品中分析电路设计存在的问题,提出电路的改进方案,使读者能从小小的蜂鸣器电路中学会分析和改进电路的方法,从而设计出更优秀的产品,达到抛砖引玉的效果。
常见错误接法
上图为典型的错误接法,当 BUZZER 端输入高电平时蜂鸣器不响或响声太小。当 I/O 口为高电平时,基极电压为 3.3/4.7*3.3V≈2.3V,由于三极管的压降 0.6~0.7V,则三极管射 极电压为 2.3-0.7=1.6V,驱动电压太低导致蜂鸣器无法驱动或者响声很小。
上图为第二种典型的错误接法,由于上拉电阻R2,BUZZER 端在输出低电平时,由于 电阻R1和R2的分压作用,三极管不能可靠关断。
上图为第三种错误接法,三极管的高电平门槛电压就只有 0.7V,即在 BUZZER 端输入 压只要超过0.7V就有可能使三极管导通,显然0.7V的门槛电压对于数字电路来说太低了, 电磁干扰的环境下,很容易造成蜂鸣器鸣叫。
上图为第四种错误接法,当CPU的GPIO管脚存在内部下拉时,由于 I/O 口存在输入阻抗,也可能导致三极管不能可靠关断,而且和图3一样BUZZER端输入电压只要超过0.7V就有可能使三极管导通。
以上几种用法我觉得也不能说是完全不行,对于器件的各种参数要求会比较局限,不利于器件选型,抗干扰性能也比较差。
NPN三极管控制有源蜂鸣器常规设计
上图为通用有源蜂鸣器的驱动电路。电阻R1为限流电阻,防止流过基极电流过大损坏三极管。
电阻R2有着重要的作用,第一个作用:R2 相当于基极的下拉电阻。如果A端被悬空则由于R2的存在能够使三极管保持在可靠的关断状态,如果删除R2则当BUZZER输入端悬空时则易受到干扰而可能导致三极管状态发生意外翻转或进入不期望的放大状态,造成蜂鸣器意外发声。第二个作用:R2可提升高电平的门槛电压。如果删除R2,则三极管的高电平门槛电压就只有0.7V,即A端输入电压只要超过0.7V 就有可能导通,添加R2的情况就不同了,当从A端输入电压达到约2.2V 时三极管才会饱和导通,具体计算过程如下:
假定β =120为晶体管参数的最小值,蜂鸣器导通电流是15mA。那么集电极电流IC=15mA。则三极管刚刚达到饱和导通时的基极电流是 IB=15mA/120=0.125mA。流经R2的电流是0.7V/3.3kΩ=0.212mA,流经R1的电流 IR1=0.212mA +0.125mA=0.337 mA。最后算出BUZZER端的门槛电压是0.7V+0.337mA× 4.7kΩ=2.2839V≈2.3V。
图中的C2为电源滤波电容,滤除电源高频杂波。C1可以在有强干扰环境下,有效的滤除干扰信号,避免蜂鸣器变音和意外发声,在 RFID射频通讯、Mifare卡的应用时,这里初步选用0.1uF 的电容,具体可以根据实际情况选择。
改进方案
蜂鸣器竟然有EMI 辐射?!在 NPN 3.3V 控制有源蜂鸣器时,在电路的 BUZZER 输入 高电平,让蜂鸣器鸣叫,检测蜂鸣器输入管脚(NPN 三极管的C极处信号,发现蜂鸣器在发声时,向外发生1.87KHz,-2.91V 的脉冲信号,蜂鸣器自身发放脉冲如下图所示。
在电路的BUZZER 输入20Hz的脉冲信号,让蜂鸣器鸣叫,检测蜂鸣器输入管脚处信号,发现蜂鸣器在发声时,在控制电平上叠加了1.87KHz,-2.92V 的脉冲信号,并且在蜂鸣器关断时出现正向尖峰脉冲(≥10V),如下图所示。
上图中1.87KHz,-2.92V 的脉冲信号应该是有源蜂鸣器内部震荡源释放出来的信号。常用有源蜂鸣器主要分为压电式、 电磁震荡式两种, iMX283 开发板上用的是压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成,而多谐震荡器由晶体管或集成电路构成,我们所用的蜂鸣器内部含有晶体管震荡电路(有兴趣的朋友可以自己拆开看看)。 有源蜂鸣器产生脉冲信号能量不是很强,可以考虑增加滤波电容将脉冲信号滤除。在有源蜂鸣器的两端添加一个104的滤波电容,脉冲信号削减到-110mV,减少蜂鸣器自身发放脉冲如下图所示,但顶部信号由于电容充电过慢,有点延时。
消除蜂鸣器EMI辐射,NPN 有源蜂鸣器控制电路改善后电路图如下所示。
兼容性设计
作为标准电路,需要考虑电路的兼容性问题,比如同样耐压不同功率的有源蜂鸣器,有 源蜂鸣器和无源蜂鸣器的兼容性问题。
兼容同样耐压不同功率的有源蜂鸣器电路设计
为了电路的兼容性和可扩展性,电路需要考虑兼容不同厂家和不同功率的蜂鸣器。同一 个耐压的蜂鸣器主要是蜂鸣器的内阻和工作电流不一样,一般 3V~5V 耐压的蜂鸣器,不同功率的蜂鸣器导通电流是 10mA~80mA。我们按照最大功率的蜂鸣器去设计电路即可,即三极管的推动电流按照 80 mA 设计。
假定:β=120 为晶体管参数的最小值,蜂鸣器导通电流是 80 mA。那么集电极电流 IC =80 mA。则三极管刚刚达到饱和导通时的基极电流 IB=80mA/ 120=0.667mA。流经 R2的电流是 0.7V/ 3.3kΩ= 0.212mA,所以流经 R1 的电流应该是 IR1=0.667mA +0.125mA=0.792mA。BUZZER 端的门槛电压是设定在 2.2V,那么 R1=(2.2V-0.7V)/ 0.792mA=1.89K。电阻取常规 2K 即可。
如果电路更换功率稍大一点的有源蜂鸣器,可以按照上面的计算方法计算 R1 的大小。
兼容有源蜂鸣器和无源蜂鸣器电路设计
在电路的设计过程中,往往会碰到需求变更,比如项目前期,对蜂鸣器的发声频率没有 要求,但后期有要求,需要更换为无源蜂鸣器,这时就需要修改电路图,甚至修改 PCB, 这样就增加了改动成本、周期和风险。
有源蜂鸣器和无源蜂鸣器的驱动电路区别主要在于无源蜂鸣器本质上是一个感性元件, 其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会有反向感应 电动势,产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。而如果电路中工作电压较大,要使用耐压值较大的二极管,而如果电路工作频率高,则要选 用高速的二极管。这里选择的是 IN4148 的开关二极管。NPN 无源蜂鸣器控制电路图如下所示。
二、为什么总是在电路里摆两个0.1uF和0.01uF的电容
1、旁路和去耦
旁路电容(Bypass Capacitor)和去耦电容(Decoupling Capacitor)这两个概念在电路中是常见的,但是真正理解起来并不容易。
要理解这两个词汇,还得回到英文语境中去。
Bypass在英语中有抄小路的意思,在电路中也是这个意思,如下图所示。
couple在英语中是一对的意思,引申为配对、耦合的意思。如果系统A中的信号引起了系统B中的信号,那么就说A与B系统出现了耦合现象(Coupling),如下图所示。而Decoupling就是减弱这种耦合的意思。
2、电路中的旁路和去耦
如下图中,直流电源Power给芯片IC供电,在电路中并入了两个电容。
1)旁路
如果Power受到了干扰,一般是频率比较高的干扰信号,可能使IC不能正常工作。
在靠近Power处并联一个电容C1,因为电容对直流开路,对交流呈低阻态。
频率较高的干扰信号通过C1回流到地,本来会经过IC的干扰信号通过电容抄近路流到了GND。这里的C1就是旁路电容的作用。
2)去耦
由于集成电路的工作频率一般比较高,IC启动瞬间或者切换工作频率时,会在供电导线上产生较大的电流波动,这种干扰信号直接反馈到Power会使其产生波动。
在靠近IC的VCC供电端口并联一个电容C2,因为电容有储能作用,可以给IC提供瞬时电流,减弱IC电流波动干扰对Power的影响。这里的C2起到了去耦电容的作用。
3、为什么要用2个电容
回到本文最开始提到的问题,为什么要用0.1uF和0.01uF的两个电容?
电容阻抗和容抗计算公式分别如下:
容抗与频率和电容值成反比,电容越大、频率越高则容抗越小。可以简单理解为电容越大,滤波效果越好。
那么有了0.1uF的电容旁路,再加一个0.01uF的电容不是浪费吗?
实际上,对一个特定电容,当信号频率低于其自谐振频率时呈容性,当信号频率高于其自谐振频率时呈感性。
当用0.1uF和0.01uF的两个电容并联时,相当于拓宽了滤波频率范围。
三、电容、电感产生的相位差
对于正弦信号,流过一个元器件的电流和其两端的电压,它们的相位不一定是相同的。这种相位差是如何产生的呢?这种知识非常重要,因为不仅放大器、自激振荡器的反馈信号要考虑相位,而且在构造一个电路时也需要充分了解、利用或避免这种相位差。下面探讨这个问题。
首先,要了解一下一些元件是如何构建出来的;其次,要了解电路元器件的基本工作原理;第三,据此找到理解相位差产生的原因;第四,利用元件的相位差特性构造一些基本电路。
电阻、电感、电容的诞生过程
科学家经过长期的观察、试验,弄清楚了一些道理,也经常出现了一些预料之外的偶然发现,如伦琴发现X射线、居里夫人发现镭的辐射现象,这些偶然的发现居然成了伟大的科学成就。电子学领域也是如此。
科学家让电流流过导线的时候,偶然发现了导线发热、电磁感应现象,进而发明了电阻、电感。科学家还从摩擦起电现象得到灵感,发明了电容。发现整流现象而创造出二极管也是偶然。
元器件的基本工作原理
电阻——电能→热能
电感——电能→磁场能,&磁场能→电能
电容——电势能→电场能,&电场能→电流
由此可见,电阻、电感、电容就是能源转换的元件。电阻、电感实现不同种类能量间的转换,电容则实现电势能与电场能的转换。
电阻
电阻的原理是:电势能→电流→热能。
电源正负两端贮藏有电势能(正负电荷),当电势加在电阻两端,电荷在电势差作用下流动——形成了电流,其流动速度远比无电势差时的乱序自由运动快,在电阻或导体内碰撞产生的热量也就更多。
正电荷从电势高的一端进入电阻,负电荷从电势低的一端进入电阻,二者在电阻内部进行中和作用。中和作用使得正电荷数量在电阻内部呈现从高电势端到低电势端的梯度分布,负电荷数量在电阻内部呈现从低电势端到高电势端的梯度分布,从而在电阻两端产生了电势差,这就是电阻的电压降。同样电流下,电阻对中和作用的阻力越大,其两端电压降也越大。
因此,用R=V/I来衡量线性电阻(电压降与通过的电流成正比)的阻力大小。
对交流信号则表达为R=v(t)/i(t)。
注意,也有非线性电阻的概念,其非线性有电压影响型、电流影响型等。
电感
电感的原理:电感——电势能→电流→磁场能,&磁场能→电势能(若有负载,则→电流)。
当电源电势加在电感线圈两端,电荷在电势差作用下流动——形成了电流,电流转变磁场,这称为“充磁”过程。若被充磁电感线圈两端的电源电势差撤销,且电感线圈外接有负载,则磁场能在衰减的过程中转换为电能(如负载为电容,则为电场能;若负载为电阻,则为电流),这称为“去磁”过程。
衡量电感线圈充磁多少的单位是磁链——Ψ。电流越大,电感线圈被冲磁链就越多,即磁链与电流成正比,即Ψ=L*I。对一个指定电感线圈,L是常量。
因此,用L=Ψ/I表达电感线圈的电磁转换能力,称L为电感量。电感量的微分表达式为:L=dΨ(t)/di(t)。
根据电磁感应原理,磁链变化产生感应电压,磁链变化越大则感应电压越高,即v(t)=d dΨ(t)/dt。
综合上面两公式得到:v(t)=L*di(t)/dt,即电感的感应电压与电流的变化率(对时间的导数)成正比,电流变化越快则感应电压越高。
电容
电容的原理:电势能→电流→电场能,电场能→电流。
当电源电势加在电容的两个金属极板上,正负电荷在电势差作用下分别向电容两个极板聚集而形成电场,这称为“充电”过程。若被充电电容两端的电源电势差撤销,且电容外接有负载,则电容两端的电荷在其电势差下向外流走,这称为“放电”过程。电荷在向电容聚集和从电容两个极板向外流走的过程中,电荷的流动就形成了电流。
要特别注意,电容上的电流并不是电荷真的流过电容两个极板间的绝缘介质,而只是充电过程中电荷从外部向电容两个极板聚集形成的流动,以及放电过程中电荷从电容两个极板向外流走而形成的流动。也就是说,电容的电流其实是外部电流,而非内部电流,这与电阻、电感都不一样。
衡量电容充电多少的单位是电荷数——Q。电容极板间电势差越大,说明电容极板被冲电荷越多,即电荷数与电势差(电压)成正比,即Q=C*V。对指定电容,C是常量。
因此,用C=Q/V表达电容极板贮存电荷的能力,称C为电容量。
电容量的微分表达式为:C=dQ(t)/dv(t)。
因为电流等于单位时间内电荷数的变化量,即i(t)=dQ(t)/dt,综合上面两个公式得到:i(t)=C*dv(t)/dt,即电容电流与其上电压的变化率(对时间的导数)成正比,电压变化越快则电流越大。
小结:v(t)=L*di(t)/dt
表明电流变化形成了电感的感应电压(电流不变则没有感应电压形成)。
i(t)=C*dv(t)/dt表明电压变化形成了电容的外部电流(实际是电荷量变化。电压不变则没有电容的外部电流形成)。
元件对信号相位的改变
首先要提醒,相位的概念是针对正弦信号而言的,直流信号、非周期变化信号等都没有相位的概念。
电阻上的电压电流同相位
因为电阻上电压v(t)=R*i(t),若i(t)=sin(ωt+θ),则v(t)=R* sin(ωt+θ)。所以,电阻上电压与电流同相位。
电感上的电流落后电压90°相位
因为电感上感应电压v(t)=L*di(t)/dt,若i(t)=sin(ωt+θ),则v(t)=L*cos(ωt+θ)。 所以,电感上电流落后感应电压90°相位,或者说感应电压超前电流90°相位。
直观理解:设想一个电感与电阻串联充磁。从充磁过程看,充磁电流的变化引起磁链的变化,而磁链的变化又产生感应电动势和感应电流。根据楞次定律,感应电流方向与充磁电流相反,延缓了充磁电流的变化,使得充磁电流相位落后于感应电压。
电容上的电流超前电压90°相位
因为电容上电流i(t)=C*dv(t)/dt,若v(t)=sin(ωt+θ),则i(t)=L*cos(ωt+θ)。
所以,电容上电流超前电压90°相位,或者说电压落后电流90°相位。
直观理解:设想一个电容与电阻串联充电。从充电过程看,总是先有流动电荷(即电流)的积累才有电容上的电压变化,即电流总是超前于电压,或者说电压总是落后于电流。
下面的积分方程能体现这种直观性:
v(t)=(1/C)*∫i(t)*dt=(1/C)*∫dQ(t),即电荷变化的积累形成了电压,故dQ(t)相位超前v(t);而电荷积累的过程就是电流同步变化的过程,即i(t)与dQ(t)同相。因此i(t)相位超前于v(t)。
元件相位差的应用
RC文氏桥、LC谐振过程的理解
无论RC文氏桥,还是LC的串联谐振、并联谐振,都是由电容或/和电感容元件的电压、电流相位差引起的,就像机械共振的节拍一样。
当两个频率相同、相位相位的正弦波叠加时,叠加波的幅度达到最大值,这就是共振现象,在电路里称为谐振。
两个频率相同、相位相反的正弦波叠加,叠加波的幅度会降到最低,甚至为零。这就是减小或吸收振动的原理,如降噪设备。
当一个系统中有多个频率信号混合时,如果有两个同频信号产生了共振,那么这个系统中其它振动频率的能量就被这两个同频、同相的信号所吸收,从而起到了对其它频率的过滤作用。这就是电路中谐振过滤的原理。
谐振需要同时满足频率相同和相位相同两个条件。电路如何通过幅度-频率特性选择频率的方法以前在RC文氏桥中讲过,LC串并联的思路与RC相同,这里不再赘述。
下面我们来看看电路谐振中相位补偿的粗略估计(更精确的相位偏移则要计算)
RC文氏桥的谐振(图1)
若没有C2,正弦信号Uo的电流由C1→R1→R2,通过R2上压降形成Uf输出电压。由于支路电流被电容C1移相超前Uo 90°,这超前相位的电流流过R2(电阻不产生相移!),使得输出电压Uf电压超前于Uo 90°。
在R2上并联C2,C2从R2取得电压,由于电容对电压的滞后作用,使得R2上电压也被强制滞后。(但不一定有90°,因为还有C1→R1→C2电流对C2上电压即Uf的影响,但在RC特征频率上,并联C2后Uf输出相位与Uo相同。)
小结:并联电容使得电压信号相位滞后,称为电压相位的并联补偿。
LC并联谐振(图2)
若没有电容C,正弦信号u通过L感应到次级输出Uf,Uf电压超前于u 90°;在L初级并联电容C,由于电容对电压的滞后作用,使得L上电压也被强制滞后90°。因此,并联C后Uf输出相位与u相同。
LC串联谐振(图3)
对于输入正弦信号u,电容C使得串联回路中负载R上的电流相位超前于u 90°,电感L则使得同一串联回路中的电流相位再滞后90°二者相位偏移刚好抵消。因此,输出Uf与输入u同相。
总结
注意,相位影响不一定都是90°,与其它部分相关,具体则要计算。
- 串联电容使得串联支路电流相位超前,从而影响输出电压相位。
- 并联电容使得并联支路电压相位滞后,从而影响输出电压相位。
- 串联电感使得串联支路电流相位滞后,从而影响输出电压相位。
- 并联电感使得并联支路支路电压超前,从而影响输出电压相位。
更简洁的记忆:
在元件上的电流或电压,电容使电流相位超前,电感使电压相位超前。
四、 单片机中19个常用的5V转3.3V技巧
01 使用LDO稳压器
标准三端线性稳压器的压差通常是 2.0-3.0V。要把 5V 可靠地转换为 3.3V,就不能使用它们。压差为几百个毫伏的低压降 (Low Dropout, LDO)稳压器,是此类应用的理想选择。图 1-1 是基本LDO 系统的框图,标注了相应的电流。
从图中可以看出, LDO 由四个主要部分组成:
- 导通晶体管
- 带隙参考源
- 运算放大器
- 反馈电阻分压器
在选择 LDO 时,重要的是要知道如何区分各种LDO。器件的静态电流、封装大小和型号是重要的器件参数。根据具体应用来确定各种参数,将会得到最优的设计。
LDO的静态电流IQ是器件空载工作时器件的接地电流 IGND。IGND 是 LDO 用来进行稳压的电流。当IOUT>>IQ 时, LDO 的效率可用输出电压除以输入电压来近似地得到。然而,轻载时,必须将 IQ 计入效率计算中。具有较低 IQ 的 LDO 其轻载效率较高。轻载效率的提高对于 LDO 性能有负面影响。静态电流较高的 LDO 对于线路和负载的突然变化有更快的响应。
02 采用齐纳二极管的低成本方案
这里详细说明了一个采用齐纳二极管的低成本稳压器方案。
可以用齐纳二极管和电阻做成简单的低成本 3.3V稳压器,如图 2-1 所示。在很多应用中,该电路可以替代 LDO 稳压器并具成本效益。但是,这种稳压器对负载敏感的程度要高于 LDO 稳压器。另外,它的能效较低,因为 R1 和 D1 始终有功耗。R1 限制流入D1 和 PICmicro MCU的电流,从而使VDD 保持在允许范围内。由于流经齐纳二极管的电流变化时,二极管的反向电压也将发生改变,所以需要仔细考虑 R1 的值。
R1 的选择依据是:在最大负载时——通常是在PICmicro MCU 运行且驱动其输出为高电平时——R1上的电压降要足够低从而使PICmicro MCU有足以维持工作所需的电压。同时,在最小负载时——通常是 PICmicro MCU 复位时——VDD 不超过齐纳二极管的额定功率,也不超过 PICmicro MCU的最大 VDD。
03 采用3个整流二极管的更低成本方案
图 3-1 详细说明了一个采用 3 个整流二极管的更低成本稳压器方案。
我们也可以把几个常规开关二极管串联起来,用其正向压降来降低进入的 PICmicro MCU 的电压。这甚至比齐纳二极管稳压器的成本还要低。这种设计的电流消耗通常要比使用齐纳二极管的电路低。
所需二极管的数量根据所选用二极管的正向电压而变化。二极管 D1-D3 的电压降是流经这些二极管的电流的函数。连接 R1 是为了避免在负载最小时——通常是 PICmicro MCU 处于复位或休眠状态时——PICmicro MCU VDD 引脚上的电压超过PICmicro MCU 的最大 VDD 值。根据其他连接至VDD 的电路,可以提高R1 的阻值,甚至也可能完全不需要 R1。二极管 D1-D3 的选择依据是:在最大负载时——通常是 PICmicro MCU 运行且驱动其输出为高电平时——D1-D3 上的电压降要足够低从而能够满足 PICmicro MCU 的最低 VDD 要求。
04 使用开关稳压器
如图 4-1 所示,降压开关稳压器是一种基于电感的转换器,用来把输入电压源降低至幅值较低的输出电压。输出稳压是通过控制 MOSFET Q1 的导通(ON)时间来实现的。由于 MOSFET 要么处于低阻状态,要么处于高阻状态(分别为 ON 和OFF),因此高输入源电压能够高效率地转换成较低的输出电压。
当 Q1 在这两种状态期间时,通过平衡电感的电压- 时间,可以建立输入和输出电压之间的关系。
在连接两个工作电压不同的器件时,必须要知道其各自的输出、输入阈值。知道阈值之后,可根据应用的其他需求选择器件的连接方法。表 4-1 是本文档所使用的输出、输入阈值。在设计连接时,请务必参考制造商的数据手册以获得实际的阈值电平。
05 3.3V→5V直接连接
将 3.3V 输出连接到 5V 输入最简单的方法是直接连接,但直接连接需要满足以下 2 点要求:
- 3.3V输出的 VOH 大于 5V 输入的 VIH
- 3.3V输出的 VOL 小于 5V 输入的 VIL
能够使用这种方法的例子之一是将 3.3V LVCMOS输出连接到 5V TTL 输入。从表 4-1 中所给出的值可以清楚地看到上述要求均满足。
- 3.3V LVCMOS 的 VOH (3.0V)大于5V TTL 的VIH (2.0V)
- 3.3V LVCMOS 的 VOL (0.5V)小于 5V TTL 的VIL (0.8V)
如果这两个要求得不到满足,连接两个部分时就需要额外的电路。可能的解决方案请参阅技巧 6、7、 8 和 13。
06 使用MOSFET转换器
如果 5V 输入的 VIH 比 3.3V CMOS 器件的 VOH 要高,则驱动任何这样的 5V 输入就需要额外的电路。图 6-1 所示为低成本的双元件解决方案。
在选择 R1 的阻值时,需要考虑两个参数,即:输入的开关速度和 R1 上的电流消耗。当把输入从 0切换到 1 时,需要计入因 R1 形成的 RC 时间常数而导致的输入上升时间、 5V 输入的输入容抗以及电路板上任何的杂散电容。输入开关速度可通过下式计算:
由于输入容抗和电路板上的杂散电容是固定的,提高输入开关速度的惟一途径是降低 R1 的阻值。而降低 R1 阻值以获取更短的开关时间,却是以增大5V 输入为低电平时的电流消耗为代价的。通常,切换到 0 要比切换到 1 的速度快得多,因为 N 沟道 MOSFET 的导通电阻要远小于 R1。另外,在选择 N 沟道 FET 时,所选 FET 的VGS 应低于3.3V 输出的 VOH。
07 使用二极管补偿
表 7-1 列出了 5V CMOS 的输入电压阈值、 3.3VLVTTL 和 LVCMOS 的输出驱动电压。
从上表看出, 5V CMOS 输入的高、低输入电压阈值均比 3.3V 输出的阈值高约一伏。因此,即使来自 3.3V 系统的输出能够被补偿,留给噪声或元件容差的余地也很小或者没有。我们需要的是能够补偿输出并加大高低输出电压差的电路。
输出电压规范确定后,就已经假定:高输出驱动的是输出和地之间的负载,而低输出驱动的是 3.3V和输出之间的负载。如果高电压阈值的负载实际上是在输出和 3.3V 之间的话,那么输出电压实际上要高得多,因为拉高输出的机制是负载电阻,而不是输出三极管。
如果我们设计一个二极管补偿电路 (见图 7-1),二极管 D1 的正向电压 (典型值 0.7V)将会使输出低电压上升,在 5V CMOS 输入得到 1.1V 至1.2V 的低电压。它安全地处于 5V CMOS 输入的低输入电压阈值之下。输出高电压由上拉电阻和连至3.3V 电源的二极管 D2 确定。这使得输出高电压大约比 3.3V 电源高 0.7V,也就是 4.0 到 4.1V,很安全地在 5V CMOS 输入阈值 (3.5V)之上。
注:为了使电路工作正常,上拉电阻必须显著小于 5V CMOS 输入的输入电阻,从而避免由于输入端电阻分压器效应而导致的输出电压下降。上拉电阻还必须足够大,从而确保加载在 3.3V 输出上的电流在器件规范之内。
08 使用电压比较器
比较器的基本工作如下:
- 反相 (-)输入电压大于同相 (+)输入电压时,比较器输出切换到 Vss。
- 同相 (+)输入端电压大于反相 (-)输入电压时,比较器输出为高电平。
为了保持 3.3V 输出的极性, 3.3V 输出必须连接到比较器的同相输入端。比较器的反相输入连接到由 R1 和 R2 确定的参考电压处,如图 8-1 所示。
R1 和 R2 之比取决于输入信号的逻辑电平。对于3.3V 输出,反相电压应该置于VOL 与VOH之间的中点电压。对于 LVCMOS 输出,中点电压为:
经过适当连接后的运算放大器可以用作比较器,以将 3.3V 输入信号转换为 5V 输出信号。这是利用了比较器的特性,即:根据 “反相”输入与 “同相”输入之间的压差幅值,比较器迫使输出为高(VDD)或低 (Vss)电平。
注:要使运算放大器在 5V 供电下正常工作,输出必须具有轨到轨驱动能力。
09 直接连接
通常 5V 输出的 VOH 为 4.7 伏, VOL 为 0.4 伏;而通常 3.3V LVCMOS 输入的 VIH 为 0.7 x VDD, VIL为 0.2 x VDD。
当 5V 输出驱动为低时,不会有问题,因为 0.4 伏的输出小于 0.8 伏的输入阈值。当 5V 输出为高时, 4.7 伏的 VOH 大于 2.1 伏 VIH,所以,我们可以直接把两个引脚相连,不会有冲突,前提是3.3V CMOS 输出能够耐受 5 伏电压。
如果 3.3V CMOS 输入不能耐受 5 伏电压,则将出现问题,因为超出了输入的最大电压规范。
10 使用二极管钳位
很多厂商都使用钳位二极管来保护器件的 I/O 引脚,防止引脚上的电压超过最大允许电压规范。钳位二极管使引脚上的电压不会低于 Vss 超过一个二极管压降,也不会高于 VDD 超过一个二极管压降。要使用钳位二极管来保护输入,仍然要关注流经钳位二极管的电流。流经钳位二极管的电流应该始终比较小 (在微安数量级上)。
如果流经钳位二极管的电流过大,就存在部件闭锁的危险。由于5V 输出的源电阻通常在 10Ω 左右,因此仍需串联一个电阻,限制流经钳位二极管的电流,如图 10-1所示。使用串联电阻的后果是降低了输入开关的速度,因为引脚 (CL)上构成了 RC 时间常数。
11 5V→3.3V有源钳位
使用二极管钳位有一个问题,即它将向 3.3V 电源注入电流。在具有高电流 5V 输出且轻载 3.3V 电源轨的设计中,这种电流注入可能会使 3.3V 电源电压超过 3.3V。
为了避免这个问题,可以用一个三极管来替代,三极管使过量的输出驱动电流流向地,而不是 3.3V 电源。设计的电路如图 11-1 所示。
Q1的基极-发射极结所起的作用与二极管钳位电路中的二极管相同。区别在于,发射极电流只有百分之几流出基极进入 3.3V 轨,绝大部分电流都流向集电极,再从集电极无害地流入地。基极电流与集电极电流之比,由晶体管的电流增益决定,通常为10-400,取决于所使用的晶体管。
12 电阻分压器
可以使用简单的电阻分压器将 5V 器件的输出降低到适用于 3.3V 器件输入的电平。这种接口的等效电路如图 12-1 所示。
通常,源电阻 RS 非常小 (小于 10Ω),如果选择的 R1 远大于RS 的话,那么可以忽略 RS 对 R1 的影响。在接收端,负载电阻 RL 非常大 (大于500 kΩ),如果选择的R2远小于RL的话,那么可以忽略 RL 对 R2 的影响。
在功耗和瞬态时间之间存在取舍权衡。为了使接口电流的功耗需求最小,串联电阻 R1 和 R2 应尽可能大。但是,负载电容 (由杂散电容 CS 和 3.3V 器件的输入电容 CL 合成)可能会对输入信号的上升和下降时间产生不利影响。如果 R1 和 R2 过大,上升和下降时间可能会过长而无法接受。
如果忽略 RS 和 RL 的影响,则确定 R1 和 R2 的式子由下面的公式 12-1 给出。
公式 12-2 给出了确定上升和下降时间的公式。为便于电路分析,使用戴维宁等效计算来确定外加电压 VA 和串联电阻R。戴维宁等效计算定义为开路电压除以短路电流。根据公式 12-2 所施加的限制,对于图 12-1 所示电路,确定的戴维宁等效电阻 R 应为 0.66*R1,戴维宁等效电压 VA 应为0.66*VS。
例如,假设有下列条件存在:
- 杂散电容 = 30 pF
- 负载电容 = 5 pF
- 从 0.3V 至 3V 的最大上升时间 ≤ 1 μs
- 外加源电压 Vs = 5V
确定最大电阻的计算如公式 12-3 所示。
13 电平转换器
尽管电平转换可以分立地进行,但通常使用集成解决方案较受欢迎。电平转换器的使用范围比较广泛:有单向和双向配置、不同的电压转换和不同的速度,供用户选择最佳的解决方案。
器件之间的板级通讯 (例如, MCU 至外设)通过 SPI 或 I2C™ 来进行,这是最常见的。对于SPI,使用单向电平转换器比较合适;对于 I2C,就需要使用双向解决方案。下面的图 13-1 显示了这两种解决方案。
3.3V 至 5V 接口的最后一项挑战是如何转换模拟信号,使之跨越电源障碍。低电平信号可能不需要外部电路,但在 3.3V 与 5V 之间传送信号的系统则会受到电源变化的影响。例如,在 3.3V 系统中,ADC转换1V峰值的模拟信号,其分辨率要比5V系统中 ADC 转换的高,这是因为在 3.3V ADC 中,ADC 量程中更多的部分用于转换。但另一方面,3.3V 系统中相对较高的信号幅值,与系统较低的共模电压限制可能会发生冲突。
因此,为了补偿上述差异,可能需要某种接口电路。本节将讨论接口电路,以帮助缓和信号在不同电源之间转换的问题。
14 模拟增益模块
从 3.3V 电源连接至 5V 时,需要提升模拟电压。33 kΩ 和 17kΩ 电阻设定了运放的增益,从而在两端均使用满量程。11 kΩ 电阻限制了流回 3.3V 电路的电流。
15 模拟补偿模块
该模块用于补偿 3.3V 转换到 5V 的模拟电压。下面是将 3.3V 电源供电的模拟电压转换为由 5V电源供电。右上方的 147 kΩ、 30.1 kΩ 电阻以及+5V 电源,等效于串联了 25 kΩ 电阻的 0.85V 电压源。
这个等效的 25 kΩ 电阻、三个 25 kΩ 电阻以及运放构成了增益为 1 V/V 的差动放大器。0.85V等效电压源将出现在输入端的任何信号向上平移相同的幅度;以 3.3V/2 = 1.65V 为中心的信号将同时以 5.0V/2 = 2.50V 为中心。左上方的电阻限制了来自 5V 电路的电流。
16 有源模拟衰减器
此技巧使用运算放大器衰减从 5V 至 3.3V 系统的信号幅值。
要将 5V 模拟信号转换为 3.3V 模拟信号,最简单的方法是使用 R1:R2 比值为 1.7:3.3 的电阻分压器。
然而,这种方法存在一些问题:
- 1)衰减器可能会接至容性负载,构成不期望得到的低通滤波器。
- 2)衰减器电路可能需要从高阻抗源驱动低阻抗负载。
无论是哪种情形,都需要运算放大器用以缓冲信号。所需的运放电路是单位增益跟随器 (见图 16-1)。
电路输出电压与加在输入的电压相同。
为了把 5V 信号转换为较低的 3V 信号,我们只要加上电阻衰减器即可。
如果电阻分压器位于单位增益跟随器之前,那么将为 3.3V 电路提供最低的阻抗。此外,运放可以从3.3V 供电,这将节省一些功耗。如果选择的 X 非常大的话, 5V 侧的功耗可以最大限度地减小。
如果衰减器位于单位增益跟随器之后,那么对 5V源而言就有最高的阻抗。运放必须从 5V 供电,3V 侧的阻抗将取决于 R1||R2 的值。
17 模拟限幅器
在将 5V 信号传送给 3.3V 系统时,有时可以将衰减用作增益。如果期望的信号小于 5V,那么把信号直接送入 3.3V ADC 将产生较大的转换值。当信号接近 5V 时就会出现危险。所以,需要控制电压越限的方法,同时不影响正常范围中的电压。
这里将讨论三种实现方法:
- 使用二极管,钳位过电压至 3.3V 供电系统。
- 使用齐纳二极管,把电压钳位至任何期望的电压限。
- 使用带二极管的运算放大器,进行精确钳位。
进行过电压钳位的最简单的方法,与将 5V 数字信号连接至 3.3V 数字信号的简单方法完全相同。使用电阻和二极管,使过量电流流入 3.3V 电源。选用的电阻值必须能够保护二极管和 3.3V 电源,同时还不会对模拟性能造成负面影响。如果 3.3V 电源的阻抗太低,那么这种类型的钳位可能致使3.3V 电源电压上升。即使 3.3V 电源有很好的低阻抗,当二极管导通时,以及在频率足够高的情况下,当二极管没有导通时 (由于有跨越二极管的寄生电容),此类钳位都将使输入信号向 3.3V 电源施加噪声。
为了防止输入信号对电源造成影响,或者为了使输入应对较大的瞬态电流时更为从容,对前述方法稍加变化,改用齐纳二极管。齐纳二极管的速度通常要比第一个电路中所使用的快速信号二极管慢。不过,齐纳钳位一般来说更为结实,钳位时不依赖于电源的特性参数。钳位的大小取决于流经二极管的电流。这由 R1 的值决定。如果 VIN 源的输出阻抗足够大的话,也可不需要 R1。
如果需要不依赖于电源的更为精确的过电压钳位,可以使用运放来得到精密二极管。电路如图 17-3所示。运放补偿了二极管的正向压降,使得电压正好被钳位在运放的同相输入端电源电压上。如果运放是轨到轨的话,可以用 3.3V 供电。
由于钳位是通过运放来进行的,不会影响到电源。
运放不能改善低电压电路中出现的阻抗,阻抗仍为R1 加上源电路阻抗。
18 驱动双极型晶体管
在驱动双极型晶体管时,基极 “驱动”电流和正向电流增益 (Β/hFE)将决定晶体管将吸纳多少电流。如果晶体管被单片机 I/O 端口驱动,使用端口电压和端口电流上限 (典型值 20 mA)来计算基极驱动电流。如果使用的是 3.3V 技术,应改用阻值较小的基极电流限流电阻,以确保有足够的基极驱动电流使晶体管饱和。
RBASE的值取决于单片机电源电压。公式18-1 说明了如何计算 RBASE。
如果将双极型晶体管用作开关,开启或关闭由单片机 I/O 端口引脚控制的负载,应使用最小的 hFE规范和裕度,以确保器件完全饱和。
对于这两个示例,提高基极电流留出裕度是不错的做法。将 1mA 的基极电流驱动至 2 mA 能确保饱和,但代价是提高了输入功耗。
19 驱动N沟道MOSFET晶体管
在选择与 3.3V 单片机配合使用的外部 N 沟道MOSFET 时,一定要小心。MOSFET 栅极阈值电压表明了器件完全饱和的能力。
对于 3.3V 应用,所选 MOSFET 的额定导通电阻应针对 3V 或更小的栅极驱动电压。例如,对于具有 3.3V 驱动的100 mA负载,额定漏极电流为250 μA的FET在栅极 - 源极施加 1V 电压时,不一定能提供满意的结果。在从 5V 转换到 3V 技术时,应仔细检查栅极- 源极阈值和导通电阻特性参数,如图 19-1所示。稍微减少栅极驱动电压,可以显著减小漏电流。
对于 MOSFET,低阈值器件较为常见,其漏-源电压额定值低于 30V。漏-源额定电压大于 30V的 MOSFET,通常具有更高的阈值电压 (VT)。
如表 19-1 所示,此 30V N 沟道 MOSFET 开关的阈值电压是 0.6V。栅极施加 2.8V 的电压时,此MOSFET 的额定电阻是 35 mΩ,因此,它非常适用于 3.3V 应用。
对于 IRF7201 数据手册中的规范,栅极阈值电压最小值规定为 1.0V。这并不意味着器件可以用来在1.0V 栅 - 源电压时开关电流,因为对于低于 4.5V 的VGS (th),没有说明规范。对于需要低开关电阻的 3.3V 驱动的应用,不建议使用 IRF7201,但它可以用于 5V 驱动应用。