微控制器IO詳解(上拉 下拉 準雙向 輸入 輸出 推輓 開漏)
一般微控制器都會提供上拉和下拉功能:
上拉
:將不確定的訊號,固定在高電平,
電源
到器件引腳上的電阻叫上拉電阻,作用是平時使用該引腳為高電平,上拉是對器件注入電流,即灌電流
下拉:
將不確定的訊號,固定到地點平,
地
到器件引腳的電阻叫下拉電阻,作用是平時使該引腳為低電平,下拉是從器件輸出電流,即拉電流
輸入:
上拉輸入 :將不確定的訊號透過一個電阻嵌位在高電平
下拉輸入 :把電壓拉低,拉到GND,將不確定的訊號拉到低電平
輸入浮空:容易受到干擾,檢測電平是不定的
模擬:傳統方式的輸入,數字模擬轉換
施密特輸入:防止電路干擾
基本電路的缺點是在讀取外部訊號的跳變沿時會出現抖動,施密特觸發器就是解決了上述抖動的問題
三態輸入:
三態電路可提供三種不同的輸出值:邏輯“0”,邏輯“1”和高阻態
高電平
低電平
高阻
輸出:
複用推輓和推輓輸出區別:
推輓複用不經過輸出資料暫存器(ODR)
。如果是採用推輓輸出,則該引腳電平直接由ODR控制,例如串列埠如果不是複用推輓就直接有ODR控制不受usart外設控制
推輓輸出:一般都是推輓輸出,真正的輸出高電平和低電平
推輓輸出特點:
這種配置的下拉與準雙向口和開漏配置相同,具有較強的拉電流能力,不同的是,具有持續的強上拉,無論有強大的高電平以及低電平驅動能力
開漏輸出:
不常見,如果作為邏輯輸出,可能是I2C,需要上拉電阻
關閉所有上拉電晶體,只驅動下拉電晶體,下拉與準雙向口下拉配置相同,因此只能輸出低電平(吸收電流),和高阻狀態。不能輸出高電平(輸也電流)
準雙向口
:
當IO輸出為高電平時,其驅動能力很弱,外部負載很容易將其拉至低電平。
當IO輸出為低電平時,其驅動能力很強,可吸收相當大的電流
準雙向口只能有效的讀取0,而對1則是採用讀取非零的方式,就是讀入的時候要先向io上寫1,再讀
真正的雙向io是不需要任何預操作可直接讀入讀出的
準雙向口做為輸入時,通個一個施密特觸如器和一個非門,用以干擾和濾波。
準雙向口用作輸入時,可對地接按鍵,如下圖1,當然也可以去掉R1直接接按鍵,當按鍵閉合時,埠被拉至低電平,當按鍵鬆開時,埠被內部“極弱上
拉”電晶體拉至高電平。當埠作為輸出時,不應對地外接LED如圖形控制,這樣埠的驅動能力很弱,LED只能發很微弱的光,如果要驅動LED,要採用圖
3的方法,這樣準雙向口在輸出為低時,可吸收20mA的電流,故能驅動LED。圖4的方法也可以,不過LED不發光時,埠要吸收收很大電流。