IIC 是一個(gè)兩線串行通信總線,包含一個(gè) SCL 信號(hào)和 SDA 信號(hào),SCL 是時(shí)鐘信號(hào),從主設(shè)備發(fā)出,SDA 是數(shù)據(jù)信號(hào),是一個(gè)雙向的,設(shè)備發(fā)送數(shù)據(jù)和接收數(shù)據(jù)都是通過 SDA 信號(hào)。
在設(shè)計(jì) IIC 信號(hào)電路的時(shí)候我們會(huì)在 SCL 和 SDA 上加一個(gè)上拉電阻。
今天就來分享下,為什么要在 IIC 信號(hào)線上加上拉電阻。
主要原因就是 IIC 芯片的 SDA 和 SCL 的引腳是開漏輸出,就是只有一個(gè) NMOS 管,不像推挽輸出有兩個(gè) MOS 管。
當(dāng)芯片 SDA 和 SCL 的引腳輸出 MOS 管導(dǎo)通,IIC 信號(hào)線電平為低電平。
當(dāng)芯片 SDA 和 SCL 的引腳輸出 MOS 管關(guān)閉,如果沒有上拉電阻,IIC 信號(hào)線是處于一個(gè)高阻狀態(tài),電平是未知的,開漏輸出是沒有高電平的輸出能力的。
所以加上上拉電阻后,當(dāng)芯片 SDA 和 SCL 的引腳輸出 MOS 管關(guān)閉,IIC 信號(hào)線上的電平就是一個(gè)確切的高電平。
當(dāng)多個(gè) IIC 設(shè)備通過 IIC 總線接在一起,這就要求 IIC 設(shè)備間可以實(shí)現(xiàn)線與,而芯片的 IIC 引腳是開漏輸出的話就能很好的實(shí)現(xiàn)這個(gè)線與。只要有一個(gè) IIC 設(shè)備的引腳電平是低電平,那么相應(yīng)的 SCL 或 SDA 總線也會(huì)成為一個(gè)低電平。如果 IIC 設(shè)備引腳為推挽輸出,多個(gè) IIC 設(shè)備接在一條總線上很容易燒壞芯片。
IIC 上拉電阻的取值
IIC 信號(hào)的上拉電阻阻值不能太大,因?yàn)?IIC 芯片 SCL 和 SDA 引腳都存在寄生電容,同時(shí) SDA 和 SCL 信號(hào)的走線也會(huì)有寄生電容,整個(gè) IIC 總線上相當(dāng)于接了一個(gè)負(fù)載電容 Cl
上拉電阻過大,IIC 總線高電平的驅(qū)動(dòng)能力差,總線電平從 0 到 1 變化時(shí),等效為這個(gè) RC 的充電電路,上拉電阻越大,波形上升沿會(huì)變緩,一定程度會(huì)影響 IIC 的時(shí)序,可能會(huì)出現(xiàn)誤碼。所以這個(gè)上拉電阻不能太大。
IIC SDA 和 SCL 信號(hào)的上升時(shí)間和總線電容在不同的模式下有不同的要求,大家可以看下這個(gè)表。
IIC 總線信號(hào)上升時(shí)間可以根據(jù)公式 Tr=0.8473*R*Cl Cl 就是 IIC 總線的等效負(fù)載電容
IIC 信號(hào)上拉電阻也不能太小,如果太小了,當(dāng) IIC 引腳輸出低電平時(shí),灌進(jìn)芯片 IIC 引腳的電流會(huì)變大,可能會(huì)使 IIC 信號(hào)線的低電平變大,同時(shí) IO 口電流過大還可能燒壞芯片。
我們一般要求,IIC 引腳低電平時(shí),流過芯片 IIC 引腳的電流小于 3mA,所以如果是 3.3V 上拉的話,這個(gè)電阻就要 R>(3.3-VoL)l3KΩ=0.96KΩ ,其中 VoL 是 IIC 引腳為低電平時(shí)的最大電壓,一般是 0.4V。再加上前面的這個(gè)公式我們就可以確定這個(gè)上拉電阻的取值范圍。
電源電壓決定上拉電阻的最小值,總線負(fù)載電容決定上拉電阻的最大值。
IIC 信號(hào)上拉電阻取值常用的值就是 4.7K,一般小于 10K,大于 1K,如果 IIC 總線比較長(zhǎng),從設(shè)備比較多,可以適當(dāng)降低電阻。
如果 IIC 總線接了很多 IIC 設(shè)備,是不是每個(gè) IIC 設(shè)備都要加上拉電阻?
答案是否定的,我們只要在 SDA 和 SCL 總線上合適的位置各加一個(gè)上拉電阻即可,如果每個(gè)設(shè)備都加上拉,相當(dāng)于這些電阻是并聯(lián)在一起了,減小了電阻值。至于上拉電阻的位置一般沒有特別的要求。一般加在 IIC 的末端。
審核編輯:湯梓紅
-
上拉電阻
+關(guān)注
關(guān)注
5文章
360瀏覽量
30621 -
總線
+關(guān)注
關(guān)注
10文章
2881瀏覽量
88081 -
IIC
+關(guān)注
關(guān)注
11文章
300瀏覽量
38333 -
信號(hào)線
+關(guān)注
關(guān)注
2文章
172瀏覽量
21468 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17078
原文標(biāo)題:講解 I2C 信號(hào)線為何加上拉電阻(圖文并茂)
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論