到底什麼是弱上下拉和強上下拉?

嵌入式小美老師 發佈 2024-02-29T17:15:04.669353+00:00

強、弱到底是什麼概念?當開關閉合時,MCU IO檢測到0,但是當時開關開啟時,IO引腳處於floating狀態,容易受干擾而處於未知狀態。

我們會經常聽到弱上拉、弱下拉,還有與之相對應的強上拉、強下拉。強、弱到底是什麼概念?阻值多大算是強和弱?

要搞清楚這個問題,首先要先理解一下上拉電阻、下拉電阻的概念。假設有下面這麼一個電路,MCU需要檢測開關的通斷。

當開關閉合時,MCU IO檢測到0,但是當時開關開啟時,IO引腳處於floating狀態,容易受干擾而處於未知狀態。

這時可以在IO口上加一個電阻到Vdd,這樣開關斷開時就能保證電平是固定的高電平1,這個電阻就叫做上拉電阻

下拉電阻類似,它的作用是開關斷開時,保證電平是固定的低電平0

那麼這個阻值該用多大呢?

首先阻值不能太小,因為太小,開關閉合時會產生較大的電流,會引起一來功耗大,二來也不安全。試想一下電阻為0是什麼後果。

另外阻值也不能太大,阻值太大,上拉/下拉的作用就變弱,越大越接近於開路,開關斷開時IO就越接近於浮空狀態,就越容易受干擾。試想一下阻值無窮大是什麼效果。

所以這個電阻既不太大,也不太小,一般是幾K到幾十K大小,兼顧了功耗和上下拉作用。

這裡就引入了強弱的概念,弱就是阻值大,強就是阻值小。


上拉

下拉

電阻大,電流小,上拉效果弱

電阻大,電流小,下拉效果弱

電阻小,電流大,上拉效果強

電阻小,電流大,下拉效果強

注意這只是個相對概念。

MCU一般內部也帶上下拉電阻,可以配置是否開啟,以STM32F103為例,從下圖可以看出 內部有上下來on/off開關。

嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和內容,導致工資要不上去!

無償分享大家一個資料包,差不多150多G。裡面學習內容、面經、項目都比較新也比較全!某魚上買估計至少要好幾十。

點擊這裡找小助理0元領取:加微信領取資料

手冊上寫的是弱上拉/下拉,阻值大小典型值為40kΩ

補充說明,上面介紹的上下拉電阻是對MCU IO輸入來說的,輸出也可能會用到,比如對於開漏輸出的IO,就必須加上上拉電阻,否則輸出不了高電平。原因是開漏輸出結構如下,漏極是開路的

它只有一個NMOS,當控制輸出0時,NMOS導通,Output Pin輸出0,但是當控制輸出1時,NMOS截止,輸出的是高阻態。要能輸出1,必須外面接一個上拉電阻。

這種結構的好處可以用在電平不匹配的場合,可以靈活的輸出1.8V/3.3V/5V等高電平,只要把Vdd接到不同的電壓上即可。另外它還具有」線與」的特性,即多個開漏引腳連接在一起,只有當每個都輸出1時它才能輸出高電平,只要有一個輸出0,所有的引腳電壓都被拉低。常見的IIC總線就是用這種結構

這個上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因為太小的話,IO口上就會承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會影響IIC的通信速度,因為總線上還有負載電容,電阻太大,電容充放電時間就會久,影響上升沿、下降沿時間。關於這個具體計算,可以參考TI的一篇文檔:https://www.ti.com/lit/ml/slva689/slva689.pdf?ts=1679814584051

該文檔詳細描述了計算方法:


最後問大家一個問題,IIC總線為什麼不用推輓輸出呢?歡迎留言區評論。

轉載自:TopSemic嵌入式 2

文章來源於到底什麼是弱上下拉和強上下拉?

原文連結:https://mp.weixin.qq.com/s/tbBzbBO19biOHIyDUrodhg

關鍵字: