0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C使用最少引腳的多設(shè)備通信

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Jeremy S. Cook ? 2022-07-04 09:45 ? 次閱讀

I 2 C 也經(jīng)常拼寫為 I2C,并且(很少)擴(kuò)展為完整的“內(nèi)部集成電路”綽號(hào),是飛利浦半導(dǎo)體(現(xiàn)為 NXP)于 1982 年發(fā)明的設(shè)備到設(shè)備通信協(xié)議。

從那時(shí)起,I2C 一直用于計(jì)算設(shè)備及其外圍設(shè)備之間的通信,并且自 2006 年 10 月 6 日起,它可以免費(fèi)實(shí)施,無(wú)需支付任何許可費(fèi)用。

電阻器以保持線路正常高電平。在其最基本的用法中,您可能有一個(gè) I2C 設(shè)備,例如 Arduino 板,充當(dāng)主設(shè)備(控制器),而單個(gè)從設(shè)備(外圍設(shè)備)設(shè)置為發(fā)出信號(hào),甚至在發(fā)出請(qǐng)求時(shí)發(fā)回?cái)?shù)據(jù)。

我已經(jīng)在許多設(shè)置中使用此接口進(jìn)行基本的一對(duì)一通信——例如我的JC Pro Macro 計(jì)算機(jī)輸入設(shè)備上的顯示——但實(shí)際上大量設(shè)備可以使用單個(gè)總線來(lái)傳遞消息。 該協(xié)議包括一個(gè)尋址字節(jié),隨后傳輸附加數(shù)據(jù)。128 個(gè)設(shè)備通??梢酝ㄟ^(guò) 7 個(gè)尋址位來(lái)訪問(wèn),因?yàn)榈?8 位用于指示是否要啟動(dòng)讀取或?qū)懭氩僮鳌?/p>

這是對(duì)協(xié)議工作原理的非常詳細(xì)的介紹,如果您想深入了解,TI 在此處更深入地解釋了詳細(xì)信息。通過(guò) i2c-bus.org還可以獲得大量信息。從概念的角度來(lái)看,這是一項(xiàng)有趣的技術(shù),但如果您只是想讓事情正常運(yùn)行,好消息是使用它的許多細(xì)節(jié)都可以通過(guò)預(yù)先編寫的庫(kù)來(lái)處理。

為什么選擇 I2C?

如前所述,I2C 的最大優(yōu)勢(shì)在于其接線簡(jiǎn)單,同時(shí)仍允許在多個(gè)設(shè)備之間進(jìn)行通信。另一種選擇是 SPI,它速度更快,能夠進(jìn)行一對(duì)多傳輸,但需要四根線。RS-232 就其本身而言,甚至比 I2C 更簡(jiǎn)單,因?yàn)樗恍枰侠?a target="_blank">電阻,但只能進(jìn)行一對(duì)一通信。值得注意的是,許多 I2C 設(shè)備已經(jīng)包含上拉電阻,因此在這種情況下,您甚至不必添加額外的組件。

人們可能還聽(tīng)說(shuō)過(guò)TWI(雙線接口)和SMBus(系統(tǒng)管理總線)這兩個(gè)術(shù)語(yǔ),它們都是 I2C 的子集。I2C 橫幅中還有多種樣式,具有不同的功能,包括 8 位和 10 位尋址方案以及從 100kbit/s 到 3.2Mbit/s 的時(shí)鐘速度。好消息是,經(jīng)過(guò) 39 年的開(kāi)發(fā)和標(biāo)準(zhǔn)化,如果你有一個(gè)類似 I2C 的設(shè)備,并且你把它扔到總線上,它很有可能會(huì)工作。在基于 Arduino 的系統(tǒng)的上下文中,傳輸是通過(guò)預(yù)定義引腳上的Wire 庫(kù)處理的,這使得這更加簡(jiǎn)單。

Arduino I2C 示例

如上圖所示,JC Pro Macro 2可以在其 I2C 引腳上安裝 OLED 顯示器以獲取用戶反饋,這些引腳從其“Arduino” Pro 微控制器上的引腳 2 (SDA) 和 3 (SCL) 斷開(kāi)。此處的設(shè)置主要是從 Adafruit ssd1306 庫(kù)示例中復(fù)制/粘貼的。我設(shè)計(jì)了這個(gè)設(shè)備,我必須做的一個(gè)更改是將第 36 行從 0x3D 更改為 0x3C,因?yàn)槲沂褂玫?eBay 購(gòu)買的屏幕地址與Adafruit 銷售的不同。

poYBAGLCRmyAaMXPAABn9AejjMQ984.png

在研究本文時(shí),我將 Adafruit 示例代碼(地址更改)直接加載到控制我的鍵盤的 Pro Micro 上。沒(méi)有任何進(jìn)一步的修改,它開(kāi)始在屏幕上顯示 Adafruit 示例。請(qǐng)注意,上面顯示的代碼中的第 35 行不是問(wèn)題,即使我沒(méi)有連接復(fù)位引腳。不管是不是這個(gè)結(jié)果,在開(kāi)發(fā)板重置后似乎確實(shí)需要一段時(shí)間才能重新開(kāi)始工作,但這通常不是什么大問(wèn)題。如前所述,如果您的地址正確,一切似乎都可以正常工作。

I2C 掃描儀:輕松獲取正確的 I2C 地址

pYYBAGLCRnKACkrUAACZphgh3CY589.png

如果您沒(méi)有正確的地址,一切都不會(huì)丟失,并且您不必在在線論壇上閑逛和/或猜測(cè)。使用這款 Arduino I2C 掃描儀實(shí)際上很容易找到。要安裝,只需在 Arduino IDE 庫(kù)管理器中搜索i2c 掃描儀。將執(zhí)行示例代碼加載到您的開(kāi)發(fā)板上并打開(kāi)您的串行監(jiān)視器。如果您有任何 I2C 設(shè)備連接到您的 Arduino,它們的地址將通過(guò)串行監(jiān)視器顯示。這是一個(gè)肯定可以節(jié)省大量挫敗感的工具!

可以用了!

雖然這個(gè)簡(jiǎn)短的概述應(yīng)該讓您開(kāi)始您的 I2C 之旅,但仍有大量的設(shè)備和技術(shù)可供探索。I2C 是一種在設(shè)備與設(shè)備之間以合理速度進(jìn)行通信的好方法,適用于許多應(yīng)用程序,同時(shí)使用最少的 GPIO 引腳。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NXP
    NXP
    +關(guān)注

    關(guān)注

    60

    文章

    1287

    瀏覽量

    184877
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1495

    瀏覽量

    124146
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6475

    瀏覽量

    187459
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于I2C總線的智能家居應(yīng)用

    、高效的特點(diǎn),在智能家居領(lǐng)域扮演著重要角色。 I2C總線簡(jiǎn)介 I2C總線是一種主機(jī)、從機(jī)的串行通信協(xié)議,由Philips Semicon
    的頭像 發(fā)表于 01-17 16:21 ?79次閱讀

    I2C總線的優(yōu)缺點(diǎn)分析

    設(shè)備之間的通信,這大大減少了所需的引腳數(shù)量,降低了硬件成本。此外,由于其簡(jiǎn)單性,I2C總線也易于實(shí)現(xiàn)和維護(hù)。 2.
    的頭像 發(fā)表于 01-17 15:50 ?76次閱讀

    I2C總線與Arduino的接口示例

    在現(xiàn)代電子設(shè)計(jì)中,I2C總線因其簡(jiǎn)單性和靈活性而廣受歡迎。它允許多個(gè)設(shè)備共享同一通信線路,從而節(jié)省空間和成本。Arduino,作為一個(gè)多功能的微控制器平臺(tái),自然也支持I2C
    的頭像 發(fā)表于 01-17 15:34 ?82次閱讀

    I2C總線的工作模式介紹

    在現(xiàn)代電子系統(tǒng)中,I2C總線作為一種主機(jī)、從機(jī)的串行通信協(xié)議,扮演著至關(guān)重要的角色。它允許多個(gè)設(shè)備共享同一總線,進(jìn)行數(shù)據(jù)傳輸,從而簡(jiǎn)化了
    的頭像 發(fā)表于 01-17 15:32 ?87次閱讀

    I2C總線在嵌入式系統(tǒng)中的應(yīng)用

    在現(xiàn)代電子設(shè)計(jì)中,嵌入式系統(tǒng)扮演著越來(lái)越重要的角色。這些系統(tǒng)通常需要與多種外圍設(shè)備進(jìn)行通信,以實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。I2C總線作為一種主機(jī)、
    的頭像 發(fā)表于 01-17 15:30 ?132次閱讀

    I2C總線協(xié)議詳細(xì)解析

    1. I2C總線簡(jiǎn)介 I2C總線由Philips Semiconductor(現(xiàn)為NXP Semiconductors)在1980年代初期開(kāi)發(fā)。它是一種主機(jī)總線,允許多個(gè)設(shè)備共享同一
    的頭像 發(fā)表于 01-17 15:22 ?133次閱讀

    I2C總線故障排除技巧

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個(gè)設(shè)備在兩條線上(數(shù)據(jù)線SDA和時(shí)鐘線SCL)進(jìn)行通信。由于其簡(jiǎn)單性和靈活性,I2C總線在嵌
    的頭像 發(fā)表于 01-17 15:20 ?118次閱讀

    I2C總線與單片機(jī)的連接

    在現(xiàn)代電子系統(tǒng)中,單片機(jī)(MCU)是核心控制單元,而I2C總線作為一種主機(jī)、從機(jī)的串行通信協(xié)議,因其簡(jiǎn)單、高效和節(jié)省引腳的特性而被廣泛應(yīng)
    的頭像 發(fā)表于 01-17 15:18 ?118次閱讀

    I2C總線設(shè)備地址設(shè)置方法

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個(gè)設(shè)備在兩條線上(數(shù)據(jù)線SDA和時(shí)鐘線SCL)進(jìn)行通信。每個(gè)設(shè)備都有一個(gè)唯一的地址,以確保數(shù)
    的頭像 發(fā)表于 01-17 15:17 ?117次閱讀

    I2C總線應(yīng)用實(shí)例分析

    在現(xiàn)代電子系統(tǒng)中,I2C總線因其簡(jiǎn)單、靈活和高效的特點(diǎn)而被廣泛應(yīng)用于各種設(shè)備之間的通信I2C總線概述 I2C總線由Philips(現(xiàn)為N
    的頭像 發(fā)表于 01-17 15:09 ?111次閱讀

    I2C總線與SPI總線的比較

    于低速通信。它只需要兩根線:數(shù)據(jù)線(SDA)和時(shí)鐘線(SCL),這使得I2C非常適合于節(jié)省引腳的應(yīng)用。 特點(diǎn) 主機(jī)支持 :多個(gè)微控制器可以共享同一
    的頭像 發(fā)表于 01-17 15:08 ?119次閱讀

    簡(jiǎn)單認(rèn)識(shí)I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開(kāi)發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來(lái),I2C協(xié)議因其高效、靈活和易于實(shí)現(xiàn)的特點(diǎn),在電子
    的頭像 發(fā)表于 07-25 18:06 ?1602次閱讀

    I2C、SPI、UART的通信過(guò)程還可以這樣理解

    到目前為止,I2C、SPI和UART等仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點(diǎn)和局限性,并輔以GIF動(dòng)圖展示。一、IIC協(xié)議I
    的頭像 發(fā)表于 05-23 08:10 ?7428次閱讀
    <b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b>過(guò)程還可以這樣理解

    SPI和I2C通信協(xié)議:應(yīng)用與區(qū)別

    本文深入解析了SPI和I2C這兩種通信協(xié)議的特點(diǎn)、工作原理和應(yīng)用場(chǎng)景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲(chǔ)器芯片和顯示器驅(qū)動(dòng)等領(lǐng)域;I2C適用于低速控制和傳感器數(shù)據(jù)傳輸,常用于溫度傳感器和ADC
    的頭像 發(fā)表于 04-22 16:45 ?1915次閱讀

    逼真動(dòng)畫(huà)展示I2C、SPI、UART的通信過(guò)程

    串行通信協(xié)議,通常用于連接低速設(shè)備,如傳感器、存儲(chǔ)器和其他外設(shè)。它使用兩根線(SCL和SDA)來(lái)實(shí)現(xiàn)雙向通信,具有地址定向性和主從模式。優(yōu)點(diǎn):設(shè)備
    的頭像 發(fā)表于 04-12 08:27 ?1029次閱讀
    逼真動(dòng)畫(huà)展示<b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b>過(guò)程