【电路设计】GPIO输出模式:推挽开漏
输出模式GPIO的输出缓冲区有一个PMOS和一个NMOS以及一个非门输出GPIO的如下所示当逻辑高电平的时候PMOS打开NMOS关闭此时VCC直接输出到引脚此时可以形象的看成是在“推”称为推相位如下图所示当逻辑低电平的时候PMOS关闭NMOS打开此时输出引脚直接连接到地此时可以形象的看成是在“拉”称为拉相位如下图所示1.推挽模式1.1 推挽特点推挽模式是GPIO输出模式的默认状态。引脚可以使用PMOS晶体管或NMOS晶体管将信号“推”高或者“拉”低。低电平和高电平的时候GPIO都具备驱动能力。这里有两个需要理解的名词拉电流SOURCING OUTPUT以及灌电流SINKING OUTPUT拉电流指代我们我们缓冲区产生的电流流到pin脚灌电流指代流入缓冲区地端的电流GPIO的推挽模式高阻态nmos关闭pmos打开拉电流低阻态nmos打开pmos关闭灌电流1.2 推挽应用场景推挽模式由于其直接输出高低电平的能力非常适合用于需要确定性电平输出的场合。然而需要注意的是推挽模式的驱动能力有限通常只适合驱动低功率的负载如LED灯或小型继电器。对于高功率的负载可能需要额外的驱动电路来提供所需的电流和电压。常用于点亮LED灯推挽输出模式可以用于直接控制LED灯的亮灭因为它能够提供足够的电流来驱动LED驱动继电器推挽模式可以输出足够的电压和电流来驱动继电器从而控制较大功率的设备控制小型电机对于小型直流电机可以使用推挽模式来控制电机的启动和停止数字芯片控制推挽模式可以直接控制一些数字芯片例如ADC、DAC、触发器、锁存器、三极管控制引脚等通用数字输出推挽模式适用于通用的数字输出场景因为它可以输出确定的高低电平而不需要外部电路的辅助2. 开漏模式在这种配置中没有PMOS晶体管而NMOS晶体管的漏极保持在浮空状态。因此这种配置被称为开漏此时漏极连接的pin脚状态不稳定。我们一般会在漏极上接一个上拉电阻开漏模式的要点在于输出高电平的情况下GPIO口不具备驱动能力而且它的高电平依赖于外部的上拉电阻因此具备灵活性可以通过改变外部的上拉电路来实现不同电平的输出。如上面的内容可以得知这种模式仅支持灌电流电流流入缓冲区地2.1 开漏特点GPIO的开漏模式高阻态nmos关闭驱动能力依赖于上拉电阻低阻态nmos打开驱动能力来自于GPIO此时上来电阻不起作用2.2 开漏的应用场景开漏模式由于其灵活性和对外部电路的依赖性在需要与其他设备共享通信线或进行电平转换的场合中非常有用。设计者需要根据具体的应用需求来选择合适的上拉电阻和外部负载。我们可以仅通过开漏来进行开关通过选型不同的上拉电阻实现不同场景要求下的高电平I2C总线I2C是一种多主设备总线使用开漏输出和外部上拉电阻实现线与功能确保总线上的设备可以共享通信线路。总线占用检测在某些系统中可以使用线与功能来检测总线上是否有设备正在通信。如果总线为低电平则表示有设备正在使用总线。逻辑控制在需要多个控制信号同时满足条件才能激活某个逻辑功能的情况下可以使用线与功能来实现这种逻辑控制。2.3 线与功能介绍***多个开漏输出连接将多个开漏输出的GPIO引脚连接到同一条总线上并且每个引脚都通过外部上拉电阻连接到高电平电源。高电平状态当所有连接到总线上的GPIO引脚都输出高阻态时由于外部上拉电阻的作用总线上的电平为高。低电平状态如果任何一个GPIO引脚输出低电平电流将从总线流向地线导致总线上的电平变为低。总结以上内容仅作为知识分享和自我总结欢迎大家进行交流和指正后续会持续更新相关的自学内容 关于电子工程师相关的知识

相关新闻

VSCode 插件默认安装位置移出 C 盘:用 TaoToken 接入的 Codex 核对 --extensions-dir

VSCode 插件默认安装位置移出 C 盘:用 TaoToken 接入的 Codex 核对 --extensions-dir

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 13:10:54 阅读更多 →
ImageJ截取指定区域与荧光强度计算:从入门到实战

ImageJ截取指定区域与荧光强度计算:从入门到实战

简介:ImageJ 是公共领域的 Java 图像处理程序,尤其适合显微镜图像与生物医学影像的量化分析。教程从安装配置讲起,依次说明 Windows、Mac、Linux 等平台下的部署差异,并详细解释内存分配、核心方案更新、热键定制以及插件加载目录…

2026/9/19 13:10:54 阅读更多 →
植物大战僵尸民间改版全指南:杂交版、融合版、修改器与避坑经验

植物大战僵尸民间改版全指南:杂交版、融合版、修改器与避坑经验

植物大战僵尸这个IP的生命力,说实话超出了我十多年前第一次在电脑上种下第一颗豌豆射手时的想象。原版通关几遍之后,很多人以为这游戏就到头了,但真正让它活到今天、并且持续吸引新老玩家的,是围绕它生长出来的一个庞大民间生态&a…

2026/9/19 13:09:53 阅读更多 →

最新新闻

主动学习降低关系抽取标注成本的工程实践与代码解析

主动学习降低关系抽取标注成本的工程实践与代码解析

简介:面向关系抽取与主动学习方向的研究者,这份压缩包提供了一套基于BERT等模型的关系抽取实验方案,重点解决监督学习标注成本高、未标记样本利用率低的问题。包内共60个文件,涵盖26个Python脚本(如模型模块、训练器、…

2026/9/20 15:49:25 阅读更多 →
RapidOCR多引擎OCR:一套库离线跑遍CPU、GPU和移动端

RapidOCR多引擎OCR:一套库离线跑遍CPU、GPU和移动端

RapidOCR多引擎OCR:一套库离线跑遍CPU、GPU和移动端 【免费下载链接】RapidOCR 📄 Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch. 项目地址: https://gitcode.com/…

2026/9/20 15:49:25 阅读更多 →
rome_markup 深入解析:为 Rome 控制台输出构建 JSX 风格标记的过程宏

rome_markup 深入解析:为 Rome 控制台输出构建 JSX 风格标记的过程宏

开发工具CLILint格式化静态分析代码质量构建工具 【免费下载链接】tools Unified developer tools for JavaScript, TypeScript, and the web 项目地址: https://gitcode.com/gh_mirrors/to/tools 点击查看 免费下载 rome_markup 是 Rome 工具链中一个专门的过程宏…

2026/9/20 15:49:25 阅读更多 →
温湿度传感器以太网通信中的CRC选型与实战避坑指南

温湿度传感器以太网通信中的CRC选型与实战避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 15:49:25 阅读更多 →
Ghidra逆向工程入门:环境配置、Java报错排查与反编译实战

Ghidra逆向工程入门:环境配置、Java报错排查与反编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 15:49:25 阅读更多 →
MacOS 上跑通 SQLite-Vec 向量检索:从报错到可用的完整路径

MacOS 上跑通 SQLite-Vec 向量检索:从报错到可用的完整路径

MacOS 上跑通 SQLite-Vec 向量检索:从报错到可用的完整路径 【免费下载链接】sqlite-vec A vector search SQLite extension that runs anywhere! 项目地址: https://gitcode.com/GitHub_Trending/sq/sqlite-vec 终端里敲完 .load,一行红字弹了出…

2026/9/20 15:48:24 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →