如何使用W7100A模擬I2C匯流排

2021-06-08 12:11:31 字數 1188 閱讀 8236

1.簡介

i2c(inter-integrated circuit)匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置,是微電子通訊控制領域廣泛採用的一種匯流排標準。這篇文件主要介紹如何使用imcu7100evb模擬i2c匯流排。在本文件中還用到了eeprom 24c02。

注意:本文是基於100引腳封裝的w7100a晶元,由於w7100a 64引腳封裝的gpio口的數目有限,所以這篇應用手冊可能不會正確地用於64引腳封裝的w7100a晶元。詳細資訊,請查閱w7100a 64引腳封裝的gpio引腳介紹。

2.i2c

i2c匯流排的特點如下:

-兩路匯流排線路:序列資料線(sda)和序列時鐘線(scl)

-可使用標準模式(100kbit/s),低速模式(10kbit/s)和高速模式

3.硬體配置

這一章將介紹evb和eeprorm(24c02)之間的電路。

(更多關於mcu封裝資訊:32引腳(8pin*4) 2.54mm間距,請參考附錄)

《注意》 由於本文使用24c02 eeprom,如果使用者使用的是不同的晶元,需要修改相關電路。

在本例中,eeprom位址(a0~a2)被設定為『000』,同時wp處於無效狀態。imcu7100evb的p3_0和p3_1口分別設定為sda和scl。這些埠內部已經具有上拉暫存器,因此不需要外部上拉。

4.軟體

4.1 初始化

4.2 讀位元組(byte read)

如圖2所示為i2c匯流排的讀(read)時序。裝置位址一共有8位,高4位為0x0a。在低4位中,其中3位用於位址線,餘下的一位為寫(write)(0)/讀(read)(1)標誌位。

i2c匯流排的讀(read)函式如下程式3所示。第乙個eep_writedata是虛擬的(dumy)。因為eeprom的位址為『000』,所以第二個eep_wirtedata的裝置位址也為『0000』。關於此單元函式的詳細資訊,請參考i2c相關**。

4.3 寫位元組(byte write)

如圖3所示為i2c匯流排的寫(write)時序。為了能夠寫入裝置位址,將w位置為0,程式4給出了如何在i2c-bus使用寫(write)程式的**。

5.模擬i2c匯流排讀/寫(read/write)演示

終端機設定

設定超級終端機(hyper terminal)來演示和執行i2c匯流排的讀/寫功能,具體過程如下:

6.附錄  imcu7100開發板布局

使用GPIO模擬I2C匯流排進行通訊

i2c匯流排的通訊過程 見圖4 8 主要包含三個主要階段 起始階段 資料傳輸階段和終止階段。1.起始階段 在i2c匯流排不工作的情況下,sda 資料線 和scl 時鐘線 上的訊號均為高電平。如果此時主機需要發起新的通訊請求,那麼需要首先通過sda和scl發出起始標誌。當scl為高電平時,sda電平從...

使用GPIO模擬I2C匯流排進行通訊

下面給出了模擬i2c匯流排進行讀寫的偽 用以說明如何使用gpio實現i2c通訊 define sda 254 定義sda所對應的gpio介面編號 define scl 255 定義scl所對應的gpio介面編號 define outp 1 表示gpio介面方向為輸出 define inp 0 表示g...

普通IO模擬i2c匯流排

一 i2c匯流排協議 二.普通io模擬i2c匯流排 三.簡單i2c裝置驅動例項 下面簡單的微控制器程式,理解之後會讓你對i2c匯流排有更深的認識,思路 1.向eeprom中通過i2c匯流排寫入乙個位元組 2.通過i2c匯流排讀出寫入的位元組 3.如果寫入和讀出成功點亮發光二極體 執行結果 d1亮,程...