打印
[其他ST产品]

lj245a引脚功能图_stm32H7系列GPIO引脚模式如何选择及开漏

[复制链接]
1607|59
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
略略u|  楼主 | 2023-7-26 13:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
什么是推挽模式

推挽输出模式:它可以输出高,低电平,通常是用来连接数字器件,例如继电器(继电器通常只需要高低电平即可控制),数字逻辑器件(如与非门控制芯片,移位控制芯片)等。

因为推挽模式是由2个MOS组成的,见下图。


推挽模式是由2个MOS组成的

GPIO输出 0 时,内部N-MOS (上方的)导通,内部P-MOS(下方的) 高阻,输出端为0。

GPIO输出 1 时,内部N-MOS 高阻,内部P-MOS 导通,输出端为1(不需要外部上拉电路)。

使用特权

评论回复
评论
略略u 2023-7-26 13:27 回复TA
———————————————— 版权声明:本文为CSDN博主「IOPin2022」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42402241/article/details/112439349 
沙发
略略u|  楼主 | 2023-7-26 13:27 | 只看该作者
下面两个图片是推挽输出的内部电流走向。当输入电压为V+时,输入端也就是gpio口,上面的N型N-MOS控制端有电流输入,上方的N-MOS导通,于是电流从上往下通过,提供电流给负载。



当输入电压为V+时,输入端也就是gpio口

使用特权

评论回复
板凳
略略u|  楼主 | 2023-7-26 13:28 | 只看该作者
当输入电压为V-时,上面的N型N-MOS控制端有电流输入,上方的N-MOS截止,下方的Q4导通,且电流是从负载端流向输入端的v-和Q4下方的v-。输入端也就是gpio口。



当输入电压为V-时,上面的N型N-MOS控制

使用特权

评论回复
地板
略略u|  楼主 | 2023-7-26 13:29 | 只看该作者
可能朋友们看到了,我这个图中是用的三极管,这是因为我发现stm32的手册上是用的MOS管。



st手册的 I/O 端口位的基本结构

而有的资料又显示说是三极管。所以我这边就用了三极管来进行说明。

使用特权

评论回复
5
略略u|  楼主 | 2023-7-26 13:29 | 只看该作者
什么是开漏输出

开漏模式一般用来控制电流型设备,如led灯,因为led是随着电流的变化而亮度发生变化的。另外还可以通过调整外部上拉电阻的供电电压来匹配电平。例如有个设备是15v控制,而我们的stm32h7只有3.3v,这可怎么办呢。别急用开漏模式加外部上拉电阻到15v的电源吧。

开漏输出电路

从上图可以看到这个电路的输出端没有任何电源供给,所以也就没有了驱动能力。

使用特权

评论回复
6
略略u|  楼主 | 2023-7-26 13:29 | 只看该作者
因为常说的开漏输出没有驱动输出电流能力就是这样子了。那如何可以驱动其他器件呢,最好的方法就是外部加入上拉电阻,然后接电压。这点我觉得在stm32h7的内部存在上拉和下拉电阻,因此不必我们额外再增加上拉电阻了。见下图是:

在stm32h7的内部存在上拉和下拉电阻

使用特权

评论回复
7
略略u|  楼主 | 2023-7-26 13:29 | 只看该作者
开漏和推挽模式的区别

1.开漏输出的另一个好处在于可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接并联在一起,只有当并联的所有信号都为高电平时,并在一起的总线输出端才为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件这点要注意。

使用特权

评论回复
8
略略u|  楼主 | 2023-7-26 13:30 | 只看该作者
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中负责正负半周的波形放大任务,电路工作时两只对称的功率开关管每次只有一个导通,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

使用特权

评论回复
9
略略u|  楼主 | 2023-7-26 13:30 | 只看该作者
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中负责正负半周的波形放大任务,电路工作时两只对称的功率开关管每次只有一个导通,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

使用特权

评论回复
10
略略u|  楼主 | 2023-7-26 13:30 | 只看该作者
最后总结STM32中选用IO模式的一些场合

1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1

使用特权

评论回复
11
略略u|  楼主 | 2023-7-26 13:30 | 只看该作者
2、带上拉输入GPIO_IPU——IO内部上拉电阻输入

使用特权

评论回复
12
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入

使用特权

评论回复
13
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电

使用特权

评论回复
14
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能

使用特权

评论回复
15
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是不确定的,未知。

使用特权

评论回复
16
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)

使用特权

评论回复
17
略略u|  楼主 | 2023-7-26 13:31 | 只看该作者
8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX通讯发送端,MOSI,MISO.SCK.SS)

使用特权

评论回复
18
略略u|  楼主 | 2023-7-26 13:32 | 只看该作者
9、这里要注意的是模拟I2C的使用。它使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);

使用特权

评论回复
19
略略u|  楼主 | 2023-7-26 13:32 | 只看该作者
10、如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;

使用特权

评论回复
20
略略u|  楼主 | 2023-7-26 13:32 | 只看该作者
11、作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。

使用特权

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

本版积分规则

78

主题

603

帖子

0

粉丝