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.mzph.cn/news/161831.shtml

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

相关文章

推荐一款适合做智慧旅游的前端模板

目录 前言 一、功能介绍 二、前端技术介绍 三、功能及界面设计介绍 1、数据概览 2、车辆监控 3、地图界面 4、其它功能 四、扩展说明 总结 前言 智慧旅游是一种全新的旅游业务模式,它充分利用先进的信息技术,提升旅游体验,优化旅游管…

【Axure高保真原型】树形表格

今天和大家分享树形表格的原型模板,点击树的箭头可以打开或者收起子节点,点击表格内容,可以选中该行内容实现高亮变色效果,树形表格是通过中继器制作的,使用简单,只需要按要求填写中继器表格即可&#xff0…

2023亚太杯数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法?2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法? 粒子群算法(Pa…

安防监控视频融合平台EasyCVR定制化页面开发

安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索…

Django 模型和Admin站点管理(三)

一、定义模型 (1) 创建模型类,必须要继承自 models.Model from django.db import models# Create your models here. #设计数据库 #创建模型 class UserModel(models.Model):namemodels.CharField(max_length30) #对应于SQL name varchar(30…

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…

深度之眼Paper带读笔记GNN.08.GCN(下)

文章目录 前言细节四:卷积核介绍图卷积核初代目图卷积核二代目契比雪夫多项式例子小结 GCN公式推导 实验设置和结果分析数据集节点分类任务消息传递方式比较运行效率 总结关键点创新点启发点 代码复现train.pyutil.pymodel.pylayer.py 作业 前言 本课程来自深度之眼…

基于单片机直流电机调速(proteus仿真+源程序)

一、系统方案 1、本设计采用这51单片机作为主控器。 2、转速值送到液晶1602显示。 3、按键设加减速,开始暂停、正反转。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 en0; rw0; write_com(0x01); //lcd初始化 write_com(0x38)…

CQ 社区版 V2.6.0 发布 | SQL闪回、权限看板、新增数据源人大金仓等

前言 HELLO,大家好,又到了 CloudQuery 社区版发版时间!本次更新版本为 v2.6.0,亮点多多,我们直入主题一起来看! 一、本期亮点 新增 3 种数据源支持 V2.6.0,新增三种国产数据源支持&#xff…

cocos2dx ​​Animate3D (一)

3D相关的动画都是继承Grid3DAction 本质上是用GirdBase进行创建动画的小块。 Shaky3D 晃动特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 晃动的范围 // z轴是否晃动 static Shaky3D* create(float initWithDuration, const Size& …

内存可见性与指令重排序

文章目录 内存可见性内存可见性问题代码演示JMM(Java Memory Model) 指令重排序指令重排序问题代码演示指令重排序分析 volatile关键字volatile 保证内存可见性 & 禁止指令重排序volatile 不保证原子性 在上一节介绍线程安全问题的过程中&#xff0c…

2023亚太杯数学建模B题思路 - 玻璃温室中的微气候法规

# 1 赛题 问题B 玻璃温室中的微气候法规 温室作物的产量受到各种气候因素的影响,包括温度、湿度和风速[1]。其中,适 宜的温度和风速是植物生长[2]的关键。为了调节玻璃温室内的温度、风速等气候因素 , 温室的设计通常采用带有温室风扇的通风系统&#x…

实验4.数据全量、增量、比较更新

【实验目的】 1.利用Kettle的“表输入”,“表输入出”,”JavaScript代码”组件,实现数据全量更新。 2.熟练掌握“JavaScript代码”,“表输入”,“表输入出”组件的使用,实现数据全量更新。 【实验原理】 …

二级指针

*代表指针变量。int*为p的类型。故pp第一个*表示pp为指针int** pp,指向p的二级指针。 p中储存a的地址,pp中储存p的地址。 打印,printf中**pp的表示:pp中储存的是p的地址,第一个*解引用地址p表示p的内容,p的…

回归算法优化过程推导

假设存在一个数据集,包含工资、年龄及贷款额度三个维度的数据。我们需要根据这个数据集进行建模,从而在给定工资和年龄的情况下,实现对贷款额度的预测。其中,工资和年龄是模型构建时的两个特征,额度是模型输出的目标值…

SPASS-ARIMA模型

基本概念 在预测中,对于平稳的时间序列,可用自回归移动平均(AutoRegres- sive Moving Average, ARMA)模型及特殊情况的自回归(AutoRegressive, AR)模型、移动平均(Moving Average, MA)模型等来拟合,预测该时间序列的未来值,但在实际的经济预测中,随机数据序列往往…

macos端文件夹快速访问工具 Default Folder X 最新for mac

Default Folder X 是一款实用的工具,提供了许多增强功能和快捷方式,使用户能够更高效地浏览和管理文件。它的快速导航、增强的文件对话框、自定义设置和快捷键等功能,可以大大提升用户的工作效率和文件管理体验。 快速导航和访问:…

2023亚太杯数学建模B题思路分析 - 玻璃温室中的微气候法规

1 赛题 问题B 玻璃温室中的微气候法规 温室作物的产量受到各种气候因素的影响,包括温度、湿度和风速[1]。其中,适 宜的温度和风速是植物生长[2]的关键。为了调节玻璃温室内的温度、风速等气候因素 , 温室的设计通常采用带有温室风扇的通风系统&#xf…

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

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

【计算机网络笔记】路由算法之层次路由

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…