[技术讨论]STM32 IO口输出之推挽输出和开漏输出对比

先上一个总览图

众所周知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总线等。
---------------------
作者:王小琪
链接:https://bbs.21ic.com/icview-3277852-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

 


 

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值