天天看點

電阻——上下拉電阻(一)

電阻——上下拉電阻(一)

陽光&技術

上拉(Pull Up )或下拉(Pull Down)電阻(兩者統稱為“拉電阻”)最基本的作用是:将狀态不确定的信号線通過一個電阻将其箝位至高電平(上拉)或低電平(下拉),無論它的具體用法如何,這個基本的作用都是相同的,隻是在不同應用場合中會對電阻的阻值要求有所不同,進而也引出了諸多新的概念,本節我們就來小談一下這些内容。

如果拉電阻用于輸入信号引腳,通常的作用是将信号線強制箝位至某個電平,以防止信号線因懸空而出現不确定的狀态,繼而導緻系統出現不期望的狀态,如下圖所示:

電阻——上下拉電阻(一)

在實際應用中,10K歐姆的電阻是使用數量最多的拉電阻。需要使用上拉電阻還是下拉電阻,主要取決于電路系統本身的需要,比如,對于高有效的使能控制信号(EN), 我們希望電路系統在上電後應處于無效狀态,則會使用下拉電阻。

假設這個使能信号是用來控制電機的,如果懸空的話,此信号線可能在上電後(或在運作中)受到其它噪聲幹擾而誤觸發為高電平,進而導緻電機出現不期望的轉動,這肯定不是我們想要的,此時可以增加一個下拉電阻。

而相應的,對于低有效的複位控制信号(RST#),我們希望上電複位後處于無效狀态,則應使用上拉電阻。

大多數具備邏輯控制功能的晶片(如單片機、FPGA等)都會內建上拉或下拉電阻,使用者可根據需要選擇是否打開,STM32單片機GPIO模式即包含上拉或下拉,如下圖所示(來自ST資料手冊):

電阻——上下拉電阻(一)

    根據拉電阻的阻值大小,我們還可以分為強拉或弱拉(weak pull-up/down),晶片内部內建的拉電阻通常都是弱拉(電阻比較大),拉電阻越小則表示電平能力越強(強拉),可以抵抗外部噪聲的能力也越強(也就是說,不期望出現的幹擾噪聲如果要更改強拉的信号電平,則需要的能量也必須相應加強),但是拉電阻越小則相應的功耗也越大,因為正常信号要改變信号線的狀态也需要更多的能量,在能量消耗這一方面,拉電阻是絕不會有所偏頗的,如下圖所示:

電阻——上下拉電阻(一)

對于上拉電阻R1而言,控制信号每次拉低L都會産生VCC/R1的電流消耗(沒有上拉電阻則電流為0),相應的,對于下拉電阻R2而言,控制信号每次拉高H也會産生VCC/R2R 電流消耗(本文假設高電平即為VCC)。

強拉與弱拉之間沒有嚴格說多少歐姆是強弱的分界,一般我們使用的拉電阻都是弱拉,這樣我們仍然可以使用外部控制信号将已經上/下拉的信号線根據需要進行電平的更改。

強拉電阻的極端就是零歐姆電阻,亦即将信号線直接與電源或地相連接配接,比如,對于EEPROM存儲晶片24C02應用電路,如下圖所示:

電阻——上下拉電阻(一)

其中,E0,E1,E2(位址配置位)在應用中通常都是直接強上拉到電源VCC,或強下拉到GND,因為存儲晶片的位址在系統運作過程中是不會再發生變化的,同樣,晶片的寫控制引腳WC(Write Control)也被強下拉到GND。

拉電阻作為輸出(或輸入輸出)時牽涉到的知識點會更多一些,但本質的功能也是将電平箝位,最常見的輸出上拉電阻出現在開集(Open Collector,OC)或開漏(Open Drain,OD)結構的引腳。

我們有很多晶片的輸出引腳是推挽輸出結構(Output Push-Pull),如下圖所示(還有一種反相輸出的結構,本質也是一樣的):

電阻——上下拉電阻(一)

推挽輸出結構引腳的特點是:無論引腳輸出高電平“H”還是低電平“L”,都有比較強的驅動能力(輸入或輸出電流能力)!

當推挽輸出結構的控制信号為低電平“L”時,Q1截止Q2導通,電流I1由電源VCC經負載RL與三極管Q2流向公共地,我們稱此電流為灌電流(Sink Current),也就是外部電流灌入晶片内部,如下圖所示:

電阻——上下拉電阻(一)

相應的,當推挽輸出結構的控制信号為高電平“H”時,Q1導通Q2截止,電流I1由電源VCC經三極管Q1與負載RL流向公共地,我們稱此電流為拉電流(Source Current),也就是晶片内部可以向外提供的電流(是以稱之為“源電源”),從另一個角度講,也就是外電路可以從晶片中拉走多少電流,如下圖所示:

電阻——上下拉電阻(一)

灌電流能力與拉電流能力也稱為晶片引腳的驅動能力。對于任何給定的晶片,引腳的驅動能力都是有限的,如下圖所示為STM32單片機的IO引腳電流驅動能力(來自ST資料手冊):

電阻——上下拉電阻(一)

由上表可知,STM32的IO引腳的驅動能力為25mA,負号“-”表示電流的方向,灌與拉的電流方向是相反的(表中SUNK為SINK的過去分詞)

由于晶片引腳的驅動能力都是有限的,如果引腳驅動的負載比較重,将可能導緻輸出電平不正确(無法輸出預定的電平),如下圖所示:

電阻——上下拉電阻(一)

假定晶片的供電電壓為3.3V(忽略半導體飽和壓降),則輸出最大電流25mA時,負載RL的值約為132歐姆(3.3V/25mA),如果負載值小于132歐姆,則相應輸出電流會更大(超過25mA),但是晶片引腳隻能提供最大25mA的電流,是以,輸出電平将會下降(老闆你隻給我2500月薪,我就隻能幹2500的活,你要我幹更多的活得開更多的工資,一個道理)

一般情況下,這種驅動重負載(小電阻)的電路連接配接是不會燒毀内部半導體的,因為内部也是有限流電阻的,換句話講,就算輸出引腳對地短路,輸出電流也不會超過最大的驅動能力(除非是不正規的晶片),當然,在實際應用過程中盡量不要超出引腳的驅動能力。

而OC(OD)的引腳輸出結構有所不同(OC結構存在于三極管,而OD結構存在于場效管,下面以OC輸出結構為例,OD輸出結構的原理是一緻的),如下圖所示:

電阻——上下拉電阻(一)

當三極管Q1的驅動控制信号為高電平“H”時,Q1飽和導通,将對應輸出引腳拉為低電平“L”,如下圖所示:

電阻——上下拉電阻(一)

但是當控制驅動信号為低電平“L”時,三極管Q1截止,如果沒有外部上拉電阻的話,該引腳相當于懸空(高阻态),無法輸出高電平,也就是說,OC/OD結構輸出的引腳沒有拉電流(向外部電路提供電流)能力。是以,我們通常都會将OC/OD引腳通過外接電阻上拉到電源電壓VCC,這樣引腳輸出高電平時的拉電流就直接由電源VCC提供,如下圖所示:

電阻——上下拉電阻(一)

大多數比較器晶片的輸出都是OD/OC輸出結構,如下圖所示(來自TI比較器LM393資料手冊):

電阻——上下拉電阻(一)

很多晶片或子產品向外回報系統狀态的信号引腳也是這種結構,這樣使用者就可以根據電路系統實際需要将電平上拉到對應的電源電壓VCC,就可以省略電平轉換了,如下圖所示(來自東芝步進電機控制晶片TB6560資料手冊):

電阻——上下拉電阻(一)
電阻——上下拉電阻(一)

I2C(Inter Integrated Circuit,内部內建電路)總線也是典型的OD輸出結構的應用,如下圖所示:

電阻——上下拉電阻(一)

其中,SCL與SDA都是OD輸出結構輸出,這樣的好處是可以作為雙向資料總線(也稱“線或Wire-OR”功能)。

如果晶片引腳使用之前描述的推挽結構,則兩個或多個晶片的引腳連接配接時将如下圖所示:

電阻——上下拉電阻(一)

假設如上圖所示晶片的輸出分别為0與1,則兩者直接互相連接配接後,會有非常大的電流自電源VCC經Q1與Q4到公共地,雖然大多數情況下不至于燒晶片,但也會引起很大的功率消耗,同時也會導緻資料沖突(晶片1總會試圖将資料線拉高,而晶片2則會試圖将資料線拉低,我們稱之為資料沖突或總線沖突,表示雙方都在搶占總線)

如果使用OC/OD輸出結構,則相應的電路如下圖所示:

電阻——上下拉電阻(一)

此時,無論兩個晶片的引腳輸出什麼狀态,都不會引起資料沖突,配合各自晶片内部的資料識别電路及仲裁系統,雙方都可以主動給另一方發送資訊,也就是說,任何一方都可以将信号線拉高或拉低,而不會影響起資料沖突。

我們所熟悉的51單片機P0口也是OD結構,如下圖所示(來自ATMEL單片機AT89C51資料手冊):

電阻——上下拉電阻(一)

這樣我們可以使用同一個P0口,再配合多個片選信号即可通路多個外挂的存儲晶片。

前面所述上拉電阻的阻值對輸入引腳引起的功耗同樣适用于輸出拉電阻,是以拉電阻不宜太小,但在輸出信号速度比較快的電路下,拉電阻也不宜太大,如下圖所示為I2C總線上拉電阻的參考最大值(來自ST存儲晶片 AT24C02資料手冊)。

電阻——上下拉電阻(一)

在總線上總會有些雜散電容CBUS,這些電容與上拉電阻RL形成了一個RC充放電電路,上拉電阻越大則充放電常數越大,這樣會把原先比較陡峭的資料邊沿變得平緩,如下圖所示:

電阻——上下拉電阻(一)

嚴重的情況下将導緻資料無法正常識别,這樣我們隻能進一步優化電路參路,或降低通訊的速率。

拉電阻還有其它作用,我們留待下一節再繼續講解。

關注《電子制作站》個人微信公衆号dzzzzcn,更多精彩技術文章與視訊等着你~~

繼續閱讀