开漏输出:只能拉低,不能拉高,高电平靠“外部”帮忙

你有没有想过一个问题:GPIO输出高电平,不就是引脚输出3.3V吗?**开漏输出做不到。**它内部只有一个接地的MOS管。

  • 输出低电平:MOS管导通,引脚拉到地(0V)
  • 输出高电平 :MOS管关断,引脚什么都不接------悬空

它不会主动输出高电平,只会"放手"。 要让引脚变成高电平,必须在外面接一个上拉电阻

那个"内部结构"的真相(对应教程3.4节), 推挽输出内部有两个MOS管:一个接VCC,一个接地。开漏输出内部只有一个接地的MOS管。输出高电平时,MOS管关断,引脚与内部电路断开 。引脚上的电压完全由外部电路 决定。它只能拉低,不能推高。

**那个"上拉电阻"的作用(对应教程3.6节),**接一个电阻从引脚到VCC(上拉电阻)。

  • 输出低电平:MOS管导通,引脚0V(电阻电流流过MOS管)
  • 输出高电平:MOS管关断,引脚被电阻拉到VCC

上拉电阻,是开漏输出的"拐杖"。 没有它,引脚浮空------电平不确定。

那个"电平转换"的妙用(对应教程3.4节), 3.3V的单片机和5V的芯片通信:开漏引脚接上拉电阻到5V

  • 单片机输出低电平 → 引脚0V → 5V芯片读到低电平
  • 单片机输出高电平 → 引脚被电阻拉到5V → 5V芯片读到高电平

**3.3V单片机,直接驱动5V芯片。**不需要电平转换芯片,一个电阻就够了。

那个"线与"的逻辑(对应教程3.6节), 多个开漏输出可以接在同一条线上。任何一个设备输出低电平(拉低),整条线就是低电平。所有设备都"放手",线才被上拉电阻拉高。谁都能拉低,谁都不推高------避免短路。 这就是I2C总线使用开漏输出的原因。那个"应用"的场景

  • I2C:SCL和SDA都是开漏
  • 1-Wire:单总线,开漏
  • 电平转换:3.3V ↔ 5V
  • 多设备共享总线:多个输出接一起

开漏输出不强,但"合群"。

这个故事的启示, 为什么开漏输出不能输出高电平?因为它内部没有连接VCC的MOS管 。它只能拉低,只能"放手"。"弱"是它的特点,不是缺陷。 开漏的哲学:不争不抢,才能协作。

写在最后, 下次你需要连接不同电压的芯片,或者让多个设备共享总线。想想开漏输出。上拉电阻 + 开漏 = 电平转换 + 线与。那个"不会输出高电平"的缺陷,恰恰是它强大的地方。


(本文灵感源于于振南《新概念ARM32单片机》教程第3.4节"GPIO开漏模式与电平匹配",感谢作者将开漏输出的物理本质讲得如此通透。)


如果您觉得这个故事对您有启发,欢迎点赞、转发,让更多工程师看到这个藏在"只能拉低"背后的开漏智慧。

相关推荐
FFF团团员9096 小时前
CCS快速使用4(tim,pwm)
单片机·嵌入式硬件
某先森不吃鱼6 小时前
工程日志——离轴编码器矫正与磁场串扰解决
嵌入式硬件
黑白园7 小时前
STM32 通过I2C 读写EEPR0M AT24C02
stm32·单片机·嵌入式硬件
ACP广源盛139246256737 小时前
ASW3742@ACP# 产品规格详解
网络·人工智能·嵌入式硬件·计算机外设·电脑
llilian_167 小时前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪
网络·功能测试·单片机·嵌入式硬件·测试工具·51单片机
YJlio7 小时前
《Windows Internals》10.5.1 ETW 概述:看懂 Windows 的“事件高速公路”
java·windows·笔记·stm32·嵌入式硬件·学习·eclipse
平凡灵感码头7 小时前
(方案优化师第 1 期) 旺仔牛奶音响
单片机·嵌入式硬件
YJlio8 小时前
Windows Internals 10.5.3:ETW 架构详解,从事件产生到性能分析的完整链路
windows·笔记·python·stm32·嵌入式硬件·学习·架构
SkyXZ~8 小时前
Mac上使用VScode优雅开发STM32
vscode·stm32·macos