打印
[应用方案]

单片机的GPIO外部驱动电路

[复制链接]
1925|62
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mikewalpole|  楼主 | 2024-11-24 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一般而言,我们在开发各种单片机外围电路的时候,总会遇到两个问题:

  • 单片机供电电压普遍3.3V,虽然STM32的管脚可以容忍5V电压,但如果是超过5V的电压,单片机就无能为力了。
  • 就以典型的STM32F10x为例,I/O引脚电路max为±25MA,以下为ST官方说明:

    就这点电流,驱动一个LED都有点困难,想要驱动别的,比如数码管啊,或者是继电器一类的就更吃力了。
小电流驱动大电流的方法小功率LED驱动

一般而言,单片机使用LED都会将LED的阴极连接至单片机的引脚,然后,阳极连接VCC。
但是这样,也有一个问题,VCC的电流一般都比较大,在几百MA,而一个小小的二极管的电流消耗也不多,顶多几十MA,所以。。。
我们需要在二极管的阳极与VCC之间加一个限流电阻,以防止大电流导致的二极管烧毁。

限流电阻阻值

我们知道LED是一个非线性元件,但是在这个电路中,我们可以简化的看成一个接近2V的二极管。不同颜色的LED稳压值不同,但都在2V左右。通常我们按2V值进行计算;工作电流一般在0到25mA这个区间,最大工作电流具体还要看其温度特性,如果它工作环境比较恶劣,可能最大电流就只有8mA左右。这个电流作为最大电压时的工作电流。通常我们设计时取2mA到3mA左右即可。因为电流再大,其亮度变化不明显。这样我们就有了计算公式:

当工作在直流5V系统时,其电阻结果是1k~1.5k左右,我们取1k。

限流电阻功率以及封装

有了上面计算的电阻值和电流值,我们就能计算最大消耗功率。由于消耗在电阻上的功耗是热量,交流可按有效值进行计算。

对于5V系统,电阻消耗:3V*3V/1k=9mW,稳定性及容差考虑取2倍功耗电阻,即>18mW;

大功率继电器驱动

首先,不得不说一下继电器的结构,简而言之,继电器的控制端就是一个电磁线圈,通电后,线圈变成了一个电磁铁,把触电的铁片吸附,来使受控端导通。

所以,我们需要做的就是控制这个电磁铁的通电与否。

== 那么,我们把LED的驱动电路用在继电器的驱动电路上可以吗? ==

当然不行。第一点,单片机IO的驱动能力有限,对于单片机来说,继电器和电磁阀这种负载已经属于非常“大功率”的负载了,已经超出大多数单片机的IO驱动能力。第二点,继电器的控制端是一个电磁线圈,可以简化看成一个电感,这类感性负载在关断时会产生自感电压,也容易烧坏单片机。

所以,我们需要一个间接的方式来驱动他。

然而关于间接驱动,我们想要做到的只有两个要求,第一,将IO口的电流进行放大,并驱动电磁线圈,第二,将线圈产生的自感电压进行屏蔽或者过滤。

电流放大

明白了要求,那就很好找到解决方案,学过模电的同学都知道一个电路:三极管放大电路


一个普通的共射极放大电路
当然,直接的共射极放大电路远远不能对继电器进行驱动,我们得让他变化一下,来符合我们的使用要求。
第一点,C1和C2这两个电容肯定不能在电路存在,因为电容的特性就是隔直通交,假如存在,我们将很难讲IO的电平信号传入三极管内部,三极管的控制信号很难传入到继电器内部。
第二点,为了提高电路的放大倍数,进而去掉发射极电阻R1,但是,IO电平肯定不能让其处于浮空的不确定状态,于是,我们需要保留R2,使基极电平处于接地状态。
第三点,为了限制基极的电流,我们需要在基极添加限流电阻(如果没有这个电阻,输入电压一超过0.6~0.7V,二极管处于导通状态,基极将会有很大的电流通过)
第四点,为了减小功耗,我们还得把Re的电阻去掉。
综上所述,我们得到了以下电路:

这样的电路,就是一个很好的大电流驱动器。

当Input没有输入电平信号,或者输入低电平信号时,三极管基极没有电流通过,此时处于截至状态,VCC的电流到达集电极截止,整个电路处于断路状态。
当Input输入高电平时(大于最低导通电压,根据三极管的型号而定),三极管的基极有了电流,三极管导通,VCC电流从集电极流入后,从发射极流出接地,整个电路通路。

当然,做了这些以后,我们驱动一般的负载,比如说蜂鸣器啊,大功率的LED什么的可以,如果要驱动继电器,还差点东西。

屏蔽自感电压

一般而言,屏蔽自感电压只需要一个小小的二极管就可以来做到反向续流,抑制浪涌。


最终原理图就是这样。
R1限流电阻一般2-5K,R2的下拉电阻阻值在10K,二极管可以选择1N4148,三极管一般选取VCBO≈VCEO≥24V,放大倍数β一般选择在120~240之间,推荐8050,继电器淘宝搜一下5V继电器一抓一大把。


使用特权

评论回复
沙发
eefas| | 2024-12-2 19:28 | 只看该作者
在驱动大功率负载时,如继电器、电磁阀等,由于这些负载需要较大的电流,而单片机GPIO引脚的驱动能力有限,因此通常采用三极管进行驱动。

使用特权

评论回复
板凳
iyoum| | 2024-12-2 20:40 | 只看该作者
外部驱动电路则是连接在 GPIO 引脚和外部设备之间,用于增强信号驱动能力、进行信号转换或实现其他功能的电路。

使用特权

评论回复
地板
saservice| | 2024-12-6 20:31 | 只看该作者
达林顿对管是由两个三极管复合而成,提供了更高的电流增益,适合于驱动需要较大电流的负载。

使用特权

评论回复
5
macpherson| | 2024-12-6 21:32 | 只看该作者
对于需要隔离和/或驱动较大电流的负载,可以使用继电器。

使用特权

评论回复
6
wwppd| | 2024-12-6 22:07 | 只看该作者
为了防止外部过高或过低的输入电压烧坏单片机,GPIO引脚通常内置保护二极管

使用特权

评论回复
7
fengm| | 2024-12-6 22:20 | 只看该作者
三极管具有电流放大作用,可以通过小电流控制大电流。例如,当单片机GPIO引脚输出高电平时,基极导通,从而在集电极产生更大的电流,驱动负载如继电器、电机等。

使用特权

评论回复
8
benjaminka| | 2024-12-6 23:32 | 只看该作者
单片机的工作电压通常较低,如3.3V或5V,而外部设备可能需要更高的电压。外部驱动电路需要能够提供足够的电压来驱动这些设备。

使用特权

评论回复
9
juliestephen| | 2024-12-7 00:52 | 只看该作者
在设计外部驱动电路时,需要根据负载的特性和单片机的驱动能力来选择合适的电阻值。电阻过大可能导致负载无法正常工作,电阻过小则可能烧坏单片机或负载。

使用特权

评论回复
10
pl202| | 2024-12-7 02:54 | 只看该作者
当需要隔离单片机与外部电路时,可以使用光耦来驱动外部负载。

使用特权

评论回复
11
pmp| | 2024-12-7 03:06 | 只看该作者
MOS管也是一种常用的开关元件,具有低导通电阻和高开关速度。

使用特权

评论回复
12
febgxu| | 2024-12-7 03:21 | 只看该作者
在设计外部驱动电路时,需要考虑电路的功耗。如果功耗过大,可能会导致单片机发热严重,甚至损坏。因此,需要选择合适的器件和电路结构来降低功耗。

使用特权

评论回复
13
louliana| | 2024-12-7 03:58 | 只看该作者
单片机的GPIO(通用输入输出)引脚通常具有有限的电流驱动能力,因此,当需要控制或驱动较大电流负载时,需要设计外部驱动电路

使用特权

评论回复
14
mnynt121| | 2024-12-7 04:13 | 只看该作者
如果外部设备对信号的响应速度有要求,如高速通信接口或高频信号检测设备,那么在设计驱动电路时要考虑电路的带宽和信号传输延迟。例如,在高速 SPI 通信中,需要选择高速的电平转换芯片来减少信号延迟。

使用特权

评论回复
15
plsbackup| | 2024-12-7 04:26 | 只看该作者
在GPIO线路中加入TVS二极管(瞬态抑制二极管),以吸收瞬态高压脉冲,保护MCU不受损害。

使用特权

评论回复
16
mattlincoln| | 2024-12-7 04:38 | 只看该作者
GPIO作为输入使用时,通过添加上拉或下拉电阻可以防止浮空引脚产生不确定的状态。

使用特权

评论回复
17
bestwell| | 2024-12-7 06:50 | 只看该作者
使用NPN晶体管或者MOSFET作为开关,由GPIO控制其基极或栅极,从而间接控制较大的负载电流。例如,使用NPN晶体管时,GPIO可以通过一个小电阻连接到晶体管的基极,晶体管的集电极连接到负载的一端,发射极接地;负载的另一端接到电源。

使用特权

评论回复
18
mollylawrence| | 2024-12-7 07:03 | 只看该作者
为了防止外部设备的干扰信号影响单片机的正常运行,或者在高电压、强电等危险环境下保证单片机的安全,需要隔离电路。

使用特权

评论回复
19
rosemoore| | 2024-12-9 10:11 | 只看该作者
为了减少外部电磁干扰对电路的影响,在驱动电路设计中可以采用滤波、屏蔽等措施。例如,在靠近 GPIO 引脚处添加去耦电容,能够有效滤除高频干扰信号。

使用特权

评论回复
20
modesty3jonah| | 2024-12-9 16:26 | 只看该作者
对于高电流或高电压的应用,可以使用专门的驱动芯片,如H桥驱动器、电机驱动器等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

1459

帖子

0

粉丝