51單片機驅動能力(拉電流_灌電流)及上拉電阻

2020-11-24 電子產品世界
看來很多網友都搞不清灌電流拉電流的概念,下面就此解釋一下,希望看過本文後不再就此困擾。

一個重要的前提:灌電流和拉電流是針對埠而言的。

名詞解釋——灌:注入、填充,由外向內、由虛而實。渴了,來一大杯鮮榨橙汁,一飲而盡,飽了,這叫「灌」。

灌電流(sink current) ,對一個埠而言,如果電流方向是向其內部流動的則是「灌電流」,比如一個IO通過一個電阻和一個LED連接至VCC,當該IO輸出為邏輯0時能不能點亮LED,去查該器件手冊中sink current參數。

名詞解釋——拉:流出、排空,由內向外,由實而虛。一大杯鮮橙汁喝了,過會兒,憋的慌,趕緊找衛生間,一陣「大雨」,舒坦了,這叫「拉」。

拉電流(sourcing current),對一個埠而言,如果電流方向是向其外部流動的則是「拉電流」,比如一個IO通過一個電阻和一個LED連至GND,當該IO輸出為邏輯1時能不能點亮LED,去查該器件手冊中sourcing current參數。

本文引用地址:http://www.eepw.com.cn/article/201611/318344.htm

http://bbs.21ic.com/viewthread.php?tid=219138&highlight=%2Byezhubenyue

單片機輸出低電平時,將允許外部器件,向單片機引腳內灌入電流,這個電流,稱為「灌電流」,外部電路稱為「灌電流負載」(sink current)
單片機輸出高電平時,則允許外部器件,從單片機的引腳,拉出電流,這個電流,稱為「拉電流」,外部電路稱為「拉電流負載「(source current)

這些電流一般是多少?最大限度是多少? 這就是常見的單片機輸出驅動能力的問題。

分析一下 TTL 的輸入特性,就可以發現,51 單片機基本上就沒有什麼驅動能力。
它的引腳,甚至不能帶動當時的 LED 進行正常發光。

記得是在 AT89C51 單片機流行起來之後,做而論道才發現:單片機引腳的能力大為增強,可以直接帶動 LED 發光了。
看看下圖,圖中的 D1、D2 就可以不經其它驅動器件,直接由單片機的引腳控制發光顯示。

雖然引腳已經可以直接驅動 LED 發光,但是且慢,先別太高興,還是看看 AT89C51 單片機引腳的輸出能力吧。
從 AT89C51 單片機的 PDF 手冊文件中可以看到,穩態輸出時,「灌電流」的上限為:

Maximum IOL per port pin: 10 mA;
Maximum IOL per 8-bit port:Port 0: 26 mA,Ports 1, 2, 3: 15 mA;
Maximum total I for all output pins: 71 mA.

這裡是說:
每個單個的引腳,輸出低電平的時候,允許外部電路,向引腳灌入的最大電流為 10 mA;
每個 8 位的接口(P1、P2 以及 P3),允許向引腳灌入的總電流最大為 15 mA,而 P0 的能力強一些,允許向引腳灌入的最大總電流為 26 mA;
全部的四個接口所允許的灌電流之和,最大為 71 mA。

http://bbs.21ic.com/viewthread.php?tid=255097&highlight=%2Byezhubenyue

單片機驅動蜂鳴器-.


這裡驅動蜂鳴器電阻為14k 如果電壓為3V的時候需要電流為21ma,但是單片機提供的電流最大也就10ma左右,所以需要三極體來放大電流

如圖P26高電平的時候蜂鳴器工作,P26低電平的時候斷開。 蜂鳴器工作電壓3V,所以取RES2為2v / 21ma為100歐左右。先需要21ma二極體的放大倍數將近100倍,所以基極電流最小為0.21ma,現E點電壓為3v所以R=U/A 電阻最大需要取2V/0.21ma=10000K 如果電阻取100歐那基極電流就是20ma,單片機驅動不了。最大為10ma可知電阻的最小為200歐姆,放大2倍則蜂鳴器就可以工作了。。(在飽和,放大的臨界狀態所以可以使用 IB=β*IC,)

而當這些引腳「輸出高電平」的時候,單片機的「拉電流」能力呢? 有10 mA的驅動能力。

結論就是:單片機輸出低電平的時候,驅動能力尚可,而輸出高電平的時候,就沒有輸出電流的能力。
這個結論是依照手冊中給出的數據做出來的。

51 單片機的這些特性,是源於引腳的內部結構,引腳內部結構圖這裡就不畫了,很多書中都有。
在晶片的內部,引腳和地之間,有個三極體,所以引腳具有下拉的能力,輸出低電平的時候,允許灌入 10mA 的電流;而引腳和正電源之間,有個幾百K的「內部上拉電阻」,所以,引腳在高電平的時候,能夠輸出的拉電流很小。特別是 P0 口,其內部根本就沒有上拉電阻,所以 P0 口根本就沒有高電平輸出電流的能力。

哦,明白了,外接電路如果是「拉電流負載」,要求單片機輸出高電平時發揮作用,那就必須用「上拉電阻」來協助,產生負載所需的電流。

下面做而論道就專門說說上拉電阻存在的問題。

如果在一個 8 位的接口,安裝了 8 個 1K 的上拉電阻,當單片機都輸出低電平的時候,就有 40mA 的電流灌入這個 8 位的接口!
如果四個 8 位接口,都加上 1K 的上拉電阻,最大有可能出現 32 × 5 = 160mA 的電流,都流入到單片機中!
這個數值已經超過了單片機手冊上給出的上限。如果此時單片機工作不穩定,就是理所當然的了。
而且這些電流,都是在負載處於無效的狀態下出現的,它們都是完全沒有用處的電流,只是產生發熱、耗電大、電池消耗快...等後果。
,特別是現在,都在提倡節能減排,低碳...。

那麼,把上拉電阻加大些,可以嗎? 
回答是:不行的,因為需要它為拉電流負載提供電流。對於 LED,如果加大電阻,將使電流過小,發光暗淡,就失去發光二極體的作用了。

對於 D1,是灌電流負載,單片機輸出低電平的時候,R1、D1 通路上會有灌電流;輸出高電平的時候,那就什麼電流都沒有,此時就不產生額外的耗電。

綜上所述,灌電流負載,是合理的;而「拉電流負載」和「上拉電阻」會產生很大的無效電流,這種電路不合理。

有些網友對上拉電阻情有獨鍾,有用沒用的,都想在引腳上安裝個上拉電阻,甚至還能說出些理由:穩定性啦、速度啦...。
其實,「上拉電阻」和「拉電流負載」電路,是會對單片機系統造成不良後果的。

做而論道看過很多關於單片機引腳以及上拉電阻方面的書籍、參考資料,基本上它們對於使用上拉電阻的弊病都沒有進行仔細的討論。

在此,做而論道鄭重向大家提出建議:設計單片機的負載電路,應該採用「灌電流負載」的電路形式,以避免無謂的電流消耗。

上拉電阻,僅僅是在 P0 口才考慮加不加的問題:當用 P0 口做為輸入口的時候,需要加上、當用 P0 口輸出高電平驅動 MOS 型負載的時候,也需要加上,其它的時候,P0 口也不用加入上拉電阻。

在其它接口(P1、P2 和 P3),都不應該加上拉電阻,特別是輸出低電平有效的時候,外接器件就有上拉的作用。

相關焦點

  • 怎麼解決引腳單片機的上拉電阻問題?
    本文引用地址:http://www.eepw.com.cn/article/226914.htm單片機輸出低電平時,將允許外部器件,向單片機引腳內灌入電流,這個電流,稱為「灌電流」,外部電路稱為「灌電流負載」;單片機輸出高電平時,則允許外部器件,從單片機的引腳,拉出電流,這個電流,稱為「拉電流」,外部電路稱為「拉電流負載」。
  • 上拉電阻、下拉電阻 / 拉電流、灌電流 / 扇出係數知識
    2、OC門電路必須加上拉電阻,才能使用。3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。4、在COMS晶片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供洩荷通路。同時管腳懸空就比較容易接受外界的電磁幹擾(MOS器件為高輸入阻抗,極容易引入外界幹擾)。
  • 單片機驅動LED中上拉電阻的問題
    ——LED——限流電阻——P口,P口為低電位發光管滅的時候沒有電流流過,P口為高電位或高阻狀態共陰接法,LED負端接地,正端直接P口,這時候要接上拉電阻,這個上拉電阻是提供LED發光用的,發光管亮的時候電流是從電源正——上拉電阻——LED——地。
  • 單片機上拉電阻應用及阻值選擇原則
    2、OC門電路「必須加上拉電阻,才能使用」。 3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。 4、在COMS晶片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供洩荷通路。
  • 什麼是上拉電阻?51單片機P0口上的上拉電阻有什麼用?
    這次簡單說說上拉電阻,那問題來了,什麼是上拉電阻?上拉電阻從概念上理解就是一個電阻一端接到電源正極,一端接到輸出端。下圖就是一個簡單的上拉電阻,如果沒有這個電阻R,則I/O口和VCC就沒有直接連接關係,如果用電阻連接起來就是一個上拉電阻。
  • 51單片機總結——上拉電阻
    用於為OC和OD門電路,提供驅動能力。因為當三極體截至市沒有電流流通的路徑,更談不上驅動了。這個跟單片機P0口加上拉電阻的原理一樣。  (2)提高高電平電位:  單片機P1口外接4×4矩陣鍵盤。另外復用P1.0~P1.3外接ULN2003控制驅動步進電機。  實驗中遇到的問題:當接入ULN2003時鍵盤無法工作,去掉ULN2003後鍵盤工作正常。ULN2003工作正常。
  • 上拉、下拉電阻的使用
    吸電流和灌電流就是從晶片外電路通過引腳流入晶片內的電流;區別在於吸收電流是主動的,從晶片輸入端流入的叫吸收電流。灌入電流是被動的,從輸出端流入的叫灌入電流;拉電流是數字電路輸出高電平給負載提供的輸出電流,灌電流時輸出低電平是外部給數字電路的輸入電流。這些實際就是輸入、輸出電流能力。
  • 不要告訴我你懂上拉電阻,OC,OD電路
    2.用途的原理  1)用作驅動器:由於OC門電路的輸出管的集電極懸空,使用時接一個上拉電阻Rp到電源VCC。OC門使用上拉電阻以輸出高電平  2)要特別注意選值:只要取值合適,既能做到保證輸出的高低電平符合要求,而且輸出三極體的負載電流又不至於過大。
  • 關於單片機上拉電阻
    由於P0口內部沒有上拉電阻,是開漏的,不管它的驅動能力多大,相當於它是沒有電源的,需要外部的電路提供,絕大多數情況下P0口是必需加上拉電阻的。
  • AVR單片機IO口結構和上拉和下拉電阻的作用
    電阻同時起限流作用!下拉同理!  上拉電阻是用來解決總線驅動能力不足時提供電流的。一般說法是拉電流,下拉電阻是用來吸收電流。  1、在用TTL電路驅動CMOS電路時,若TTL的高電平低於CMOS要求的高電平的門限值(1,TTL電平: 輸出高電平>2.4V,輸出低電平<0.4V。在室溫下,一般輸出高電平是3.5V,輸出低電平 是0.2V。
  • 用圖示及公式講清楚灌電流和拉電流的區別
    不管是單片機的IO口,還是一般的上拉下拉電路,都會有灌電流和拉電流的身影。 了解可以幫助我們更好地理解和設計電路。 灌電流 ,英文sink current,指被動輸入電流,是從輸出口流入電流,下圖,當PTB0輸出低的時候,LED亮,電流的方向就是從VCC流進PTB0管腳。 拉電流,英文sourcing current,指主動輸出電流,是從輸出口輸出電流,下圖,當PTB1輸出高的時候,LED亮,電流的方向就是從PTB1流進地。
  • 一鍵解讀上拉電阻計算原理
    與上拉電阻阻值有關的資料在網絡上雖然有不少,但大多很少對其中的技巧及原理進行分析,而只是給出簡單的計算過程。這樣雖然能夠在一定程度上提供幫助,但在遭遇到一些特殊情況時便會影響設計。它受內部的控制,既可向內拉電流,也可以往外送出電流。總的來說,就是三極體的c、b、e幾項都要同時接通,才能完全發揮作用,而比較器的這個輸出「三極體」,必須用外部上拉電阻接到電壓源,才能接通c。再說上拉電阻的取值,上拉電阻通常是從2K到20K,經典值則是10K。
  • 一文讓你讀懂上拉電阻與下拉電阻
    大多數具備邏輯控制功能的晶片(如單片機、FPGA等)都會集成上拉或下拉電阻,用戶可根據需要選擇是否打開,STM32單片機GPIO模式即包含上拉或下拉,如下圖所示(來自ST數據手冊):      根據拉電阻的阻值大小,我們還可以分為強拉或弱拉(weak pull-up/down),晶片內部集成的拉電阻通常都是弱拉
  • 單片機IO口結構及上拉電阻
    這種情況下不用外接上拉電阻.而且,當T1打開,T2截止,輸出高電平的時候,因為內部電源直接通過T1輸出到P0口線上,因此驅動能力(電流)可以很大,這就是為什麼教科書上說可以"驅動8個TTL負載"的原因。 2.
  • 上拉電阻阻值的選擇原則和經驗總結
    上拉電阻在電路中的主要作用就是對電流起到限流作用,在一些設計當中經常會用到上拉與下拉電阻,但電源的設計者們往往對這兩種電阻了解的不多,正因如此,在電路出現因為上拉與下拉電阻而導致的問題時
  • 上拉電阻和下拉電阻的定義、作用、應用案例及阻值選擇
    4、上拉電阻是用來解決總線驅動能力不足時提供電流的。一般說法是拉電流,下拉電阻是用來吸收電流的,也就是我們通常所說的灌電流。  5、接電阻就是為了防止輸入端懸空。  6、減弱外部電流對晶片產生的幹擾。  7、保護cmos內的保護二極體,一般電流不大於10mA。  8、通過上拉或下拉來增加或減小驅動電流。
  • 單片機 | P0口什麼時候使用上拉電阻?
    由於P0口內部沒有上拉電阻,是開漏的,不管它的驅動能力多大,相當於它是沒有電源的,需要外部的電路提供。絕大多數情況下,P0口是必須加上拉電阻的。一般51單片機的P0口在作為地址/數據復用時不接上拉電阻。
  • 數字電路中上拉電阻和下拉電阻作用和選用選擇
    2、OC門電路必須加上拉電阻,才能使用。  3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。  4、在COMS晶片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供洩荷通路。  5、晶片的管腳加上拉電阻來提高輸出電平,從而提高晶片輸入信號的噪聲容限增強抗幹擾能力。
  • 上拉電阻如何拉高電平原理分析
    那個是用於電路啟動的電阻,電路工作時建立自身的工作狀態,並不是上拉或下拉電阻,類似單片上電工作,都要有個復位過程,但與復位有點區別,一旦復位後,這個電路就可以看作沒用了,即使拿掉也不會影響單片機工作,而這個是一直是要接入的,對於上拉電阻與下拉電阻來說,只針對輸入埠與輸出埠,其他都不算,在電路中,有時候有多餘的埠沒用,為了是電路更穩定工作,會接一隻上拉電阻或下拉電阻,具體還要看電路
  • avrI/O 埠操作和上拉電阻
    (一)上拉電阻:1、當TTL電路驅動COMS電路時,如果TTL電路輸出的高電平低於COMS電路的最低高電平(一般為3.5V),這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。2、OC門電路必須加上拉電阻,才能使用。3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。