GPIO的推挽输出和开漏输出

GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。但是在配置GPIO管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。

Push-Pull推挽输出

输出的器件是指输出脚内部集成有一对互补的MOSFET,当Q1导通、Q2截止时输出高电平;而当Q1截止导通、Q2导通时输出低电平

Push-pull输出,实际上内部是用了两个晶体管(transistor),此处分别称为top transistor和bottom transistor。通过开关对应的晶体管,输出对应的电平。top transistor打开(bottom transistor关闭),输出为高电平;bottom transistor打开(top transistor关闭),输出低电平。Push-pull即能够漏电流(sink current),又可以集电流(source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。除非Push-pull需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。

Open-Drain开漏输出

开漏电路就是指以MOSFET的漏极为输出的电路。指内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。输出电压由Vcc'决定。Vcc'可以大于输入高电平电压VCC(up-translate)也可以低于输入高电平电压VCC(down-translate)。

Open-drain输出,则是比push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor)。Open-drain只能够漏电流(sink current),如果想要集电流(source current),则需要加一个上拉电阻。

老外的理解

常见的GPIO的模式可以配置为open-drain或push-pull,具体实现上,常为通过配置对应的寄存器的某些位来配置为open-drain或是push-pull。当我们通过CPU去设置那些GPIO的配置寄存器的某位(bit)的时候,其GPIO硬件IC内部的实现是,会去打开或关闭对应的top transistor。相应地,如果设置为了open-d模式的话,是需要上拉电阻才能实现,也能够输出高电平的。因此,如果硬件内部(internal)本身包含了对应的上拉电阻的话,此时会去关闭或打开对应的上拉电阻。如果GPIO硬件IC内部没有对应的上拉电阻的话,那么你的硬件电路中,必须自己提供对应的外部(external)的上拉电阻。而push-pull输出的优势是速度快,因为线路(line)是以两种方式驱动的。而带了上拉电阻的线路,即使以最快的速度去提升电压,最快也要一个常量的R×C的时间。其中R是电阻,C是寄生电容(parasitic capacitance),包括了pin脚的电容和板子的电容。但是,push-pull相对的缺点是往往需要消耗更多的电流,即功耗相对大。而open-drain所消耗的电流相对较小,由电阻R所限制,而R不能太小,因为当输出为低电平的时候,需要sink更低的transistor,这意味着更高的功耗。(此段原文:because the lower transistor has to sink that current when the output is low; that means higher power consumption.)而open-drain的好处之一是,允许你cshort(?)多个open-drain的电路,公用一个上拉电阻,此种做法称为wired-OR连接,此时可以通过拉低任何一个IO的pin脚使得输出为低电平。为了输出高电平,则所有的都输出高电平。此种逻辑,就是“线与”的功能,可以不需要额外的门(gate)电路来实现此部分逻辑。

图表 4 open-drain“线与”功能

GPIO的推挽输出和开漏输出


GPIO的推挽输出和开漏输出

优点

Push-Pull推挽输出

(1)可以吸电流,也可以贯电流;

(2)和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。

Open-Drain开漏输出

(1)对于各种电压节点间的电平转换非常有用,可以用于各种电压节点的Up-translate和down-translate转换

(2)可以将多个开漏输出的Pin脚,连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。

(3)利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。

(4)可以利用改变上拉电源的电压,改变传输电平:图表 5 open-drain输出电平的原理,IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。

GPIO的推挽输出和开漏输出

缺点

Push-Pull推挽输出

一条总线上只能有一个push-pull输出的器件;

用户喜欢...

从低输入电源产生高直流输出电压

在便携式和可穿戴式应用的驱动下,许多设计趋势正朝着3.6V或更低的电源电压方向发展。但是,许多便携式设备具有特定的功能,需要更高的电压,因此需要设计人员通过DC-DC升压转换器的优化...


Diodes Incorporated 汽车级稳压器提供 5V、8V 或 12V 输出,容许 60V 电池瞬态

Diodes Incorporated 推出的ZXTR2105FQ、ZXTR2108FQ和ZXTR2112FQ稳压器晶体管符合高可靠性 AEC-Q101 标准,并通过生产零件核准程序 (PPAP)。这些稳压器可在 12V 或 24V 额定电池供应下提供 5V、8V 或 12V 的稳压...


非常见问题解答:单端输出放大器的低功耗、低成本差分输入

selina 在 周五, 12/01/2017 - 14:57 提交 问:如何在单端输出放大器中实现低功耗、低成本的差分输入? 答:简介 许多应用都需要使用低功耗、高性能 的差分放大器,将小差分信号转换成可读的接...


G = 1/2 的差分输出差动放大器系统

selina 在 周三, 11/29/2017 - 11:56 提交 Moshe Gerstenhaber 和 Michael O'Sullivan 采用小尺寸工艺设计的高性能ADC通常采用1.8V至5V单电源或±5V双电源供电。为了处理±10 V或更大的实际信号,ADC一般前置一个...


具超低静态电流的17V 输入、双路1A输出同步降压型稳压器

LTC3622双路1A同步单片式降压型稳压器可实现适用于电池供电型系统和便携式设备以及通用负载点调节的紧凑、高效率...


[原创] Silabs Si5332低功耗6-8-12路输出可编时钟发生方案

Silabs公司的Si5332是低功耗6/8/12路输出可编时钟发生器,采用灵活的频率合成技术,可产生具有极好抖动性能(230 fs rms)的任...


详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!

一、stm32的pwm输出引脚是使用的IO口的复用功能。 二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。 三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch...


ADXRS810 高性能、SPI数字输出角速率传感器

ADXRS810是一款角速率传感器(陀螺仪),主要用于汽车导航应用。它采用先进的差分四传感器设计,可抑制线性加速度的影响,能够在极其恶劣的冲击和振动环境中工作。 中文数据手册 Rev. 0...


应用笔记 调整 AD5362 的输出范围和跨度

本应用笔记说明如何利用 AD5362 的特性,在 DAC 通道 上设置不同的输出范围。虽然本应用笔记以 AD5362 为范 例,但所用方法对 AD5360、AD5361 和 AD5363 同样有 效。相关数据手册应与本应用笔记配合...


GPIO Product Guide笔记(Xilinx)

GPIO是通用并行IO接口的简称。他将总线信号转化为IO设备要求的信号类型,实现地址译码输出数据,锁定输入数据缓冲的功能。GPIO控制器的基本结构如图1所示。 总线接口模块实现地址译码,...


MM32 MCU互补PWM输出使能带死区、刹车功能

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM最基本的调节就是频率和占空比,通过调...


低功耗、低成本的差分输入转单端输出放大器

selina 在 周三, 10/25/2017 - 09:57 提交 作者:Chau Tran和Jordyn Rombola 问: 如何实现低功耗、低成本的差分输入转单端输出放大器电路? 答: 许多应用都需要使用低功耗、高性能的差分放大器,将小...


ams TSL45315 是数字输出型环境光传感器,能模拟人眼对不同照明条件的响应

ams 的光传感器适合具有能量收集功能的智能城市、工业和商业应用 amsTSL45315 是数字输出型环境光传感器,能模拟人眼对不同照明条件的响应。该传感器具有三种可选的积分时间,并通过 I2C 总...


[原创] Linear LTM4651 58V 24W反相输出μModule稳压方案

Linear公司的LTM4651是EN55022B兼容58V/24W反相输出DC/DC μModule稳压器,输入电压3.6V - 58V,输出VOUT在-5V到-26.5V之间,输出电流高达...


集成运放输出不稳定是因为这六个原因!

在集成运放的应用中,经过相位补偿的集成运放在大多数应用场合是能满足要求的。但在应用时,有时还会出现自激,这一般是由于下述原因所致。 一、没有按集成运放使用说明中推荐的相...


SPI、I2C、UART、I2S、GPIO、SDIO、CAN,你能分清楚吗

总线,总线,总要陷进里面。这世界上的信号都一样,但是总线却成千上万,让人头疼。 总的来说,总线有三种:内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器...