当前位置: 首页 > news >正文

GPIO推挽和开漏的名称由来和本质含义

看你的电路图,我来标注各个端子:

         VDD↑S (源极)P-MOSD (漏极)├────→ 输出引脚D (漏极)N-MOSS (源极)↓VSS

详细说明:

P-MOS管:

  • 源极(S):连接到 VDD(电源正极)
  • 漏极(D):连接到输出引脚
  • 栅极(G):连接到输出控制信号

N-MOS管:

  • 源极(S):连接到 VSS(地)
  • 漏极(D):连接到输出引脚
  • 栅极(G):连接到输出控制信号

关键点:两个MOS管的漏极都连到输出引脚

        VDD│┌────┴────┐│  P-MOS  ││    S    │ 源极接VDD│    ↓    ││    D────┼───→ 漏极接输出引脚└─────────┘输出引脚┌─────────┐│    D────┼───→ 漏极接输出引脚│    ↑    ││    S    │ 源极接VSS│  N-MOS  │└────┬────┘│VSS

记忆技巧

如何记住源极和漏极的位置:

  • 源极(Source):电流的"源头"
    • P-MOS的源极接VDD(高电位)
    • N-MOS的源极接VSS(低电位)
  • 漏极(Drain):电流"流走"的地方
    • 两种MOS的漏极都接到输出引脚

简单记法:电源端是源极,输出端是漏极


1. 推挽输出(Push-Pull)- 名称解释

"推挽"这个名字来源于它的工作方式:

"推"(Push) → P-MOS管把引脚往上"推"到高电平(VDD)
"挽"(Pull) → N-MOS管把引脚往下"拉"到低电平(VSS)

形象比喻:
就像两个人推拉一扇门:

  • 一个人负责"推门开"(P-MOS推高)
  • 一个人负责"拉门关"(N-MOS拉低)
  • 两人配合,门可以完全打开或完全关闭

电路特点:

     VDD↑P-MOS (上管:负责"推")|──┼── 输出引脚|N-MOS (下管:负责"挽/拉")↓VSS

2. 开漏输出(Open-Drain)- 名称解释

"开漏"这个名字的含义:

  • “开”(Open):断开、开路的意思
  • “漏”(Drain):指MOS管的漏极
开漏 = 漏极开路 = Drain端悬空(不连接到电源)

电路特点:

     VDD↑P-MOS (不使用,始终关闭)X──┼── 输出引脚(漏极直接连到引脚)|N-MOS (只有下管工作)↓VSS

实际应用中的区别

推挽输出的应用场景:

// 1. 驱动LED
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);   // LED亮
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); // LED灭// 2. 产生方波信号
for(;;) {HAL_GPIO_TogglePin(SIGNAL_PORT, SIGNAL_PIN);HAL_Delay(1);
}

优点:

  • ✅ 驱动能力强
  • ✅ 输出速度快
  • ✅ 不需要外部上拉电阻

缺点:

  • ❌ 不能实现"线与"功能
  • ❌ 不适合多个设备共享总线

开漏输出的应用场景:

// 1. I2C总线(多主机可以共享)
// SDA和SCL都配置为开漏
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;  // 或使用外部上拉// 2. 中断信号线(多个设备可以拉低同一根线)
// 任何一个设备都可以拉低INT线

优点:

  • ✅ 可以实现"线与"逻辑
  • ✅ 支持电平转换(如3.3V MCU连接5V设备)
  • ✅ 多个开漏输出可以连在一起

缺点:

  • ❌ 需要上拉电阻
  • ❌ 上升沿速度慢(通过电阻充电)

通俗理解

推挽 = 双向主动控制

想象一个电灯开关:
- 开关向上推 → 灯亮(主动供电)
- 开关向下拉 → 灯灭(主动断电)
- 开关有完全的控制权

开漏 = 单向被动控制

想象一个泄洪闸门:
- 闸门打开 → 水流走(拉低)
- 闸门关闭 → 水位靠其他因素决定(悬空)
- 闸门只能放水,不能主动加水

选择建议

应用场景选择原因
LED控制推挽需要强驱动能力
普通IO控制推挽简单可靠
I2C/SMBus开漏协议要求,支持多主机
中断线开漏多个设备共享
电平转换开漏可适配不同电压
高速信号推挽边沿速度快

这样理解是否更清楚了?推挽就是"能推能拉",开漏就是"只能拉不能推"。

http://www.dtcms.com/a/352756.html

相关文章:

  • 数学建模模型
  • 【Linux】Docker洞察:掌握docker inspect命令与Go模板技巧
  • Oracle中快速排查存储过程问题
  • LeetCode - 739. 每日温度
  • 《金融对账系统雪崩隐患的深度复盘与架构重生》
  • 数据库服务-日志管理-备份与恢复-主从同步
  • 项目经验处理
  • 获取服务器指标的信息
  • 幂等性设计艺术:在分布式重试风暴中构筑坚不可摧的防线
  • 大批量查询数据库大字段导致OOM问题
  • TCP服务端并发模型
  • 第5章 Excel公式与函数应用指南(4):日期和时间函数
  • Paimon——官网阅读:主键表
  • 计算神经科学数学建模编程深度前沿方向研究(下)
  • 【C++】类型系统:内置类型与自定义类型的对比
  • super(msg)层层上抛
  • 数据结构青铜到王者第七话---队列(Queue)
  • 基于Spring Boot的考研辅导知识共享平台-项目分享
  • Node.js 多版本管理工具 nvm 的安装与使用教程(含镜像加速与常见坑)
  • 计算机组成原理实验报告
  • Kafka架构以及组件讲解
  • 【Kafka】重点概念和架构总结
  • Unity 串口通信
  • 解开 Ansible 任务复用谜题:过滤器用法、Include/Import 本质差异与任务文件价值详解
  • Writer-你的私人内容创作助手
  • TCP并发服务器构建
  • TensorFlow 深度学习 | Layer 基础知识介绍
  • 浅谈Elasticsearch数据写入流程的refresh和flush操作
  • 智能一卡通系统通过集成身份识别、权限管理、数据联动等技术,实现多场景一体化管理。以下是多奥基于最新技术趋势和应用案例的系统解析
  • screen命令