GPIO模式详解:推挽/开漏/浮空/上拉/下拉/施密特(迟滞)输入

GPIO(General Purpose Input Output)可用于执行数字输入或输出功能。典型的应用包括从/向模拟或数字传感器/设备读写数值、驱动LED、为I2C通信驱动时钟、生成外部组件的触发、发出中断等。

文章目录

  • 1 GPIO简介
  • 2 输出模式
    • 2.1 推挽输出
    • 2.2 开漏输出
  • 3 输入模式
    • 3.1 高阻态(浮空)、上拉、下拉
    • 3.2 施密特触发输入

1 GPIO简介

一个GPIO引脚主要有两个缓冲区,即输入和输出。

在这里插入图片描述

输入和输出由使能引脚ENABLE控制:

在这里插入图片描述

每个输入/输出缓冲区都有一个PMOS和NMOS晶体管以及一个非门。这两个晶体管的栅极和漏极连接在一起,如下图所示:

在这里插入图片描述

2 输出模式

如果将逻辑高电平输出到引脚,则PMOS打开,NMOS关闭,从而将VCC连接到输出引脚。这个阶段被称为推相位,因为它类似于推动电流。如果输出逻辑低电平到引脚,则NMOS打开,PMOS关闭,从而将输出引脚连接到地,由于它看起来像是在拉电流,因此被称为拉相位

在这里插入图片描述

2.1 推挽输出

推挽模式是GPIO输出模式的默认状态。引脚可以使用PMOS晶体管或NMOS晶体管将信号“推”高或者“拉”低。

在这里插入图片描述

流入缓冲区地端的电流被称为灌电流(Current Sinking),相反地,从缓冲区产生的电流被称为拉电流(Current Sourcing)。拉电流始终通过PNP或PMOS晶体管完成,而灌电流通过NPN或NMOS晶体管完成。

由于PMOS(PNP)晶体管通常具有较高的电流驱动能力,即拉电流时所需的电流较大。因此一个GPIO引脚就可以驱动多个GPIO引脚。

在这里插入图片描述

2.2 开漏输出

在这种配置中,没有PMOS晶体管,而NMOS晶体管的漏极保持在浮空状态。因此这种配置被称为开漏。

在这里插入图片描述

当输出逻辑低电平时,NMOS将打开并接地。输出高电平时,NMOS不会打开,引脚处于浮动状态。

在这里插入图片描述

换句话说,这种模式仅支持灌电流。为了避免这种浮动状态,我们可以在NMOS的漏极接一个上拉电阻。

在这里插入图片描述

何时使用推挽和开漏?

  • 推挽用于不需要在同一组引脚上同时传输和接收数据的协议,如UART、SPI
  • 开漏可用于执行双向通信的引脚,如I2C协议

3 输入模式

如果引脚处于逻辑高电平输入状态,那么PMOS晶体管将打开,NMOS晶体管关闭,从而将Vcc连接到GPIO。 反之GPIO连接到地。

在这里插入图片描述

3.1 高阻态(浮空)、上拉、下拉

高阻态就是引脚既没有上拉也没有下拉,而是保持漂浮状态。在没有外部驱动的情况下,该状态是不确定的。

默认情况下,在上电后GPIO引脚处于高阻态输入模式。浮动引脚极易受到噪声干扰,可能会导致两个晶体管导通并提供直接路径从VCC到GND的漏电流。我们绝对不应将引脚保持在浮动状态,因为漏电流将导致高功耗,在最坏的情况下还可能导致芯片复位。 为了避免这种情况,可以配置上拉电阻或下拉电阻。

在这里插入图片描述

在GPIO配置为上拉时,下面的开关打开,则PMOS导通;下面的开关闭合,则NMOS导通。

在这里插入图片描述

反之,GPIO配置为下拉时,上面的开关闭合,则PMOS导通;上面的开关打开,则NMOS导通。

在这里插入图片描述

3.2 施密特触发输入

这种输入类型与我们之前讨论的常规输入缓冲区不同,它连接到一个施密特触发器。在输入信号接近阈值时,由于噪声或其他不稳定性因素,输入信号可能会在上升和下降阈值之间摆动。这可能导致触发器在阈值之间多次切换,产生不确定的输出状态。所以为了确保可靠性,需要添加上拉或下拉电阻来明确信号的状态

在这里插入图片描述

什么是施密特触发器?

施密特触发器是一种电压比较器,只有在输入电压超过上阈值时才会启动,一旦启动,它只有在输入电压低于下阈值时才会关闭。施密特触发器表现出的这种特性被称为滞回(hysteresis)。

下面为普通输入缓冲区和带有施密特触发器的输入缓冲区在处理嘈杂信号时的输出比较:

在这里插入图片描述

可以看出,普通输入缓冲区的输出随噪声而波动。而施密特触发器抑制了很多噪声并提供了稳定的输出。因此,在嘈杂的环境中,使用施密特触发器输入是很有用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/208849.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm的程序调试

有如下代码需要进行调试&#xff1a; i 1 while i < 10:print(i)步骤一&#xff1a;设置断点 步骤二&#xff1a;进入调试视图 方式1&#xff1a;右键单击编辑区&#xff1a;点击’Debug模块名’ ​ 方式2&#xff1a;ShiftF9 ​ 方式3&#xff1a;单机工具栏上的调试按钮…

某60区块链安全之Call函数簇滥用实战二学习记录

区块链安全 文章目录 区块链安全Call函数簇滥用实战二实验目的实验环境实验原理实验内容实验步骤EXP利用 Call函数簇滥用实战二 实验目的 学会使用python3的web3模块 学会并区分以太坊call、staticcall、delegatecall三种函数调用的特点 找到合约漏洞进行分析并形成利用 实验…

《数学之美》第三版的读书笔记一、主要是马尔可夫假设、隐马尔可夫模型、图论深度/广度、PageRank相关算法、TF-IDF词频算法

1、马尔可夫假设 从19世纪到20世纪初,俄国有个数学家叫马尔可夫他提出了一种方法,假设任意一个词出现的概率只同它前面的词有关。这种假设在数学上称为马尔可夫假设。 2、二元组的相对频度 利用条件概率的公式,某个句子出现的概率等于每一个词出现的条件概率相乘,于是可展…

2023亚太杯数学建模竞赛(亚太赛)选题建议+初步分析

如下为C君的2023亚太杯数学建模竞赛&#xff08;亚太赛&#xff09;选题建议初步分析&#xff1a; 提示&#xff1a;DS C君认为的难度&#xff1a;C<A<B&#xff0c;开放度&#xff1a;A<B<C。 以下为ABC题选题建议及初步分析&#xff1a; A题&#xff1a;Image…

jQuery【菜单功能、淡入淡出轮播图(上)、淡入淡出轮播图(下)、折叠面板】(五)-全面详解(学习总结---从入门到深化)

目录 菜单功能 淡入淡出轮播图(上) 淡入淡出轮播图(下) 折叠面板 菜单功能 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><…

K8s实战RestartPoliy策略

一、默认策略为Always cmd.yaml apiVersion: v1 kind: Pod metadata:name: myapp-pod labels:app: myapp spec: containers:- name: myapp-container image: busyboxcommand: [sh, -c, echo OK!&& sleep 60]首先我们根据这个yaml创建一个测试的pod 执行命令 kubec…

visionOS空间计算实战开发教程Day 5 纹理和材质

在​​Day 4​​​中我们使用了​​ImmersiveSpace​​并在其中添加了一个立方体&#xff0c;但对这个立方体我们只配置了长宽高&#xff0c;并没有做进一步的操作。 本文中我们会通过纹理和材质对这个立方体的六个面分别进行不同的绘制。首先我们将​​ImmersiveView​​分拆…

宽压12-90V转5V3A降压IC,AH8691芯片

## 宽压12-90V转5V3A降压IC&#xff0c;多重保护功能全面升级 1. **宽压输入范围**&#xff1a;8V-100V&#xff0c;支持输出电压低至3.3V 2. **高效转换**&#xff1a;5A典型峰值开关电流&#xff0c;高达95%的转换效率 3. **多重保护**&#xff1a;包括过流、过热、输出短路…

联想拯救者Lenovo Legion R9000K 2021H(82N6)原装出厂Windows10/Win11系统ISO镜像

链接&#xff1a;https://pan.baidu.com/s/13NkeCXNdV0Ib5eeRnZUeAQ?pwdnlr7 提取码&#xff1a;nlr7 拯救者笔记本电脑原厂WIN系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文…

如何准备软考-软件设计师(下)

前言&#xff1a; 下午的题目一般有6道题目&#xff0c;前4题是必答题&#xff0c;第5题和第6题二选一。每题15分&#xff0c;一共75分&#xff0c;45分即可通过。 接下来&#xff0c;我们以2022下半年软件设计师案例来当作教材来讲&#xff0c;下午的每种类型的题目该如何去…

80基于matlab的小波包熵与模糊C均值聚类的故障诊断,以凯斯西储大学轴承数据为例进行分析

基于matlab的小波包熵与模糊C均值聚类的故障诊断&#xff0c;以凯斯西储大学轴承数据为例进行分析。对数据进行小波包分解后重构&#xff0c;然后提取各频带能量分布&#xff0c;后计算小波包熵进行故障诊断。输出特征可视化结果。数据可更换自己的&#xff0c;程序已调通&…

Android设计模式--模板方法模式

一&#xff0c;定义 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在面向对象的开发过程中&#xff0c;通常会遇到这样一个问题&#xff0c;我们知道一个算法所需的关键步…