到底什么是弱上下拉和強(qiáng)上下拉?
2023/4/17 18:06:03??????點(diǎn)擊:
我們經(jīng)常會(huì)聽(tīng)到弱上拉、弱下拉,還有與之相對(duì)應(yīng)的強(qiáng)上拉、強(qiáng)下拉。那么,強(qiáng)、弱到底是什么概念?阻值多大算是強(qiáng)和弱?
要搞清楚這個(gè)問(wèn)題,首先要先理解一下上拉電阻、下拉電阻的概念。假設(shè)有下面這么一個(gè)電路,MCU需要檢測(cè)開(kāi)關(guān)的通斷。

當(dāng)開(kāi)關(guān)閉合時(shí),MCU IO檢測(cè)到0,但是當(dāng)時(shí)開(kāi)關(guān)開(kāi)啟時(shí),IO引腳處于floating狀態(tài),容易受干擾而處于未知狀態(tài)。
這時(shí)可以在IO口上加一個(gè)電阻到Vdd,這樣開(kāi)關(guān)斷開(kāi)時(shí)就能保證電平是固定的高電平1,這個(gè)電阻就叫做上拉電阻。

下拉電阻類似,它的作用是開(kāi)關(guān)斷開(kāi)時(shí),保證電平是固定的低電平0。

那么,這個(gè)阻值該用多大呢?
首先,阻值不能太小,因?yàn)樘?,開(kāi)關(guān)閉合時(shí)會(huì)產(chǎn)生較大的電流,會(huì)引起一來(lái)功耗大,二來(lái)也不安全。試想一下電阻為0是什么后果。
另外,阻值也不能太大,阻值太大,上拉/下拉的作用就變?nèi)酰酱笤浇咏陂_(kāi)路,開(kāi)關(guān)斷開(kāi)時(shí)IO就越接近于浮空狀態(tài),就越容易受干擾。試想一下阻值無(wú)窮大是什么效果。
所以,這個(gè)電阻既不太大,也不太小,一般是幾K到幾十K大小,兼顧了功耗和上下拉作用。
這里就引入了強(qiáng)弱的概念,弱就是阻值大,強(qiáng)就是阻值小。

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

補(bǔ)充說(shuō)明,上面介紹的上下拉電阻是對(duì)MCU IO輸入來(lái)說(shuō)的,輸出也可能會(huì)用到,比如對(duì)于開(kāi)漏輸出的IO,就必須加上上拉電阻,否則輸出不了高電平。原因是開(kāi)漏輸出結(jié)構(gòu)如下,漏極是開(kāi)路的

它只有一個(gè)NMOS,當(dāng)控制輸出0時(shí),NMOS導(dǎo)通,Output Pin輸出0,但是當(dāng)控制輸出1時(shí),NMOS截止,輸出的是高阻態(tài)。要能輸出1,必須外面接一個(gè)上拉電阻。


這個(gè)上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因?yàn)樘〉脑?,IO口上就會(huì)承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會(huì)影響IIC的通信速度,因?yàn)榭偩€上還有負(fù)載電容,電阻太大,電容充放電時(shí)間就會(huì)久,影響上升沿、下降沿時(shí)間。
該文檔詳細(xì)描述了計(jì)算方法:

要搞清楚這個(gè)問(wèn)題,首先要先理解一下上拉電阻、下拉電阻的概念。假設(shè)有下面這么一個(gè)電路,MCU需要檢測(cè)開(kāi)關(guān)的通斷。

當(dāng)開(kāi)關(guān)閉合時(shí),MCU IO檢測(cè)到0,但是當(dāng)時(shí)開(kāi)關(guān)開(kāi)啟時(shí),IO引腳處于floating狀態(tài),容易受干擾而處于未知狀態(tài)。
這時(shí)可以在IO口上加一個(gè)電阻到Vdd,這樣開(kāi)關(guān)斷開(kāi)時(shí)就能保證電平是固定的高電平1,這個(gè)電阻就叫做上拉電阻。

下拉電阻類似,它的作用是開(kāi)關(guān)斷開(kāi)時(shí),保證電平是固定的低電平0。

那么,這個(gè)阻值該用多大呢?
首先,阻值不能太小,因?yàn)樘?,開(kāi)關(guān)閉合時(shí)會(huì)產(chǎn)生較大的電流,會(huì)引起一來(lái)功耗大,二來(lái)也不安全。試想一下電阻為0是什么后果。
另外,阻值也不能太大,阻值太大,上拉/下拉的作用就變?nèi)酰酱笤浇咏陂_(kāi)路,開(kāi)關(guān)斷開(kāi)時(shí)IO就越接近于浮空狀態(tài),就越容易受干擾。試想一下阻值無(wú)窮大是什么效果。
所以,這個(gè)電阻既不太大,也不太小,一般是幾K到幾十K大小,兼顧了功耗和上下拉作用。
這里就引入了強(qiáng)弱的概念,弱就是阻值大,強(qiáng)就是阻值小。
|
上拉 | 下拉 |
弱 |
電阻大,電流小,上拉效果弱 |
電阻大,電流小,下拉效果弱 |
強(qiáng) |
電阻小,電流大,上拉效果強(qiáng) |
電阻小,電流大,下拉效果強(qiáng) |
注意,這只是個(gè)相對(duì)概念。

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

補(bǔ)充說(shuō)明,上面介紹的上下拉電阻是對(duì)MCU IO輸入來(lái)說(shuō)的,輸出也可能會(huì)用到,比如對(duì)于開(kāi)漏輸出的IO,就必須加上上拉電阻,否則輸出不了高電平。原因是開(kāi)漏輸出結(jié)構(gòu)如下,漏極是開(kāi)路的

它只有一個(gè)NMOS,當(dāng)控制輸出0時(shí),NMOS導(dǎo)通,Output Pin輸出0,但是當(dāng)控制輸出1時(shí),NMOS截止,輸出的是高阻態(tài)。要能輸出1,必須外面接一個(gè)上拉電阻。

這種結(jié)構(gòu)的好處可以用在電平不匹配的場(chǎng)合,可以靈活的輸出1.8V/3.3V/5V等高電平,只要把Vdd接到不同的電壓上即可。另外它還具有”線與”的特性,即多個(gè)開(kāi)漏引腳連接在一起,只有當(dāng)每個(gè)都輸出1時(shí)它才能輸出高電平,只要有一個(gè)輸出0,所有的引腳電壓都被拉低。

這個(gè)上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因?yàn)樘〉脑?,IO口上就會(huì)承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會(huì)影響IIC的通信速度,因?yàn)榭偩€上還有負(fù)載電容,電阻太大,電容充放電時(shí)間就會(huì)久,影響上升沿、下降沿時(shí)間。
關(guān)于這個(gè)具體計(jì)算,大家可以參考TI的一篇文檔:
https://www.ti.com/lit/ml/slva689/slva689.pdf?ts=1679814584051
該文檔詳細(xì)描述了計(jì)算方法:

- 上一篇:為什么常用旁路電容是0.1uf,而不是其它值? 2023/4/19
- 下一篇:雁蕩山之旅(致青春 至實(shí)邦 快樂(lè)起航 共登高峰) 2023/4/10