Open-Drain与Push-Pull(转)

转载 2016年05月31日 09:47:42

Open-Drain与Push-Pull

GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。(General Purpose Input Output,简称为GPIO或总线扩展器,利用工业标准I2C、SMBus?或SPI?接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,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需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。

特点:在CMOS电路里面应该叫CMOS输出更合适,因为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。push-pull是现在CMOS电路里面用得最多的输出级设计方式。

优点:(1)可以吸电流,也可以贯电流;(2)和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。

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

【Open-Drain开漏输出】

原理:

开漏电路就是指以MOSFET的漏极为输出的电路。指内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。输出电压由Vcc决定。Vcc可以大于输入高电平电压VCC (call UP-Translate)也可以低于输入高电平电压VCC(call Down-Translate)
Open-Drain输出,则是比push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor)。Open-drain只能够漏电流(sink current),如果想要集电流(source current),则需要加一个上拉电阻。

优点:
(1)对于各种电压节点间的电平转换非常有用,可以用于各种电压节点的Up-translate和Down-translate转换
(2)可以将多个开漏输出的Pin脚,连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。
(3)利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很小的栅极驱动电流。
(4)可以利用改变上拉电源的电压,改变传输电平,如图, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。

OD输出电平的原理

缺点:开漏Pin不连接外部的上拉电阻,则只能输出低电平。当输出电平为低时,N沟道三极管是导通的,这样在Vcc'和GND之间有一个持续的电流流过上拉电阻R和三极管Q1。这会影响整个系统的功耗。采用较大值的上拉电阻可以减小电流。但是,但是大的阻值会使输出信号的上升时间变慢。即上拉电阻R pull-up的阻值 决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

【open-drain与push-pull】图表对比

【open-drain与push-pull】 GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。但是在配置GPIO管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推...
  • tidavery
  • tidavery
  • 2013年11月17日 23:38
  • 1110

Push-Pull推挽输出和Open-Drain开漏输出

【Push-Pull推挽输出】 原理: 输出的器件是指输出脚内部集成有一对互补的MOSFET,当Q1导通、Q2截止时输出高电平;而当Q1截止导通、Q2导通时输出低电平。Push-Pull输...
  • nanjoh
  • nanjoh
  • 2017年02月27日 14:35
  • 144

open-drain, push-pull,MOSFET, MOS管,三极管等基础知识

载自:http://bbs.chinaunix.net/thread-3577868-1-1.html 整理】open-drain, push-pull,MOSFET, MO...
  • coder_jack
  • coder_jack
  • 2013年05月18日 19:52
  • 1745

open-drain, push-pull,MOSFET, MOS管,三极管等基础知识

【整理】open-drain, push-pull,MOSFET, MOS管,三极管等基础知识 版本:v20110804 作者:crifan 邮箱:green-waste (at) ...
  • metuu
  • metuu
  • 2013年12月30日 17:17
  • 863

open-drain, push-pull,MOSFET, MOS管,三极管等基础知识

【open-drain与push-pull】 GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。但是在配置GPIO管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和...
  • nic_r
  • nic_r
  • 2013年09月27日 17:11
  • 6158

STM32中开漏(open-drain,漏极开路)和推挽(push-pull)以及float input分析

在配置GPIO(General Purpose Input Output)管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。对此两种模式,有何区别和联系...
  • yn925
  • yn925
  • 2016年04月26日 16:54
  • 1038

N沟开漏(open-drain)和推挽输出(push-pull)

open-drain and push-pull 具有开漏(OD)输出的器件是指内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。输出电压由Vcc'决定。Vcc'...
  • zaizaishan
  • zaizaishan
  • 2013年04月23日 10:19
  • 1234

STM32之GPIO开漏(Push-pull)和推挽(open-drain)输出

STM32GPIO介绍: 每一个GPIO包括4个32bit的控制寄存器(GPIOx_MODER,GPIOx_OTYPER,GPIOx_OSPEEDRandGPIOx_PUPDR);2个32bit的数据...
  • makeryzx
  • makeryzx
  • 2017年12月27日 20:14
  • 46

MTK GPIO 一些理解

基于6575平台: GPIO驱动程序提供了两个接口: (1)内核空间:所提供的GPIO驱动程序,驱动程序可以调用其他函数 (2)用户空间:用户空间的程序可以通过发送IOCTL   /dev/...
  • yuanjungogogo
  • yuanjungogogo
  • 2013年02月19日 13:44
  • 2411

一步一步开始FPGA逻辑设计 - 高速接口之PCIe

近两年来和几个单位接触下来,发现PCIe还是一个比较常用的,有些难度的案例,主要是涉及面比较广,需要了解逻辑设计、高速总线、Linux和Windows的驱动设计等相关知识。 这篇文章主要针对Xilin...
  • jackxu8
  • jackxu8
  • 2016年11月22日 17:04
  • 2895
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Open-Drain与Push-Pull(转)
举报原因:
原因补充:

(最多只允许输入30个字)