首先我們來建立開漏輸出與推挽輸出的模型吧!
這兩幅圖是開漏輸出的簡化模型!
推挽輸出實際上應是把圖三的電阻也換成一個開關(即場效應管),當上面開關接通,下面關斷時,輸出高電平;當上面開關關斷,下面開關接通時,輸出低電平;當二者都關斷時,呈高阻態(tài),此時可以輸入信號。當然不允許兩者同時接通,所以才叫推挽,即同一時刻二者最多只能有一個工作。
為什么要有開漏輸出?因為它有以下優(yōu)點:
1.利用外部電路的驅動能力,減少IC內部的驅動;
2.可以將多個開漏輸出的Pin,連接到一條線上。形成 “與邏輯” 關系。如果是推挽輸出顯然是不行的,因為假如你把要”與”的I/O口都掛到一條線上,那么在一些高一些低的情況下顯然會燒掉場效應管(原因是兩個場效應管直接連通了,聯(lián)想上面的模型去想吧)
3.可以利用改變上拉電源的電壓,改變傳輸電平。比如你想這個I/O口輸出3.3V電平,那么只需要把上拉電平設為3.3V就OK了撒!這個5V的51單片機也可以輸出3.3V電平了,呵呵!但前提是用P0口哈!
那開漏輸出又有什么不足的呢?
1.輸出電流低,因為上拉電阻一般取的比較大(為了減少靜態(tài)功耗),所以驅動力不足,而推挽輸出用的是場效應管,當然驅動能力強了.
2. 帶來上升沿的延時,因為上升沿是通過外接上拉無源電阻對負載充電的,當電阻選擇小時延時就小、但功耗大,反之延時大功耗小。
推挽輸出的優(yōu)點:
1.驅動能力強,因為用的是場效應管,當然驅動能力強了.
2.真正的雙向口
推挽輸出的缺點:
1.不能把兩個都是推挽輸出的CMOS門級相連,這樣當一高一低時很容易因功耗過大燒管子,推挽輸出一般用于驅動.
關于雙向口與準雙向口!
什么是準雙向口?
首先我們要明白什么是雙向口?
雙向口是指輸入輸出口具有三態(tài),即輸出高,輸出低,和輸入高阻態(tài)
例如PO口作為地址/數(shù)據(jù) 復用口時就是完全意義上的雙向口,它的上下兩個場效應管交替工作,當上面的場效應管工作時,輸出1,當下面的場效應管工作時,輸出0,當兩個都不工作時,為高阻輸入態(tài).此時實際上就和推挽輸出沒有兩樣。
而P1,P2,P3口和PO口作為普通I/O口時就只能稱為準雙向口,因這種情況下是沒有高阻輸入態(tài)的,為什么?因為它始終有個上拉電阻存在(開漏條件下加的嘛),輸入0時,是靠外界把這個上拉電阻拉低得到輸入的0的.
擴展閱讀:三極管放大的基本電路