天天看點

I2C協定_EEPROM

I2C

**I2C 通訊協定(Inter-Integrated Circuit**)是由 Philips 公司開發的一種簡單、雙向二線制
           

同步串行總線, 隻需要兩根線即可在連接配接于總線上的器件之間傳送資訊。

I2C 通訊協定和通信接口在很多工程中有廣泛的應用,如資料采集領域的串行 AD, 圖
           

像處理領域的攝像頭配置,工業控制領域的 X 射線管配置等等。除此之外,由于 I2C 協定

占用引腳特别少, 硬體實作簡單, 可擴充型強, 現在被廣泛地使用在系統内多個內建電路

(IC)間的通訊。

I2C協定_EEPROM

I2C總線可以進行多個主裝置與多從裝置通信!

I2C協定_EEPROM
  1. 序列槽時鐘信号 SCL 和串行資料信号 SDA 均保持高電平,此時無 I2C 裝置工作;
  2. I2C 總線處于“空閑狀态”時, SCL依舊保持高電平時, SDA 出現由高電平轉為低電平的下降沿,産生一個起始信号,此時與總線相連的所有 I2C裝置在檢測到起始信号後,均跳出空閑狀态,等待控制位元組的輸入;
  3. 資料讀/寫狀态;
  4. 完成資料讀寫後,序列槽時鐘 SCL 保持高電平,當序列槽資料信号 SDA 産生一個由低電平轉為高電平的上升沿時, 産生一個停止信号, I2C 總線跳轉回“總線空閑狀态”。

資料讀/寫狀态

I2C協定_EEPROM

主機向從機每次隻寫入一位資料;串行資料線 SDA 中的資料在串行時鐘SCL 為低電平時進行資料更新,以保證在 SCL 為高電平時采集到 SDA 資料的穩定狀态。當一個完整位元組的指令或資料傳輸完成,從機裝置正确接收到指令或資料後,會通過拉低 SDA 為低電平,向主機裝置發送單比特的應答信号,表示資料或指令寫入成功。

**

注意:每個位元組在寫入資料的間隔為5ms。

**

I2C單位元組資料操作

單位元組存儲位址:

I2C協定_EEPROM

雙位元組存儲位址:

I2C協定_EEPROM

按高位在前低位在後的順序寫入單位元組存儲位址。

實驗目标

使用寫控制按鍵向 EEPROM 中寫入資料 1-10 共 10 位元組資料,使用讀控制按鍵讀出之前寫入到 EEPROM 的資料,并将讀出的資料在數位管上顯示出來。EEPROM 型号為 24C64 存儲容量為 64 Kbit(8Kbyte),需要 13位存儲位址才可滿足所有存儲單元的尋址,存儲位址為 2 位元組。
           
I2C協定_EEPROM

EEPROM 位址位 A0、 A1 接高電平, A2 接地;EEPROM 位址為 7’b1010_011。

實驗總體框圖

I2C協定_EEPROM

I2C寫入/讀入資料 狀态轉化圖

對比上面的單位元組寫入/讀入操作圖,可以轉化為下圖的狀态機,了解這個過程,那麼I2C就不難設計。

I2C協定_EEPROM

注意: EEPROM 讀寫操作的串行時鐘 scl 的頻率為 250KHz,且隻在資料讀寫操作

時時鐘信号才有效,其他時刻 scl 始終保持高電平。若直接使用系統時鐘生成串行時鐘

scl,計數器要設定較大的位寬,較為麻煩,是以先将系統時鐘分頻為頻率較小的時

鐘,在使用新分頻的時鐘來生成串行時鐘 scl。

以上内容借鑒野火開發指南