首先,讓我們考慮雙路(單刀雙擲)開關(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)稱為浮動(dòng)。
上拉和下拉電阻
為了解決這個(gè)問題,需要在輸入端增加一個(gè)上拉電阻或下拉電阻(上拉電阻如下圖所示):
當(dāng)按鈕未按下時(shí),上拉電阻會(huì)將微控制器輸入拉高至+3.3V,提供一個(gè)明確定義的高電平。當(dāng)按下按鈕時(shí),微控制器輸入將直接連接(短路)到地(0V),提供明確定義的低電平。在這種情況下,會(huì)有一些電流流過上拉電阻,但由于電阻值相對(duì)較高,所以電流量很小。
您可能會(huì)注意到,電阻符號(hào)看起來像一個(gè)小彈簧,這正是它在本例中的作用。我們都使用過自動(dòng)關(guān)閉的門,比如公共設(shè)施中常見的門——除非你主動(dòng)把門打開,否則會(huì)有一個(gè)機(jī)制將它再次關(guān)閉。如果沒有自動(dòng)關(guān)閉機(jī)制(現(xiàn)在想象門沒有閂鎖機(jī)制),門會(huì)被風(fēng)吹動(dòng)或被進(jìn)出的人移動(dòng),它不會(huì)默認(rèn)到任何特定的位置。上拉(或下拉)電阻類似于這些門上的自動(dòng)關(guān)閉機(jī)制,它在不被主動(dòng)驅(qū)動(dòng)時(shí)將輸入保持在特定電平。因此,上拉電阻就像自動(dòng)關(guān)閉的門上的彈簧——除非有足夠強(qiáng)壯的人過來把門推開,否則門將默認(rèn)處于關(guān)閉位置。
顯然,情況可以反過來,按鈕可以連接到+3.3V(高電平),而下拉電阻可以用來保持輸入為低電平,否則:
然而,上拉電阻配置更常用。
開漏輸出
一些微控制器輸出可以設(shè)置為開漏(或者只能設(shè)置為開漏)。開漏輸出只能被驅(qū)動(dòng)為低電平,而不能被驅(qū)動(dòng)為高電平;輸出為低電平或浮動(dòng)。實(shí)質(zhì)上,輸出只是簡(jiǎn)單地連接到晶體管的漏極引腳(因此稱為開漏)。
當(dāng)控制線被驅(qū)動(dòng)為高電平時(shí),晶體管將輸出短路至地(0V),將其拉低。當(dāng)控制線被驅(qū)動(dòng)為低電平時(shí),晶體管為高阻態(tài),輸出懸空。
一些通信方案,例如I2C和CAN,使用這種布置來允許多個(gè)設(shè)備通過相同的通信線路進(jìn)行通信,而沒有短路的可能性(沖突,其中一個(gè)設(shè)備試圖將線路驅(qū)動(dòng)為高,而另一個(gè)設(shè)備試圖將線路驅(qū)動(dòng)為低);這種情況下,上拉電阻用于在線路未被有效拉低時(shí)保持高電平。
審核編輯:黃飛
-
微控制器
+關(guān)注
關(guān)注
48文章
7933瀏覽量
154109 -
電阻
+關(guān)注
關(guān)注
87文章
5617瀏覽量
174657 -
上拉電阻
+關(guān)注
關(guān)注
5文章
366瀏覽量
31112 -
下拉電阻
+關(guān)注
關(guān)注
4文章
153瀏覽量
20851 -
晶體管
+關(guān)注
關(guān)注
77文章
10004瀏覽量
141179
發(fā)布評(píng)論請(qǐng)先 登錄
開集、開漏與推挽輸出原理詳解

推挽輸出與開漏輸出
STM8L串行半雙工輸出很奇怪
STM32的GPIO的輸入,輸出與開漏,推挽,上拉,下拉的關(guān)系

評(píng)論