前文小編介紹了什么是I2C和I3C及I2C接口和I3C接口有什么區(qū)別,本文接著介紹I2C總線需不需要上拉電阻,該上拉電阻應(yīng)該如何取值。
I2C總線是飛利浦公司開發(fā)的一種2線的半雙工串行通信協(xié)議,通常用于電子設(shè)備的短距離通信。I2C總線具有兩根總線,分別是時(shí)鐘線SCL和數(shù)據(jù)線SDA;SCL來進(jìn)行通信雙方信號(hào)同步,SDA用于進(jìn)行數(shù)據(jù)交互。I2c總線是多主多從的拓?fù)浣Y(jié)構(gòu),支持總線仲裁。
I2C總線是一種我們使用的比較多的總線協(xié)議了,在使用時(shí)都考慮過是否要加上拉電阻?答案是要加的,但是我們大多數(shù)小伙伴都沒有仔細(xì)想過為什么要加上拉電阻。
我們都知道I2C協(xié)議中規(guī)定I2C的SCL和SDA都是開漏輸出,開漏輸出只能輸出低電平不能輸出高電平,我們想要輸出高電平就需要使用加上拉電阻來實(shí)現(xiàn)。那為什么I2C協(xié)議中為什么要規(guī)定SCL和SDA是開漏輸出?首先I2C是多主多從結(jié)構(gòu),一條總線上掛有多個(gè)設(shè)備;如果是是推挽輸出的時(shí)候,當(dāng)兩個(gè)設(shè)備的電平不同時(shí)則會(huì)造成短路。
開漏輸出除了能防止多設(shè)備使用時(shí)造成短路,還具有線與功能。我們知道I2C支持多主多從,當(dāng)多個(gè)設(shè)備同時(shí)搶占總線時(shí)就需要仲裁機(jī)制。I2C總線是通過線與機(jī)制來實(shí)現(xiàn)總線仲裁的,在I2C協(xié)議中定義SDA為高電平時(shí),說明總線空閑主設(shè)備可以占用總線,占用后將其拉低開始傳傳輸數(shù)據(jù)。SDA為低電平期間,標(biāo)志總線已經(jīng)被一個(gè)主設(shè)備占用其余主設(shè)備將退出。由于有上拉電阻,默認(rèn)狀態(tài)下SDA是高電平表示總線空閑,當(dāng)總線上的一個(gè)設(shè)備將SDA拉低后,由于線與邏輯,SDA整條線都為低,其余設(shè)備就無法搶占總線了從而達(dá)到了仲裁的效果。
上面我們已經(jīng)說到,由于i2c開漏輸出需要輸出高電平我們就需要加上拉電阻。那上拉電阻該如何取值呢?通常情況下我們使用4.7kΩ,就能適用于大多應(yīng)用。如果需要更精確的電阻值,我們可以使用以下電阻值計(jì)算公式。
R = (Vcc - Vol) / (Iol * 3)
R 是所需的上拉電阻值(Ω)。
Vcc 是供電電壓(伏特,V)。
Vol 是I2C總線上的輸出電平電壓(通常是0.4V)。
Iol 是I2C總線上的輸出電流(通常是3mA)。
通過上面這個(gè)公式可以計(jì)算出合適的取值。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)-3