最近在写GPIO的driver, 在配置GPIO管脚时,看见了感觉熟悉的两个名词:Open Drain and Push Pull。可是一时对它们的原理及区别有感觉很模糊,故上网收集了一些资料复习一下。 所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:
图 1
图 2 应用中需注意:
图 3 Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,应为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。push-pull是现在CMOS电路里面用得最多的输出级设计方式。 实际电路板运用中,此类电路非常广泛,以主板为例,南北桥芯片内部多采用open drain线路(这个纯属猜测,南北桥所用电压多为1.1v/1.2v),主要原因是:电平低,所需电流小,相应的芯片的功耗比较小,发热量小,可以更好的解决笔记本或者台式机的散热问题,能在同样的外部硬件条件下达到更高的工作频率。这个在实际的系统设计中相当重要,如今的笔记本性价比逐渐赶上台式机,散热逐渐不再成为瓶颈,芯片多采用此类电路功不可没。 个人设计电路过程中,要提高输出功率,第一,芯片是否支持是关键,如果不支持所需功率,那么第二,我们可以采用比较放大器(这个在数字时钟信号或者其他数字电平中可以大规模运用),第三,可以采用上面这种电路方式,不过这种技术多用在芯片内部,实际电路设计中基本见不到这种设计。 |
|
在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。本人虽然在念书时就知道其基本的用法,而且在设计中并未遇的过问题。但是前两天有位同事向我问起了这个概念。我忽然觉得自己对其概念了解的并不系统。近日,忙里偷闲对其进行了下总结。 所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示: 300)this.width=300" align=middle border=0 bbimg(this=""> 组成开漏形式的电路有以下几个特点: 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不连接外部的上拉电阻,则只能输出低电平。 5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。 300)this.width=300" align=middle border=0 bbimg(this=""> 应用中需注意: 1. 开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。 2. 上拉电阻R pull-up的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。 |
在时我们常常遇到开漏(
open
drain
)和开集(
open
collector)的概念。电路设计
所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示: 需要补充的是,开漏和开集都可以作为驱动输出控制的开关,但是开漏电路在关闭输出的情况下会耗电,如图1所示,Vcc经上拉电阻过漏极到地,上拉电阻大小影响开关响应及驱动能力,如果上拉过小势必会导致在漏极导通的情况下的电力消耗。图2所示的开集输出电路,有同样的耗电问题。不过集电极驱动输出还有一种接法,可以解决耗电问题,使用PNP的三极管,发射极接电源,集电极接输出,基极加一个电阻接开关控制。当然在有些耗电不是问题的情况下开漏也是一个好的选择,很多处理器的i/o口都带有开漏功能,这样,就可以节约一个三极管。 |