還搞不懂浮動輸入和開漏輸出?一定要看這一文,圖文結合
一、浮動輸入
首先,考慮雙向(單刀雙擲)開關情況
當開關打開時,為控制輸入將連接到 +3.3V,即高電平。當開關關閉時,微控制器輸入將連接到 0V(即低電平)。但是,如果只有一個按鈕怎么辦?
開關打開
當按下按鈕時,微控制器輸入將連接到 0V(即低電平)。
按下按鈕
然而,當未按下按鈕時,微控制器輸入并沒有真正連接到組件:
未按下按鈕
就好像沒有連接一樣:
等效
在這種情況下,輸入電平是多少?高還是低?因為它沒有真正連接到任何東西,所以輸入可以是任何東西,具體取決于環(huán)境中的靜電或電磁輻射。
它可能只是簡單地接收無線電波(如天線)并在弱定義的高狀態(tài)和低狀態(tài)之間來回翻轉。這種狀態(tài),其中微控制器輸入沒有明確定義并且可以是任何東西(隨機),稱為浮動。
二、上拉和下拉電阻
為了解決這個問題,需要在輸入端添加一個上拉電阻或下拉電阻(上拉電阻如下圖所示):
上拉電阻
當按鈕未被按下時,上拉電阻會將微控制器輸入拉至+3.3V,提供明確定義的高電平。當按下按鈕時,微控制器輸入將直接連接(短路)至地 (0V),提供明確定義的低電平。在這種情況下,一些電流將流過上拉電阻,但由于電阻值相對較高,因此電流量很小。
這里可以發(fā)現(xiàn)電阻符號看起來像一個小彈簧,這是它在這種情況下的功能。比如自動關閉的門,除非你主動打開門,不然的話,會有機制門會自動關閉。如果沒有自動關閉機制(假設門沒有閂鎖機制),門會被進出的人移動,不會默認特定的位置。
上拉(或下拉)電阻類似于這些門上的自動關閉機制,因為它在未主動驅動時將輸入保持在特定電平。
情況可以反過來,因為按鈕可以連接到+3.3V(高),并且可以使用下拉電阻來保持輸入低。不過,上拉電阻配置比較常見
下拉電阻
三、開漏輸出
一些微控制器輸出可以設置為漏極開路(或僅可用作漏極開路)。開漏輸出是只能驅動為低電平而不能驅動為高電平的輸出;輸出為低電平或浮動。
本質上,輸出只是連接到晶體管的漏極引腳(因此稱為開漏)。
開漏
當控制線被驅動為高電平時,晶體管將輸出短路至地 (0V),將其拉低。當控制線被驅動為低電平時,晶體管處于高阻抗(高電阻)并且輸出處于浮動狀態(tài)。
一些通信方案,例如 I2C 和 CAN,使用它來允許多個設備通過相同的通信線路進行通信,而不會出現(xiàn)短路(沖突,即一個設備試圖將線路驅動為高電平,而另一個設備試圖將線路驅動為高電平)。它很低)。
在這些情況下,上拉電阻用于在未主動將線路驅動為低電平時將線路保持為高電平。
來源:
https://www.labcenter.com/blog/sim-inputs-outputs/
評論