发新帖本帖赏金 20.00元(功能说明)我要提问
返回列表
打印
[技术讨论]

STM32 IO口输出之推挽输出和开漏输出对比

[复制链接]
1258|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
先上一个总览图

众所周知STM32的IO口可配置成输出和输出,其中输入有四种模式,输出也有四种模式,分别如下:
输入:
GPIO_Mode_AIN-----------------模拟输入
GPIO_Mode_IN_FLOATING---------浮空输入
GPIO_Mode_IPD-----------------下拉输入
GPIO_Mode_IPU-----------------上拉输入

输出:
GPIO_Mode_Out_OD---------开漏输出
GPIO_Mode_Out_PP---------推挽输出
GPIO_Mode_AF_OD----------复用开漏输出
GPIO_Mode_AF_PP----------复用推挽输出


下面我就输出中常用的推挽输出开漏输出做下简单介绍,很多新手朋友对这两种模式也是一知半解
一、推挽输出模式
所谓的推挽输出模式,是根据这两个MOS管的工作方式来命名的。
在该结构中输入高电平时,经过反向后,上方的P-MOS导通,下方的N-MOS关闭,对外输出高电平。
如果想要点亮一个LED,硬件连接如下:

而在该结构中输入低电平时,经过反向后,上方的P-MOS关闭,下方的N-MOS管导通,对外输出低电平
如果想要点亮一个LED,硬件连接如下:

当引脚高低电平切换时,两个管子轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。
推挽输出的低电平为0伏,高电平为3.3伏。即推挽输出的高电平和内部VDD一致。
注意短路风险:如下图IO_1和IO_2短接了,由于IO_1输出低电平,IO_2输出高电平,相当于VDD和VSS直接短接了,就会短路,这是推挽输出的一个风险,所以需要后面的开漏输出来解决这个问题。





二、开漏输出模式
开漏输出模式时,上方的P-MOS管完全不工作
若控制输入为0,则P-MOS管关闭,N-MOS管导通,使输出接地。

若控制输入为1 ,则P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。此时想要输出高电平必须外部接上拉电阻。

它具有“线与”特性,也就是说,若有很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平,0伏。
如下图,IO_1、IO_2、IO_3连接在了一起,由于IO_1和IO_3被拉低了,所以即使IO_2内部的NMOS没导通,IO_2也会被拉低。这样解决了推挽输出的短路风险
在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。
开漏输出一般应用在I2C、SMBUS通讯等需要“线与”功能的总线电路中。
总结:
哪些地方用开漏输出:常用的驱动LED、蜂鸣器等
哪些地方用开漏输出:常用的需要上拉的应用如IIC、SPI总线等



























使用特权

评论回复

打赏榜单

21ic小管家 打赏了 20.00 元 2023-02-08
理由:签约作者奖励

相关帖子

沙发
奶酪同学| | 2023-4-18 20:07 | 只看该作者

使用特权

评论回复
发新帖 本帖赏金 20.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

227

主题

578

帖子

6

粉丝