上拉/下拉电阻 和 开漏/推挽输出 之间的关系

上拉/下拉电阻 和 开漏/推挽输出 之间的关系

文章目录


很常见的一个GPIO口配置

c 复制代码
    GPIO_InitTypeDef gpio_init_struct;						/* 初始化结构体 */
    __HAL_RCC_GPIOB_CLK_ENABLE();                           /* GPIOB时钟使能 */

    gpio_init_struct.Pin = GPIO_PIN_5;                   	/* PB5引脚 */
    gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */
    gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */
    gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;          /* 高速 */
    HAL_GPIO_Init(GPIOB, &gpio_init_struct);       			/* 初始化LED0引脚 */

    gpio_init_struct.Pin = GPIO_PIN_6;           			/* PB6引脚 */
    HAL_GPIO_Init(GPIOB, &gpio_init_struct);       			/* 初始化LED1引脚 */
GPIO八种模式 特点及应用
输入浮空 输入用,完全浮空,状态不定
输入上拉 输入用,用内部上拉,默认是高电平
输入下拉 输入用,用内部下拉,默认是低电平
模拟功能 ADC、DAC
开漏输出 软件IIC的SDA、SCL等
推挽输出 驱动能力强,25mA(max),通用输出
开漏式复用功能 片上外设功能(硬件IIC的SDA、SCL引脚等)
推挽式复用功能 片上外设功能(SPI的SCK、MISO、MOSI引脚等)

上拉电阻 & 下拉电阻

STM32 F1的IO结构图

STM32 F4/F7/H7的IO结构图


上拉电阻

上拉电阻作用:解决浮空状态的不确定性,将输出压钳位高电平


上拉电阻原理

芯片内部可以简略等效成mos管(Q1)表示输出

Q1 输出
打开 低电平
关闭 浮空/高阻态

也就是当mos管(Q1)关闭时,输出是不知道,相当于什么都没接(浮空/高阻态)
这就相当于是一个未知不可控的因素,这是让人不能接受。

所以我们需要接上拉电阻

Q1 输出
打开 低电平
关闭 高电平

如此当mos管(Q1)关闭时,输出就被钳位在高电平

也可以这么理解

并联电阻使得上半部分阻值减少

而下半部分阻值无穷大

故而5V电压全加在下半部分

由此将输出电压拉高


上拉电阻如何取值?

最靠谱的做法就是,用示波器来看,找打合适的阻值

应用 取值
只用作控制开关 取10K-100K
驱动PWM / IIC等通讯 R1取1K-10K
阻值 优点 缺点
上拉电阻小 驱动能力强 漏电流大
上拉电阻大 漏电流小 驱动能力弱

PS:漏电流 & 驱动能力

漏电流

MOS管打开时,就会产生如图的漏电流
这部分电流不仅会浪费掉,还会产生热量
电阻越小漏电流越大,发热越厉害


驱动能力

两个器件之间电平传输,一般会有寄生电容
当电平跳变的时候,例如低电平跳变成高电平

你以为的电平跳变

实际上的电平跳变

这就是寄生电容充电的过程,上拉电阻越大,充电越慢,驱动能力越弱


下拉电阻

下拉电阻作用:同样是解决浮空状态的不确定性,将输入电压钳位低电平


我们先将芯片内部等效成一个mos管(实际上应该是一个触发器)

虽然接的是5V电源,但由于N半导体和P半导体组成的PN结阻值太大,跟断开没什么区别

由于存在扩散电流,漂移电流,信号干扰等诸多因素

导致P半导体的电压漂浮不定,也就是输入电压不确定

对于一个精益求精的工程师来说,这怎么能忍,必须要排除一切不确定因素

当外接一个与地相连的电阻(下拉电阻),此时输入电压就是低电平了

那为什么不直接接地?

如果直接接地,也是将输入电压钳位在低电平

但是这样的话,就无法输入高电平了!!

默认情况,输入低电平

当有高电平连接时,输入高电平


开漏输出 & 推挽输出


一个GPIO口有可能的几种输出

状态 Q1 Q2 输出
状态1 打开 关闭 高电平
状态2 关闭 打开 低电平
状态3 关闭 关闭 浮空/高阻态
状态4 打开 打开 (短路烧毁)

推挽输出

将 状态1 和 状态2 拿出来研究


什么是 " 推挽 "?

当Q1打开,Q2关闭时,输出高电平,如下图这个过程叫做推

当Q1关闭,Q2打开时,输出地电平,如下图这个过程叫做挽


开漏输出


什么是 " 开漏 "

将 状态2 和 状态3 拿出来看,可以发现,Q1都是关闭的,就可以等效成下图

只剩下Q2,而且Q2的漏极什么都没接,处于开路状态,这就是你为什么叫 " 开漏输出 "


什么情况下使用开漏模式?

GPIO需要给一个外部芯片输出一个高信号时

当GPIO输出的是5V,而外部芯片的使能电压是3.3V时

如果使用开漏输出,外部芯片就有可能会倍烧毁

此时就应该使用开漏输出

并且要接一个上拉电阻

这样高电平电压就由上拉电阻的电压决定了

Q2关闭时,输出高电平

Q2打开时,输出低电平

所以现在知道,为什么配置IO的时候,开漏输出要加上拉电阻的吧!!!


开漏输出的应用

多个IO口控制一个输出

Q2和Q4任意一个打开,都输出低电平

只有Q2和Q4都关闭,才输出高电平

Q2 Q4 输出
打开 关闭 低电平
关闭 打开 低电平
打开 打开 低电平
关闭 关闭 高电平

(1)、

(2)、

(3)、

(4)、


┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈┈

┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈

┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈

▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈┈

▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈

▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈

▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈┈

如果对你有帮助,就点赞收藏把!(。・ω・。)ノ♡

相关推荐
成都蜀味缘餐饮技术培训学校4 分钟前
手撕烤兔技术培训实战指南,秘制腌料配方比例与调制手法
大数据·经验分享·笔记·其他·微信公众平台
roman_日积跬步-终至千里21 分钟前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
希和20271 小时前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频
蒸蒸yyyyzwd2 小时前
秋招学习笔记 day109
笔记·八股
只愿云淡风清5 小时前
正则表达式学习笔记 02:基础语法
笔记·学习·正则表达式
Zw-awa13 小时前
协议是人为约定:同一个字节能有三种意思
stm32
希和202715 小时前
考研英语阅读词汇笔记|城市野径、抄近道步道(非正式小路)
笔记·考研
一个人旅程~18 小时前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决
经验分享·笔记·macos·新浪微博
心祭丫丫19 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
派大猩猩_21 小时前
Obsidian 笔记怎么同步多端:Nutstore Sync 大笔记库同步测评
笔记·obsidian·obsidian插件·obsidian同步