首先,讓我們考慮雙路(單刀雙擲)開關(guān)的情況:
當(dāng)開關(guān)接通時(shí),微控制器輸入將連接到+3.3V,意味著高電平。當(dāng)開關(guān)關(guān)閉時(shí),微控制器輸入將連接到0V,表示低電平。但是如果我們只有一個(gè)按鈕呢?
當(dāng)按下按鈕時(shí),微控制器輸入將連接到0V,表示低電平。然而,當(dāng)按鈕未被按下時(shí),微控制器輸入實(shí)際上沒有連接到任何東西:
這就好像什么都沒有連接一樣:
這種情況下的輸入電平是多少?高還是低?因?yàn)樗鼪]有真正連接到任何東西,所以輸入可以是任何東西,這取決于環(huán)境中的靜電或電磁輻射。它可能只是接收無線電波(像天線一樣),然后在弱定義的高和低狀態(tài)之間來回轉(zhuǎn)換。微控制器輸入沒有明確定義,可以是任意值(隨機(jī))的這種狀態(tài)稱為浮動。
上拉和下拉電阻
為了解決這個(gè)問題,需要在輸入端增加一個(gè)上拉電阻或下拉電阻(上拉電阻如下圖所示):
當(dāng)按鈕未按下時(shí),上拉電阻會將微控制器輸入拉高至+3.3V,提供一個(gè)明確定義的高電平。當(dāng)按下按鈕時(shí),微控制器輸入將直接連接(短路)到地(0V),提供明確定義的低電平。在這種情況下,會有一些電流流過上拉電阻,但由于電阻值相對較高,所以電流量很小。
您可能會注意到,電阻符號看起來像一個(gè)小彈簧,這正是它在本例中的作用。我們都使用過自動關(guān)閉的門,比如公共設(shè)施中常見的門——除非你主動把門打開,否則會有一個(gè)機(jī)制將它再次關(guān)閉。如果沒有自動關(guān)閉機(jī)制(現(xiàn)在想象門沒有閂鎖機(jī)制),門會被風(fēng)吹動或被進(jìn)出的人移動,它不會默認(rèn)到任何特定的位置。上拉(或下拉)電阻類似于這些門上的自動關(guān)閉機(jī)制,它在不被主動驅(qū)動時(shí)將輸入保持在特定電平。因此,上拉電阻就像自動關(guān)閉的門上的彈簧——除非有足夠強(qiáng)壯的人過來把門推開,否則門將默認(rèn)處于關(guān)閉位置。
顯然,情況可以反過來,按鈕可以連接到+3.3V(高電平),而下拉電阻可以用來保持輸入為低電平,否則:
然而,上拉電阻配置更常用。
開漏輸出
一些微控制器輸出可以設(shè)置為開漏(或者只能設(shè)置為開漏)。開漏輸出只能被驅(qū)動為低電平,而不能被驅(qū)動為高電平;輸出為低電平或浮動。實(shí)質(zhì)上,輸出只是簡單地連接到晶體管的漏極引腳(因此稱為開漏)。
當(dāng)控制線被驅(qū)動為高電平時(shí),晶體管將輸出短路至地(0V),將其拉低。當(dāng)控制線被驅(qū)動為低電平時(shí),晶體管為高阻態(tài),輸出懸空。
一些通信方案,例如I2C和CAN,使用這種布置來允許多個(gè)設(shè)備通過相同的通信線路進(jìn)行通信,而沒有短路的可能性(沖突,其中一個(gè)設(shè)備試圖將線路驅(qū)動為高,而另一個(gè)設(shè)備試圖將線路驅(qū)動為低);這種情況下,上拉電阻用于在線路未被有效拉低時(shí)保持高電平。
審核編輯:黃飛
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151316 -
電阻
+關(guān)注
關(guān)注
86文章
5507瀏覽量
171919 -
上拉電阻
+關(guān)注
關(guān)注
5文章
359瀏覽量
30606 -
下拉電阻
+關(guān)注
關(guān)注
4文章
147瀏覽量
20524 -
晶體管
+關(guān)注
關(guān)注
77文章
9682瀏覽量
138079
發(fā)布評論請先 登錄
相關(guān)推薦
評論