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