在GPIO配置中,开漏输出(Open-Drain)推挽输出(Push-Pull)的对比如下:

1. 电路结构对比

推挽输出(Push-Pull):包含两个MOS管(PMOS和NMOS),形成互补对称电路。

VDD
 |
PMOS (上拉)
 |
Output ←─┬─→ 外部电路
 |
NMOS (下拉)
 |
GND

开漏输出(Open-Drain)仅有一个NMOS管(下拉部分),无内置上拉。

(无内部上拉)
 |
NMOS (下拉)
 |
Output ←─┬─→ 外部电路 + 上拉电阻 → VDD
 |
GND

2. 输出特性对比

特性 推挽输出 开漏输出
高电平 由PMOS主动提供(强驱动) 依赖外部上拉电阻(驱动能力弱于推挽)
低电平 由NMOS主动提供(强驱动) 由NMOS主动提供(强驱动)
输出 固定高/低电平,无高阻态 低电平或高阻态(需外部上拉)
兼容性 仅支持单一电源电压(如3.3V) 支持多电压系统(如3.3V与5V设备通信)
内部 PMOS+NMOS互补驱动 仅NMOS,无上拉
驱动 强(高低电平均主动驱动) 低电平强,高电平依赖外部
总线冲突处理 易短路,需硬件协调(设计避免) 天然支持“线与”逻辑, 无短路风险(仅单管)
功耗 静态电流低,切换时瞬态电流较高 高电平时依赖上拉电阻电流

适用

场景

  • 数字信号高速传输:如SPI、I2C(主设备模式)、UART的TX引脚。

  • 驱动LED/继电器:需要强高低电平驱动的场合。

  • 总线竞争少的系统:多个设备不会同时驱动同一信号线。

  • 多设备总线通信:如I2C(SDA/SCL)、1-Wire总线,避免电平冲突。

  • 电平转换:与不同电压设备通信(如3.3V MCU控制5V器件)。

  • 线与(Wired-AND)逻辑:多个开漏输出连接同一线,任一设备拉低即全局低电平。

3. 关键注意事项

开漏模式上拉电阻选择:根据总线电容和速度需求。标准模式:4.7kΩ、快速模式:1kΩ。阻值过小 → 电流大、功耗高;阻值过大 → 上升沿变缓。

高阻态的意义:开漏输出在关闭时呈现高阻态,允许其他设备驱动同一线路。

Q:为什么开漏输出高电平比推挽慢?
A:开漏的高电平靠上拉电阻对寄生电容充电,上升时间由RC常数决定(τ=R×C)。推挽由PMOS主动拉高,驱动能力更强。

Q:能否用推挽模式实现I2C通信?
A:绝对不可!多设备会因同时输出高低电平而短路。I2C必须使用开漏模式:

  • 多主机仲裁:多个设备可同时驱动总线,开漏避免短路。

  • 电平兼容:上拉电阻可接不同电压(如3.3V或5V)。

  • 电路连接

    主机1 (SDA开漏) ────┬───→ 上拉电阻 → VDD (3.3V/5V)
    主机2 (SDA开漏) ────┘


Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐