到底什么是弱上下拉和強(qiáng)上下拉?
2023/4/17 18:06:03??????點(diǎn)擊:
我們經(jīng)常會聽到弱上拉、弱下拉,還有與之相對應(yīng)的強(qiáng)上拉、強(qiáng)下拉。那么,強(qiáng)、弱到底是什么概念?阻值多大算是強(qiáng)和弱?
要搞清楚這個問題,首先要先理解一下上拉電阻、下拉電阻的概念。假設(shè)有下面這么一個電路,MCU需要檢測開關(guān)的通斷。
當(dāng)開關(guān)閉合時,MCU IO檢測到0,但是當(dāng)時開關(guān)開啟時,IO引腳處于floating狀態(tài),容易受干擾而處于未知狀態(tài)。
這時可以在IO口上加一個電阻到Vdd,這樣開關(guān)斷開時就能保證電平是固定的高電平1,這個電阻就叫做上拉電阻。
下拉電阻類似,它的作用是開關(guān)斷開時,保證電平是固定的低電平0。
那么,這個阻值該用多大呢?
首先,阻值不能太小,因?yàn)樘?,開關(guān)閉合時會產(chǎn)生較大的電流,會引起一來功耗大,二來也不安全。試想一下電阻為0是什么后果。
另外,阻值也不能太大,阻值太大,上拉/下拉的作用就變?nèi)?,越大越接近于開路,開關(guān)斷開時IO就越接近于浮空狀態(tài),就越容易受干擾。試想一下阻值無窮大是什么效果。
所以,這個電阻既不太大,也不太小,一般是幾K到幾十K大小,兼顧了功耗和上下拉作用。
這里就引入了強(qiáng)弱的概念,弱就是阻值大,強(qiáng)就是阻值小。
手冊上寫的是弱上拉/下拉,阻值大小典型值為40kΩ
補(bǔ)充說明,上面介紹的上下拉電阻是對MCU IO輸入來說的,輸出也可能會用到,比如對于開漏輸出的IO,就必須加上上拉電阻,否則輸出不了高電平。原因是開漏輸出結(jié)構(gòu)如下,漏極是開路的
它只有一個NMOS,當(dāng)控制輸出0時,NMOS導(dǎo)通,Output Pin輸出0,但是當(dāng)控制輸出1時,NMOS截止,輸出的是高阻態(tài)。要能輸出1,必須外面接一個上拉電阻。
這個上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因?yàn)樘〉脑?,IO口上就會承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會影響IIC的通信速度,因?yàn)榭偩€上還有負(fù)載電容,電阻太大,電容充放電時間就會久,影響上升沿、下降沿時間。
該文檔詳細(xì)描述了計算方法:
要搞清楚這個問題,首先要先理解一下上拉電阻、下拉電阻的概念。假設(shè)有下面這么一個電路,MCU需要檢測開關(guān)的通斷。
當(dāng)開關(guān)閉合時,MCU IO檢測到0,但是當(dāng)時開關(guān)開啟時,IO引腳處于floating狀態(tài),容易受干擾而處于未知狀態(tài)。
這時可以在IO口上加一個電阻到Vdd,這樣開關(guān)斷開時就能保證電平是固定的高電平1,這個電阻就叫做上拉電阻。
下拉電阻類似,它的作用是開關(guān)斷開時,保證電平是固定的低電平0。
那么,這個阻值該用多大呢?
首先,阻值不能太小,因?yàn)樘?,開關(guān)閉合時會產(chǎn)生較大的電流,會引起一來功耗大,二來也不安全。試想一下電阻為0是什么后果。
另外,阻值也不能太大,阻值太大,上拉/下拉的作用就變?nèi)?,越大越接近于開路,開關(guān)斷開時IO就越接近于浮空狀態(tài),就越容易受干擾。試想一下阻值無窮大是什么效果。
所以,這個電阻既不太大,也不太小,一般是幾K到幾十K大小,兼顧了功耗和上下拉作用。
這里就引入了強(qiáng)弱的概念,弱就是阻值大,強(qiáng)就是阻值小。
|
上拉 | 下拉 |
弱 |
電阻大,電流小,上拉效果弱 |
電阻大,電流小,下拉效果弱 |
強(qiáng) |
電阻小,電流大,上拉效果強(qiáng) |
電阻小,電流大,下拉效果強(qiáng) |
注意,這只是個相對概念。
手冊上寫的是弱上拉/下拉,阻值大小典型值為40kΩ
補(bǔ)充說明,上面介紹的上下拉電阻是對MCU IO輸入來說的,輸出也可能會用到,比如對于開漏輸出的IO,就必須加上上拉電阻,否則輸出不了高電平。原因是開漏輸出結(jié)構(gòu)如下,漏極是開路的
它只有一個NMOS,當(dāng)控制輸出0時,NMOS導(dǎo)通,Output Pin輸出0,但是當(dāng)控制輸出1時,NMOS截止,輸出的是高阻態(tài)。要能輸出1,必須外面接一個上拉電阻。
這種結(jié)構(gòu)的好處可以用在電平不匹配的場合,可以靈活的輸出1.8V/3.3V/5V等高電平,只要把Vdd接到不同的電壓上即可。另外它還具有”線與”的特性,即多個開漏引腳連接在一起,只有當(dāng)每個都輸出1時它才能輸出高電平,只要有一個輸出0,所有的引腳電壓都被拉低。
這個上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因?yàn)樘〉脑?,IO口上就會承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會影響IIC的通信速度,因?yàn)榭偩€上還有負(fù)載電容,電阻太大,電容充放電時間就會久,影響上升沿、下降沿時間。
關(guān)于這個具體計算,大家可以參考TI的一篇文檔:
https://www.ti.com/lit/ml/slva689/slva689.pdf?ts=1679814584051
該文檔詳細(xì)描述了計算方法:
- 上一篇:為什么常用旁路電容是0.1uf,而不是其它值? 2023/4/19
- 下一篇:雁蕩山之旅(致青春 至實(shí)邦 快樂起航 共登高峰) 2023/4/10