标题:
集电极(漏极)开路和推挽输出
[打印本页]
作者:
51黑黑黑
时间:
2016-2-13 02:23
标题:
集电极(漏极)开路和推挽输出
集电极开路输出的结构如图
1
所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“
0
”时,输出也为“
0
”)。对于图
1
,当左端的输入为“
0
”时,前面的三极管截止(即集电极
C
跟发射极
E
之间相当于断开),所以
5V
电源通过
1K
电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“
1
”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。
我们将图
1
简化成图
2
的样子。图
2
中的开关受软件控制,“
1
”时断开,“
0
”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为
0
。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。
再看图三。图三中那个
1K
的电阻即是上拉电阻。如果开关闭合,则有电流从
1K
电阻及开关上流过,但由于开关闭和时电阻为
0
(方便我们的讨论,实际情况中开关电阻不为
0
,另外对于三极管还存在饱和压降),所以在开关上的电压为
0
,即输出电平为
0
。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为
0
,因此在
1K
电阻上的压降也为
0
,所以输出端的电压就是
5V
了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即
1K
Ω),如果接一个电阻为
R
的负载,通过分压计算,就可以算得最后的输出电压为
5*R/(R+1000)
伏,即
5/(1+1000/R)
伏。所以,如果要达到一定的电压的话,
R
就不能太小。如果
R
真的太小,而导致输出电压不够的话,那我们只有通过减小那个
1K
的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。
如果我们将一个读数据用的输入端接在输出端,这样就是一个
IO
口了(
51
的
IO
口就是这样的结构,其中
P0
口内部不带上拉,而其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为
1
即可,这样就相当于那个开关断开,而对于
P0
口来说,就是高阻态了。
对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。
图4
另一种输出结构是推挽输出(如图4所示)。当写“1”时,上面的三极管导通,下面的三极管截止,输出高电平;写“0”时,上面的三极管截止,下面的三极管导通,输出低电平,比起
OC
或者
OD
来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的
OC
或
OD
输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,
AVR
单片机的一些
IO
口就是这种结构。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1