推挽输出:上管推、下管拉,驱动强但不“合群”

短文标题:推挽输出:上管推、下管拉,驱动强但不"合群"

你有没有想过一个问题:GPIO直接点亮LED,靠的是哪种输出模式?**推挽输出。**它内部有两个MOS管:

  • 上面的PMOS管接VCC(推)
  • 下面的NMOS管接地(拉)

输出高电平时,上管导通,下管关断 → 电流从VCC流出,这叫做拉电流 。输出低电平时,上管关断,下管导通 → 电流从引脚流入地,这叫做灌电流

"推挽"这个名字,就来自"推"(高电平)和"挽"(低电平)两个动作。推挽的驱动能力 ARM32的GPIO在推挽模式下,单个引脚最大输出电流可达**±25mA**(拉和灌都能到25mA,但总电流受芯片散热和VDD/VSS引脚数量的限制)。

这意味着可以直接点亮LED(串个几百欧电阻),甚至驱动小功率MOS管。推挽还支持2MHz、10MHz、50MHz三档速度可选,是高速信号输出(如SPI时钟、PWM)的首选模式。推挽的"弱点":不适合并联,两个推挽输出引脚直接连在一起:

  • 一个输出高(3.3V),一个输出低(0V)
  • 3.3V和0V短接 → 巨大电流 → 烧引脚

这就是推挽"不合群"的地方。因此,I2C总线不能使用推挽模式------它需要多个设备的输出接在同一条线上,必须用开漏输出推挽 vs 开漏

从功耗角度,推挽输出在电平切换瞬间(死区)上下管可能同时微导通,产生贯穿电流;开漏输出没有上管,不存在贯穿电流,低功耗场景更友好。典型应用

  • 点灯:推挽直接驱动LED
  • PWM调光:推挽输出高速翻转
  • SPI总线:SCK和MOSI必须用推挽
  • 驱动74HC595:推挽提供陡峭边沿

这个故事的启示, 推挽驱动能力强,适合"一对一"控制。但多个推挽不能直接连在一起------会打架。选对模式,用对场景,才能发挥GPIO的最大效能。写在最后, 点亮LED只是第一步。理解"上管推、下管拉",才知道什么时候用推挽,什么时候换开漏。选对了,少走弯路;选错了,查半天。


(本文灵感源于于振南《新概念ARM32单片机》教程第3.3节"GPIO输出模式之推挽输出",感谢作者把推挽输出的原理讲得如此清晰。)

觉得有用?点赞、转发,让更多人看懂"推挽"背后的驱动逻辑。

相关推荐
sramdram6 小时前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
十月的皮皮9 小时前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
开发笔记-阿牛9 小时前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
残影飞雪10 小时前
ESP32-C5下载烧录固件失败报错的原因
单片机·嵌入式硬件
搞全栈小苏11 小时前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_5739678212 小时前
STM32控制器
stm32·单片机·嵌入式硬件
某林21213 小时前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
sramdram14 小时前
低功耗MCU微控制器在动态血糖仪(CGM)中的应用方案
单片机·嵌入式硬件·mcu·mcu微控制器
Dlrb121114 小时前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
李永奉14 小时前
杰理可视化SDK开发-配置ANC主动降噪功能模块教程
单片机·嵌入式硬件·物联网