单片机I/O口推挽输出与开漏输出的区别

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

推挽输出和开漏输出是数字器件的两种输出结构,推挽输出可以同时输出高低电平,适用于电流型驱动,而开漏输出需要上拉电阻来获得高电平状态,适用于连接不同电平的器件。开漏输出可以形成与逻辑关系,但驱动能力较弱。在应用中需注意选择合适的上拉电阻阻值以兼顾速度和功耗。

🔎

延伸解读

推挽与开漏的核心差异:驱动能力与电平控制

推挽输出由上下两个开关管组成,高低电平都有主动驱动能力,适合直接驱动负载;开漏输出只有下管,高电平需外接上拉电阻,驱动能力较弱。推挽输出电平由芯片电源决定,不能简单做线与逻辑;开漏输出则可通过改变上拉电源电压实现电平转换,并支持多个输出并联形成与逻辑。

上拉电阻的选择:速度与功耗的权衡

开漏输出的上升沿通过上拉电阻对负载充电,电阻越小上升沿越快,但功耗越大;电阻越大则上升沿越慢,功耗越小。电阻只影响上升沿,不影响下降沿。若对上升沿要求不高,可选较大电阻以降低功耗;若要求高速,则需在芯片功耗允许范围内选择较小电阻。

开漏输出的典型应用与注意事项

开漏输出常用于电平转换和线与功能,如I2C、SMBus等总线利用线与判断占用状态。使用时必须外接上拉电阻才能输出高电平,否则只能输出低电平。多个开漏输出并联不会因电平冲突损坏器件,而推挽输出直接并联则可能产生大电流烧毁输出口。

❓

Q&A

推挽输出和开漏输出在结构上有什么不同?

推挽输出由两个互补信号控制的三极管组成,一个导通时另一个截止,可以同时输出高电平和低电平;开漏输出相当于三极管的集电极(或MOSFET的漏极)未连接,需要外接上拉电阻才能输出高电平。

为什么开漏输出必须接上拉电阻?

因为开漏输出内部只包含下拉器件,当输出高电平时内部晶体管截止,输出端悬空(高阻态),无法自行提供高电平,必须通过外部上拉电阻连接到电源才能获得高电平状态。

开漏输出适合用在哪些场景?

开漏输出主要用于电平转换和线与功能。它可以连接不同电平的器件,通过改变上拉电源电压来匹配电平;多个开漏输出可以连在一起形成与逻辑,常用于I2C、SMBus等总线。

推挽输出和开漏输出在驱动能力上有什么区别?

推挽输出的高、低电平驱动能力都很强,因为上下管都主动驱动;开漏输出低电平驱动能力较强(吸收电流),但高电平驱动能力弱,依靠上拉电阻提供电流,上升沿有延时。

如何选择开漏输出中的上拉电阻阻值?

上拉电阻阻值需要兼顾速度和功耗:阻值小,上升沿延时小、速度高,但功耗大;阻值大,功耗小但速度低。选择时应在末级晶体管功耗允许范围内,根据对上升沿时间的要求权衡。

推挽输出为什么不能把两个输出口直接接在一起?

因为推挽输出上下管都主动驱动,如果两个输出口输出不同电平并接在一起,会形成电源到地的低阻通路,产生大电流可能烧坏输出口。而开漏输出由于上拉电阻限流,不会出现这种情况。

🏷️

标签

➡️

继续阅读