最新消息:20190717 VPS服务器:Vultr新加坡,WordPress主题:大前端D8,统一介绍入口:关于

[ZT]Open drain & push pull 原理

工作和技术 crifan 1641浏览 0评论

Open drain & push pull 原理

最近在写GPIO的driver, 在配置GPIO管脚时,看见了感觉熟悉的两个名词:Open Drain and Push Pull。可是一时对它们的原理及区别有感觉很模糊,故上网收集了一些资料复习一下。

      所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:  

                                                                     图 1
组成开漏形式的电路有以下几个特点:
1. 利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。
2. 可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。
3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。
4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。
5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。

                                                                     图 2

应用中需注意:
1.   开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。
2. 上拉电阻R pull-up的 阻值 决定了 逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小。反之亦然。

                                                                     图 3

Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,应为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。push-pull是现在CMOS电路里面用得最多的输出级设计方式。

实际电路板运用中,此类电路非常广泛,以主板为例,南北桥芯片内部多采用open drain线路(这个纯属猜测,南北桥所用电压多为1.1v/1.2v),主要原因是:电平低,所需电流小,相应的芯片的功耗比较小,发热量小,可以更好的解决笔记本或者台式机的散热问题,能在同样的外部硬件条件下达到更高的工作频率。这个在实际的系统设计中相当重要,如今的笔记本性价比逐渐赶上台式机,散热逐渐不再成为瓶颈,芯片多采用此类电路功不可没。

个人设计电路过程中,要提高输出功率,第一,芯片是否支持是关键,如果不支持所需功率,那么第二,我们可以采用比较放大器(这个在数字时钟信号或者其他数字电平中可以大规模运用),第三,可以采用上面这种电路方式,不过这种技术多用在芯片内部,实际电路设计中基本见不到这种设计。

转载请注明:在路上 » [ZT]Open drain & push pull 原理

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
56 queries in 0.128 seconds, using 18.83MB memory