谢邀。
我觉得下面这个「网上资料」还是很不错的。
单片机I/O口推挽输出与开漏输出的区别(转)
我还是认真回答一下吧。
要理解推挽输出,首先要理解好三极管(晶体管)的原理。下面这种三极管有三个端口,分别是基极(Base)、集电极(Collector)和发射极(Emitter)。下图是NPN型晶体管。
这种三极管是电流控制型元器件,注意关键词电流控制。意思就是说,只要基极B有输入(或输出)电流就可以对这个晶体管进行控制了。
下面请允许我换一下概念,把基极B视为控制端,集电极C视为输入端,发射极E视为输出端。这里输入输出是指电流流动的方向。
当控制端有电流输入的时候,就会有电流从输入端进入并从输出端流出。
而PNP管正好相反,当有电流从控制端流出时,就会有电流从输入端流到输出端。
那么推挽电路:
上面的三极管是N型三极管,下面的三极管是P型三极管,请留意控制端、输入端和输出端。
当Vin电压为V+时,上面的N型三极管控制端有电流输入,Q3导通,于是电流从上往下通过,提供电流给负载。
经过上面的N型三极管提供电流给负载(Rload),这就叫「推」。
当Vin电压为V-时,下面的三极管有电流流出,Q4导通,有电流从上往下流过。
经过下面的P型三极管提供电流给负载(Rload),这就叫「挽」。
以上,这就是推挽(push-pull)电路。
那么什么是开漏呢?这个在我答案一开头给出的「网上资料」里讲得很详细了,我这里也简单写一下。
要理解开漏,可以先理解开集。
如图,开集的意思,就是集电极C一端什么都不接,直接作为输出端口。
如果要用这种电路带一个负载,比如一个LED,必须接一个上拉电阻,就像这样。
当Vin没有电流,Q5断开时,LED亮。
当Vin流入电流,Q5导通时,LED灭。
开漏电路,就是把上图中的三极管换成场效应管(MOSFET)。
N型场效应管各个端口的名称:
场效应管是电压控制型元器件,只要对栅极施加电压,DS就会导通。
结型场效应管有一个特性就是它的输入阻抗非常大,这意味着:没有电流从控制电路流出,也没有电流进入控制电路。没有电流流入或流出,就不会烧坏控制电路。而双极型晶体管不同,是电流控制性元器件,如果使用开集电路,可能会烧坏控制电路。这大概就是我们总是听到开漏电路而很少听到开集电路的原因吧?因为开集电路被淘汰了。
最后推荐一本书,学电子必读,我在大学几乎把这本书翻烂了。