聯(lián)系我們???Contact

到底什么是弱上下拉和強(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)就是阻值小。 

上拉 下拉
              電阻大,電流小,上拉效果弱
電阻大,電流小,下拉效果弱
強(qiáng) 電阻小,電流大,上拉效果強(qiáng)
電阻小,電流大,下拉效果強(qiáng)



    注意,這只是個相對概念。


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


    


    手冊上寫的是弱上拉/下拉,阻值大小典型值為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,所有的引腳電壓都被拉低。


常見的IIC總線,就是用這種結(jié)構(gòu):


   


    這個上拉電阻的阻值選取也是有講究的,也是既不能太小,也不能太大。因?yàn)樘〉脑?,IO口上就會承受較大的輸入電流,而IO的輸入電流是有限制的。太大的話,會影響IIC的通信速度,因?yàn)榭偩€上還有負(fù)載電容,電阻太大,電容充放電時間就會久,影響上升沿、下降沿時間。


    關(guān)于這個具體計算,大家可以參考TI的一篇文檔:

    https://www.ti.com/lit/ml/slva689/slva689.pdf?ts=1679814584051



    該文檔詳細(xì)描述了計算方法: