GPIO输入输出各种模式(推挽、开漏、准双向端口)详解

article/2025/9/22 12:28:33

技术交流是便宜的博客地址:http://blog.csdn.net/techexchangeischeap

概述

能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多,最近在百度上搜索了大量关于这部分的资料,对于其中很多问题的说法并不统一。本文尽可能的将IO涉及到的所有问题罗列出来,对于有明确答案的问题解释清楚,对于还存在疑问的地方也将问题提出,供大家讨论。

概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。

下面就按照这样的顺序依次介绍各个模式的详细情况。

输入IO

这里所说的输入IO,指的是只作为输入,不具有输出功能。此时对于input引脚的要求就是高阻(高阻与三态是同一个概念)。基本输入电路的类型大致可以分为3类:基本输入IO电路、施密特触发输入电路以及弱上拉输入电路。

先从最基本的基本输入IO电路说起,其电路如图 1所示。

图 1

其中的缓冲器U1是具有控制输入端,且具有高阻抗特性的三态缓冲器。通俗地说就是这个缓冲器对外来说是高阻的,相当于在控制输入端不使能的情况下,物理引脚与内部总线之间是完全隔离的,完全不会影响内部电路。而控制输入端的作用就是可以发出读Pin状态的操作指令。其过程如图 2所示。

图 2

这种基本电路的一个缺点是在读取外部信号的跳变沿时会出现抖动,如下图所示。

图 3

于是施密特触发输入电路就是解决了上述这种抖动的问题,其经过施密特触发器后的信号如图 4所示。

图 4

对于输入电路还存在另外一个问题,就是当输入引脚悬空的时候,输入端检测到的电平是高还是低?当输入信号没有被驱动,即悬空(Floating)时,输入引脚上任何的噪声都会改变输入端检测到的电平,如图 5所示。

图 5

为了解决这个问题,可以在输入引脚处加一个弱上拉电阻,如图 6所示。

图 6

这样,当输入引脚悬空时,会被RP上拉到高电平,在内部总线上就有确定的状态了。

但是这种结构是有一定问题的。首先很明显的一点是,当输入引脚悬空时读到的是1,当输入引脚被高电平驱动时读到的也是1,只有当输入引脚被低电平驱动时读到的才是0。也就是对于读1采取的方式是"读取非零"的方式。

另一个问题是该电路对外呈现的不是高阻,某种意义上说也在向外输出,当外部驱动电路不同时可能出现错误的检测结果。例如外部驱动电路是如图 7所示的结构,该电路结构中通过K打到不同端可以输出高电平或者低电平。

图 7

如果将如图 7所示的电路输出低电平,连接到带有弱上拉电阻的输入引脚,其结构如下所示。


http://chatgpt.dhexx.cn/article/WBRCD1nv.shtml

相关文章

卡尔曼滤波器(哔哩哔哩徐亦达)

1、尖帽子,表示是估计量而不是真实量。 2、从下面公式可以大概得出高斯噪声的方差和d级别差不多。 TDOA文献中的公式 3、卡尔曼滤波器主要记住五个公式: 4、卡尔曼滤波器的应用:包括机器人导航,控制,传感器数据融合甚至在军事方…

李航/徐亦达 统计学习方法第九章EM算法及其推广总结和习题答案

强烈推荐徐亦达老师关于EM算法的讲解视频,本文根据徐老师和李航老师统计学习方法整理,由于公式推导太多,笔记为手写。其中包含混合高斯模型的理解,形象化解释,以及习题链接。 习题 习题9.1和9.3 习题9.4

徐亦达老师-机器学习教学视频共76集(下载自优酷)

链接:http://pan.baidu.com/s/1bpNzqSB 密码:naqe 徐老师主页:http://www-staff.it.uts.edu.au/~ydxu/ 转载于:https://www.cnblogs.com/zhangliustc/p/5998836.html

刷新校史!985副研究员,以独立作者身份,研究成果被数学顶级期刊录用!

来源:华中科技大学&青塔等,信息仅作分享之用 据华中科技大学数学中心10月8日消息,郇真副研究员的文章“Representations of Lie 2-groups and 2-Vector Bundles”被顶刊Acta Mathematica接收。 据悉,郇真副研究员是新中国成立…

机器学习笔记之狄利克雷过程(二)基于标量参数作用的推导过程

机器学习笔记之狄利克雷过程——基于标量参数作用的推导过程 引言回顾:狄利克雷过程——基本介绍狄利克雷过程——定义小插曲:狄利克雷分布的简单性质 关于标量参数作用的推导过程 引言 上一节以高斯混合模型为引,简单介绍了狄利克雷过程( D…

首发:徐亦达团队新论文推荐(ECCV2020):端到端多人多视角3d动态匹配网络

徐亦达团队在ECCV2020上发表了一篇机器学习论文 End-to-end Dynamic Matching Network for Multi-view Multi-person 3d Pose Estimation(端到端多人多视角3d动态匹配网络) 论文第一作者:黄聪臻韬,本科就读于中国科学技术大学-计算…

独作论文登数学顶刊,浙大女神校友再被提起:32岁在贵州深山投稿,一家出两位院士...

明敏 詹士 发自 凹非寺量子位 | 公众号 QbitAI 最近,华科副研究员以独作身份投中数学顶刊的消息,震惊国内数学圈。 毕竟Acta Mathematica号称是世界上最难投中的数学期刊之一,能拿下此成就的动辄都是院士级人物…… 不过,纵览中国…

【华人学者风采】陈积明 浙江大学

【华人学者风采】陈积明,浙江大学控制科学与工程学院教授,博士生导师。研究领域包括网络优化与控制,数据智能与工业互联网,控制系统安全等。2000和2005年在浙江大学分别获学士和博士学位。2008-2010在加拿大滑铁卢大学访问。历任浙…

学习笔记:徐亦达机器学习:Kalman Filter 卡尔曼滤波——后续推导及代码分析

在开始这个博客之前,首先要感谢一下徐老师。该博客是在观看视频https://www.bilibili.com/video/av24225243/?p1之后,自己的读书笔记。 言归正传,该博文里面的所有符号体系都是徐老师所用的符号,在此记录一下徐老师最后留下的作…

徐亦达 概率模型学习 : hmm

引出: 条件概率 理解为 一对应无限 的函数 上的一个自变量点的情况 p ( x ∣ y ) p(x|y) p(x∣y)是有多种解释的 或者 是隐含了具体应用情况的, 以下内容大概在说: 条件概率 p ( x ∣ y ) p(x|y) p(x∣y) 是 一对应无限映射x(y) 的 一种数学定量描述办法…

【算法】狄利克雷过程 (Dirichlet过程)

本小节是层次狄利克雷过程的笔记。 狄利克雷混合模型DPMM是一种可以自动确定聚类类别数量的聚类方法。 狄利克雷过程DP是“分布的分布”,由2个参数和确定,即。其中是分布参数,值越大,分布越接近于均匀分布,值越小&am…

吴恩达机器学习讲义_悉尼科大徐亦达教授:1000+页机器学习讲义,32 份主题推介...

新智元推荐 来源:专知(ID:Quan_Zhuanzhi) 【新智元导读】悉尼科大徐亦达教授机器学习讲义,总共涵盖 32 个主题,1000页讲义,包括Softmax算法、传统GAN,W-GAN数学,贝叶斯GAN, 蒙托卡罗树搜索,alphaGo学习算…

首发:徐亦达老师的机器学习课件及下载(中文目录)

徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。 徐亦达老师简介 徐亦达,现任悉尼科技大学教授,UTS全球数据技术中心机器学习和数据分析实验室主任。主要…

【资源】首发:徐亦达老师的机器学习课件及下载(中文目录)

徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。 徐亦达老师简介 徐亦达,现任悉尼科技大学教授,UTS全球数据技术中心机器学习和数据分析实验室主任。主要…

徐亦达 概率模型学习 : gmm

单高斯分布 MLE posterior 正比例于 likelihood * prior p ( θ ∣ x ) ∝ p ( x ∣ θ ) ∗ p ( θ ) p(\theta | x) \propto p(x|\theta) * p(\theta) p(θ∣x)∝p(x∣θ)∗p(θ) 参数 θ 的后验分布 ∝ 参数 θ 表示的 x 分布上已知样本有多大概率 ∗ 参数 θ 的先验分布…

首发:徐亦达教授团队最新发表的两篇机器学习论文

徐亦达团队在 Asian Conference on Machine Learning 的发表了两篇机器学习论文,本人得到徐老师授权在本站发布论文。 论文 1:Realistic Image Generation using Region-phrase Attention论文 2:Efficient Diversified Mini-Batch Selection …

隐马尔科夫模型(HMM)算法的理解与超详细推导

今天看了徐亦达教授的HMM讲解,感觉有所收获,并将隐马尔科夫模型算法的推导整理了一下,帮助大家一起理解这个算法。首先我们通过一个股票的案例来引入这个算法,我们来看看这个股票行情和涨跌观测值的一个状态图: 由图中…

python高级在线题目训练-第一套

单选 1、运行下列代码后,a的值为( C )。 myList "Hello World" a myList[3:8] A. llo W B. llo Wo C. lo Wo D. o Wor 2、下列代码的运行结果为( C )。 A.26,73,47,90, B.26,73,47,90 C.26,73,47,18, D.26,73,47,18 3、以下哪个选项可以创建一个范围…

DSP 投放的基本流程和算法

DSP 投放的基本流程和算法 DSP 在进行投放的时候通常按照如下流程: 步骤1:识别用户: DSP 系统通常会在广告展示的时候,同时放置一个检测点,这样当互联网用户第一次访问 广告主的网站时,就会种下一个cookie,这样DSP就可…