最近看到一個關于上下拉電阻的問題,發現不少人認為上下拉電阻能夠增強驅動能力。
隨后跟幾個朋友討論了一下,大家一致認為不存在上下拉電阻增強驅動能力這回事,因為除了OC輸出這類特殊結構外,上下拉電阻就是負載,只會減弱驅動力。
但很多經驗肯定不是空穴來風,秉承工程師的鉆研精神,我就試著找找這種說法的來源,問題本身很簡單,思考的過程比較有趣~
二極管邏輯
今天已經很難看到二極管邏輯電路了,其實用性也不算高,不過因為電路簡單,非常適合用來理解基本概念。
一個最簡單的二極管與門如下圖所示。與門實現邏輯與操作Y=A&B,即A或者B任意為L的時候,輸出Y為L,只有當A和B都為H時,Y才為H。
基本二極管與門
假設二極管無導通壓降,在這個電路中,二極管充當了單向開關的角色,當A和B等于VDD時,兩根二極管反向截至,Y被電阻上拉到VDD,這是Y就是H;當A或者B任意一端為GND時,二極管導通,因為二極管導通時電阻很小,遠小于上拉電阻,所以Y被拉到了GND,即邏輯L。
至于二極管或門,只要把二極管轉一下,再把電阻從拉到VDD改成拉到GND就可以了,非常簡單。
基本二極管或門
基本原理
你看,在這么原始的邏輯電路中就已經出現了上下拉電阻,這里面的原理也非常簡單粗暴:利用開關的閉合(電阻為0)和開啟(電阻無窮大)的特性,配合電阻,就可以輕松實現兩種電壓的輸出。
這種電路還有一個變形,就是用恒流源取代電阻,一方面集成電路工藝,恒流源比電阻更容易獲得,另一方面恒流源的驅動能力也更好。
根據開關和電阻(或恒流源)的相對位置,有以下基本電路:即開關接到GND(L)或開關接到VDD(H)。
這幾種電路都是由開關的閉合或開啟決定了VOUT是VDD還是GND。
開關的相對位置不同,還決定了電路在某一狀態下的驅動能力:開關的導通電阻為0,可視為驅動力無窮大,可是電阻(或恒流源)的驅動能力呢,只有VDD/R(或者恒流I),這就導致了電路在輸出H或L的時候驅動能力不對稱(換一個說法,就是電路在輸出H或者L的時候,輸出阻抗不一樣)。
除了驅動能力的問題,這種單開關加電阻的模式還會帶來靜態功耗的問題,因為只要開關閉合,不管外部有沒有負載,都會消耗電流。
既然開關的驅動力比電阻強,那么能不能把電阻也換成開關?恭喜你,發現了現代CMOS邏輯電路的基本單元:倆互補的開關。這樣不管輸出H還是輸出L,驅動能力都是無窮大!好的,這時候上下拉電阻就不見了。
這樣兩個開關的電路還多出來了一種狀態:當兩個開關都開啟時,VOUT即不是VDD也不是GND,而是一個懸空的狀態(即高阻態,Hi-Z),這時候外部給什么信號它就是什么狀態。這樣又出現了一個新的邏輯門大類:三態邏輯門。