在数字电路设计的中,往往需要把数字信号经过开关扩流器件来驱动一些蜂鸣器、LED、继电器等需要较大电流的器件,用得最多的开关扩流器件要数三极管。然而在使用的过程中,如果电路设计不当,三极管无法工作在正常的开关状态,就达不到预期的目的,有时就是因为这些小小的错误而导致重新打板,导致浪费。本人在这个方面就吃过亏,所以把自己使用三极管的一些经验以及一些常见的误区给大家分享一下,在电路设计的过程中可以减少一些不必要的麻烦。
下面来看几个三极管做开关的常用电路画法。几个例子都是蜂鸣器作为被驱动器件。
图一的a 电路用的是NPN管,注意蜂鸣器接在三极管的集电极,驱动信号可以是常见的3.3V或者5VTTL,高电平开通,电阻按照经验法可以取4.7K。例如a电路,开通时假设为高电平5V,基极电流Ib=(5V-0.7V)/4.7K=0.9mA,可以使三极管完全饱和。b 电路用的是PNP管,同样把蜂鸣器接在三极管的集电极,不同的是驱动信号是5V的TTL电平。以上这两个都可以正常工作,只要PWM驱动信号工作在合适的频率,蜂鸣器(有源)都会发出最大的声音。
图二的这两个电路相比图一来说,最大的区别在于被驱动器件接在三极管的发射极。同样看c电路,开通时假设为高电平5V,基极电流Ib=(5V-0.7V-UL)/4.7K,其中UL为被驱动器件上的压降。可以看到,同样取基极电阻为4.7K,流过的基极电流会比图一a电路的要小,小多少要看UL是多少。如果UL比较大,那么相应的Ib就小,很有可能导致三极管无法工作在饱和状态,使得被驱动器件无法动作。有人会说把基极电阻减小就可以了呀,可是被驱动器件的压降是很难获知的,有些被驱动器件的压降是变动的,这样一来基极电阻就较难选择合适的值,阻值选择太大就会驱动失败,选择太小,损耗又变大。所以,在非不得已的情况下,不建议选用图二的这两种电路。
我们再来看图三这两个电路。驱动信号为3.3VTTL电平,而被驱动器件开通电压需要5V。在3.3V的MCU电路中,不小心的话很容易就设计出这两种电路,而这两种电路都是错误的。先分析e电路,这是典型的"发射极正偏,集电极反偏"的放大电路,或者叫射极输出器。当PWM信号为3.3V时,三极管发射极电压为3.3V-0.7V = 2.6V,无法达到期望的5V。图三f电路也是一个很失败的电路,首先这个电路开通是没有问题的,当驱动信号为低电平时,被驱动器件可以正常动作。然而这个电路是无法关断的,当驱动信号PWM为3.3V高电平的时候,Ube = 5V - 3.3V = 1.7V仍然可以使三极管开通,于是无法关断。在这里,有人会说用过这个电路,没有问题啊,而且MCU的电压也是3.3V。我说你用的肯定是OD(开漏)驱动方式,而且是真正的OD或者是5V容忍的OD,比如STM32的很多IO口都可以设置为5V容忍的OD驱动方式(但是有些是不行的)。当驱动信号为OD门驱动方式时,输出高电平,信号就变成了高阻态,流过基极的电流为零,三极管可以有效关断,这个时候f电路依然有效。
综合以上几种电路的情况分析,得到图四这两种个人认为是最优的驱动电路,与图一不同的是,图四在基极与发射极之间多加了一个100K的电阻,这个电阻也是有一定作用的,可以让三极管有一个已知的默认状态。当输入信号去除的时候,三极管还处于关断状态。在安全和稳定的方面考虑,多加的这个电阻还是很有必要的,或者说可以让三极管工作在更好的开关状态。
三极管作为开关器件,虽然驱动电路很简单,要使电路工作更加稳定可靠,还是不能掉以轻心。为了不容易出错,个人建议是优先采用图四的电路,尽量不采用图二的电路,避免使用图三的工作状况。