找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1751|回復(fù): 1
收起左側(cè)

I2C總線為什么要接上拉電阻?

[復(fù)制鏈接]
ID:1077831 發(fā)表于 2023-10-16 14:25 | 顯示全部樓層 |閱讀模式
I2C由一條時(shí)鐘線和一條數(shù)據(jù)線組成,我們先看兩張圖。

圖片1.png 圖片2.png
I2C的波形

I2C協(xié)議基本形式
I2C的輸入輸出結(jié)構(gòu)采用的是開(kāi)漏的結(jié)構(gòu) 。 開(kāi)漏結(jié)構(gòu) 不能夠自主得到高電平,所以需要通過(guò)外部上拉電阻 來(lái)的實(shí)現(xiàn) I2C 通信過(guò)程中的高電平。上拉電阻 的大小取決于 I2C 不同模式時(shí)的灌電流大小。這種結(jié)構(gòu)作為邏輯輸出時(shí)候,必須要有外部上拉,一般是通過(guò)電阻加到VCC電源,平時(shí)保持高電平,當(dāng)輸入低電平時(shí)也可被拉低,也就是說(shuō)此時(shí)的開(kāi)漏輸出的可以作為外部的輸入I/O口。
因?yàn)槎鄠(gè)設(shè)備共用一條I2C總線,如果 I2C 使用的是推挽輸出,假設(shè)在某個(gè)時(shí)間,A設(shè)備和B設(shè)備剛好在不同的電平輸出,則會(huì)引起短路。
圖片3.png

下圖是I2C 獲得高低電平的情景。

圖片4.png
如果我們不接上拉電阻,設(shè)備的I2C SCL SDA引腳是浮空狀態(tài),浮空的意思是沒(méi)有確定的電平,可能是高,也可能是低。而根據(jù)I2C的協(xié)議,在總線空閑期間,SDA和SCL都是高電平,當(dāng)SDA出現(xiàn)下降沿時(shí)信號(hào)傳輸開(kāi)始,如果沒(méi)有確定的電平,一旦有外部的干擾,則可能會(huì)誤啟動(dòng)I2C。
上拉電阻取值
上面我們已經(jīng)說(shuō)到,由于I2C開(kāi)漏輸出需要輸出高電平我們就需要加上拉電阻。那上拉電阻該如何取值呢?通常情況下我們使用4.7kΩ,就能適用于大多數(shù)應(yīng)用場(chǎng)景。如果需要更精確的電阻值,我們可以使用以下公式:
Rmin = (Vcc - Vol) / Iol
Rmax=Tr / (0.8473 * Cb)
R 是所需的上拉電阻值(Ω);
Vcc 是供電電壓(伏特,V);
Vol 是I2C總線上的輸出電平電壓(通常是0.4V);
Iol 是I2C總線上的輸出電流(通常是3mA);
Tr是上升沿時(shí)間,Cb是總線電容,0.8473是標(biāo)準(zhǔn)上升沿時(shí)間;
通過(guò)上面這個(gè)公式可以計(jì)算出合適的取值。由上可知,供電電壓決定上拉電阻的最小值,總線負(fù)載電容決定上拉電阻的最大值。
常見(jiàn)的上拉電阻阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。
回復(fù)

使用道具 舉報(bào)

ID:301191 發(fā)表于 2023-10-23 04:06 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表