开启辅助访问 切换到窄版

打印 上一主题 下一主题

从推挽看STM32的I/O接口配置形式

[复制链接]
作者:langhunbei 
版块:
MCU单片机技术 stm 发布时间:2020-1-18 18:47:45
14320
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式

STM32的I/O接口有8种配置方式——
1.GPIO_Mode_AIN 模拟输入
2.GPIO_Mode_IN_FLOATING 浮空输入
3.GPIO_Mode_IPD 下拉输入
4.GPIO_Mode_IPU 上拉输入
5.GPIO_Mode_Out_OD 开漏输出
6.GPIO_Mode_Out_PP 推挽输出
7.GPIO_Mode_AF_OD 复用开漏输出
8.GPIO_Mode_AF_PP 复用推挽输出
其中复用和推挽重复出现,今天小编就与各位看官谈谈什么是推挽输入/输出。
不仅仅stm32有这种配置,实际上,这种方式已经广泛应用在很多场合(如功放电路中的推挽输入/输出)。
推挽,又叫做推拉、互补,是个很形象的名字,一般是指两个三极管(MOS管)分别受两互补信号(或者一个信号,但是用互补对管)的控制,总是在一个三极管导通的时候另一个截止,这样的电路被称为推挽式(互补式)电路。

图为推挽式电路
这种电路在放大中通常被用作输出级,在STM32中,推挽配置就以下图中的形式存在。

图为STM32中推挽输出的形式
在相应位置1时,PMOS导通,NMOS截止,输出电压为VDD;在相应位置0时,NMOS导通,PMOS截止,输出电压为VSS,这就是所谓的推挽。是比较简单的。
而所谓的开漏(对三极管而言是开集,一样的原理),则要巧妙一些。所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。
对于STM32,开漏就是失能的P-MOS,这样,当相应位置1时,引脚实际上是处在了浮空的状态,而通过外接的上拉电阻,将其拉高。这么做有如下好处:
1、可以将多个开漏输出的引脚,连接到一条线上。形成“与逻辑”关系。当多个引脚任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。
2、 可以利用改变上拉电源的电压,改变传输电平。这样我们就可以用低电平逻辑控制输出高电平逻辑了。如果按通常的想法,使用者认为STM32输出3.3V电压,无法驱动IRF540这样的MOS管,甚至要重新选型,就大错特错了。只要将推挽输出变为开漏,再加上上拉到5V的电阻,就能解决这个问题。
最后补充一点,上拉电阻的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。
小编说得再好,也没有杜洋老师对STM32的理解深刻。当你徘徊在嵌入式开发的大门外时,杜洋老师将为你指点迷津。由他主讲的基于STM32的嵌入式开发系统培训即将隆重启幕,扫描下面的二维码填写调查问卷,还有机会获得我们送出的精美书籍,快来行动吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表