I2C總線的設(shè)計一般都會采用OC或者OD門,如果內(nèi)部的芯片中沒有設(shè)置上拉電阻,那么就必須要在外部接一個上拉來保證高電平的輸出,從而增加這一系統(tǒng)的穩(wěn)定性。一般情況下I/O端驅(qū)動能力會保持在2mA-4mA左右的量級范圍內(nèi),而OC或者OD門的導(dǎo)通電壓一般為0.4V左右,手機中加在上拉電阻上的電壓一般都是2.8V。在該設(shè)定下,I2C上拉電阻的最小值不能低于800R。當(dāng)電壓為5V時,上拉最小值不能低于1.5K。
在這種情況下想要中斷和GPIO信號本身,是不需要增加多余的驅(qū)動設(shè)備的,只需要保持一個高電平就可以了。此時,上拉電阻可以選取大一點的阻值以減小功耗,但須注意一個問題,那就是這個阻值不能太大,經(jīng)驗值一般在4.7-100K之間,否則會和PCB走線,器件等負(fù)載電容影響信號上升時間。
由于目前大多數(shù)的I2C接口都采用了OD機制,所以工程師在實際操作的過程中,需要另外加一個上拉電阻才能維持輸出高電平,上拉電阻的最小值須符合之前所提到的要求。
那么,I2C上拉電阻最大值都與哪些因素有關(guān)呢?
通常情況下,I2C總線的傳輸速率分為標(biāo)準(zhǔn)模式和快速模式(在快速模式的情況下,I2C總線傳輸速率為400Kbit/s),總線負(fù)載的最大容限分別是400pF和200pF。根據(jù)I2C總線協(xié)議的要求,I2C上拉電阻最大值是被總線電容所限制。下圖是上拉電阻的取值數(shù)據(jù)圖,圖中的Rs指的是I2C設(shè)備串聯(lián)在I2C總線上的電阻,它可以有效的防止SDA和SCL高電壓毛刺波產(chǎn)生。
由上圖的曲線走勢可以看出,上拉電阻的最小值由上拉電源決定,最大值由總線電容決定。
結(jié)語
通過對I2C上拉電阻的實例分析,我們可以看出,上拉電阻在I2C總線中可以起到維持輸出電平穩(wěn)定、保護(hù)芯片的作用。而上拉電阻的最大阻值則是由總線的電容所決定的,工程師在進(jìn)行上拉選取時,需要依據(jù)總線電容和上拉電源的電壓來判斷。
相關(guān)閱讀:
元件選型必備:選取上拉電阻的四大原則
管腳和單片機為什么要接上拉電阻?
怎么最大限度發(fā)揮上拉電阻的效果?