理解 GPIO 的推挽与开漏

在日常的嵌入式开发过程当中,GPIO可以说是接触最多的外设了。小到点亮一个LED灯,大到模拟总线通讯,都必不可少地需要用到GPIO资源。而对于GPIO的两大输出模式 ——推挽输出开漏输出,你是否真正理解了呢?

首先我们看到STM32F4xx参考手册中的IO端口基本结构:

图片

其包含了输入驱动器和输出驱动器接口,和我们今天的主体相关的是右下角的输出驱动器结构:

图片

可以看到这个输出驱动器可以配置为推挽、开漏或禁止。而实现推挽和开漏的关键部分就是途中的两个MOS管:P-MOS和N-MOS。

推挽输出模式

推挽(Push-Pull)实际上指的是两个不同的电流方向,也有人更形象地称之为推拉模式。推指的是电路将电流“推”入负载,拉指的是电路将电流从负载“拉”回。

在推挽输出模式下,P-MOS和N-MOS都正常工作,当然在电路实际的工作中,每一时刻只会有一个管子导通。

输出高电平时,P-MOS会导通,N-MOS截止,此时输出端体现出来的就是高电平:

图片

同理,在输出低电平时,P-MOS截止,N-MOS导通:

图片

也正是因为同一时间只有一个管导通,因此在推挽输出模式下导通损耗小,效率高。同时从上图中可以看到当输出激活时负载是直接连接到电源和地的,因此能够提供大量电流,提高了电路的负载能力。

但是推挽模式也有一个缺点,如果把两个推挽结构相连,一个输出高电平,另一个输出低电平,反映到电路上则是高电平驱动的上MOS导通,下MOS关闭,低电平驱动的上MOS关闭,下MOS导通,此时电流将从第一个结构的VDD通过上MOS再经过第二个结构的下MOS直接流向GND,整个通路上的电阻非常小,从而引起短路。因此推挽模式下无法实现“线与”逻辑。

线与:多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。

开漏输出模式

开漏就是指MOS管的漏极开路,也就是漏极什么也不接,直接作为输出端口。

在这种模式下,当输出控制为高电平时,N-MOS截止,此时由于漏极是开路的,因此无法直接输出高电平,也是其主要特性,一般称为高电平没有驱动能力,此时要想获得高电平必须要外接上拉电阻,如下图:

图片

而控制端输出低电平时,N-MOS打开,输出端口将直接与地相连,因此其输出低电平的驱动能力是很强的,如下图所示:

图片

虽然开漏模式无法独立输出高电平,但也正是因为这一特性,使其可以非常方便地调节输出电平(完全由上拉电阻连接的电源电平决定)。因此在一些需要做电平转换的地方,开漏模式是有很大的优势的。

同时上面提到的推挽模式无法实现的“线与”逻辑在开漏模式下也能够实现。在高电平与低电平相连的情况下,由于上拉电阻的存在,不会出现推挽模式下的短路问题。

当然,开漏模式也有其缺点。其上升沿是通过上拉电阻来对负载充电,因此如果电阻小时延时就小,但功耗会变大,反之延时大功耗小。

总结

最后由一个表格来总结推挽输出与开漏输出的特性与优缺点:

图片

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

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

相关文章

CPI降温仍猛砍降息预期!美联储继续按兵不动,预计今年仅降息一次

要点: 美联储继续保持利率不变,符合市场预期。 决议声明不再说降通胀缺乏进一步进展,改称取得适度的进... 要点: 美联储继续保持利率不变,符合市场预期。 决议声明不再说降通胀缺乏进一步进展,改称取得适度…

【中间件】Pulsar集群安装

目录 一、Pulsar介绍 1.1 Pulsar基本介绍 1.2 Pulsar架构 Producer & Consumer Apache Zookeeper Pulsar Brokers Apache Bookkeeper 二、Zookeeper集群安装 三、Pulsar集群安装 3.1 bookie与broker配置 3.1.1 修改bookie配置文件 3.1.2 修改broker配置文件 3…

渗透测试工具NMAP

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全…

pytest中一个场景测试的demo

注意点1: allure.severity 是一个装饰器,用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一,表示这个测试用例极为重要。allure.severity_level.BLOCKER:阻塞级别的问题&#xff0c…

Flutter-使用MethodChannel 实现与iOS交互

前言 使用 MethodChannel 在 Flutter 与原生 Android 和 iOS 之间进行通信,可以让你在 Flutter 应用中调用设备的原生功能。 基础概念 MethodChannel:Flutter 提供的通信机制,允许消息以方法调用的形式在 Flutter 与原生代码之间传递。方法…

【产品经理】ERP对接电商平台

电商ERP对接上游平台,会需要经历几个步骤环节,包括店铺设置等。 电商ERP对接上游电商平台,其主要设置为店铺设置、商品同步、库存同步,本次讲解下店铺设置应该如何进行设置,以及在设置过程中的可能出现的踩坑事项。 …

CSS之块浮动

在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…

好用的Web数据库管理工具推荐(ChatGPT的推荐)

在现代数据管理和开发中,Web数据库管理工具变得越来越重要。这些工具不仅提供了直观的用户界面,还支持跨平台操作,方便用户在任何地方进行数据库管理。 目录 1. SQLynx 2. phpMyAdmin 3. Adminer 4. DBeaver 5 结论 以下是几款推荐的Web…

臻奶惠的行业优势与市场竞争力解析

臻奶惠在智能售货机领域深耕多年,其加盟合作模式在行业中展现出了多方面的优势。以下是对该公司智能售货机加盟优势的深入分析: 技术先进性: 臻奶惠智能售货机以高度自动化的运营模式著称,特别是在自动补货、远程监控和数据分析…

史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享。前面介…

RocketMQ教程(六):RocketMQ的消息生产

环境配置 RocketMQ版本:5.2.0 RocketMQ SDK版本:5.2.0 引入依赖 implementation org.apache.rocketmq:rocketmq-client:5.2.0 消息生产 消息的种类分成四种,普通消息、顺序消息、事务消息和延时消息,发生消息的方式也分为同步发送、异步发送、单向发送 三种。 1、普通消…

15. 《C语言》——【如何动态内存开辟】

亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优…

CST软件眼图工具Eye Diagram Tools (中)--- Classical流程

距离上次眼图介绍快两年了,由于上期已经将重点推荐的方法(statistical流程)介绍了,所以一直没急着涉及这个话题。 仿真实例011:眼图工具Eye Diagram Tools(上) 先总结一下之前介绍过的内容&am…

容器:现代计算的基础设施

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

大模型初学者怎么入门大语言模型(LLM)?

前言 在当今的科技浪潮中,人工智能(AI)和机器学习技术已经取得了长足的进步,其中大模型的发展尤为引人注目。大模型,通常指的是拥有海量参数、能够处理复杂任务的深度学习模型,如自然语言处理(…

RT-DETR 详解之 Uncertainty-minimal Query Selection

引言 在上一章博客中博主已经完成查询去噪向量构造部分的讲解(DeNoise)在本篇博客中,我们将进行Uncertainty-minimal Query Selection创新点的讲解。 Uncertainty-minimal Query Selection是RT-DETR提出的第二个创新点,其作用是…

UE5 Sequencer 使用指导 - 学习笔记

https://www.bilibili.com/video/BV1jG411L7r7/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 Sequencer 01 1.1 调整视口 调整窗口数量 调整视口类型为Cinematic视口 视口显示网格,或者条件参考线 1.2 关卡动画与…

架构设计-用户信息及用户相关的密码信息设计

将用户的基本信息和用户密码存放在不同的数据库表中是一种常见的安全做法,这种做法旨在增强数据的安全性和管理的灵活性。以下是这种做法的几个关键原因: 安全性增强: 当用户密码被单独存放在一个表中时,可以使用更强大的加密和哈…

计算机毕业设计 | SpringBoot+vue的教务管理系统

1,绪论 1.1 项目背景 在这个资讯高度发展的时代,资讯管理变革已经是一个更为宽泛、更为全面的潮流。为了保证中国的可持续发展,随着信息化技术的不断进步,教务管理体系也在不断完善。与此同时,伴随着信息化的飞速发展…