本文先針對讀寫控制說明, 之後會探討EEPROM讀寫錯誤的問題.
I2C(Inter-Integrated Circuit) 中文名稱為積體電路匯流排, 屬於一種傳通訊傳輸協定, 是飛利浦公司在1980年所建立, 傳輸時只要控制主要的兩條控制線, 就能進行通訊.
EEPROM(Electrically-Erasable Programmable Read-Only Memory)中文名稱為 電子抹除式可複寫唯讀記憶體, 以往EPORM需透過UV清除內部資料, 而EEPROM是透過高壓來清除.
採用I2C通訊格式的EEPROM主要透過兩條控制線, 分別為資料線SDA及時脈線SCL, 採串列方式將資料寫入或讀出, 所以通常稱為Serial EEPROM.
這類型的IC共有8個腳位, A0-A2是設定通訊裝置的地址, SDA為資料線, SCL為時脈線, WP為寫入保護(高電位有效).
※因WP沒有劃上引線,代表為高電位有效, 就是有保護作用, 當要寫入資料時就需把這腳位拉至低電位.
再寫入前, 需先確認預計使用的頻率, 這部分與控制的電壓有關.
務必遵照IC Datasheet的時序規範 (這點非常重要) 會有可靠度問題
當SCL為 Low時, 屬於不穩定狀態, 可以變動SDA的資料.
當SCL為High時, 屬於穩定狀態, 可以讀取SDA資料.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ㄧ個完整的時序, 可分成4個區塊.
1.起始及結束控制
2.裝置地址控制
剛開始需先告知要通訊的裝置地址, 所以是寫入狀態(低電位).
傳送的時候由高位元先送, 再送低位元.
若地址設A0=0,A1=1,A2=0
傳遞順序為1->0->1->0 ->0->1->0 ->0
3.回應控制
當寫入的資料傳送8bit完畢後, 必須讓SDA把持高電位, 若裝置接收完畢則會把SDA拉至低電位
反之, 當裝置資料回傳8bit完畢後, 會把SDA拉至高電位, 此時若接收完成則需拉至低電位.
4.寫入或讀取資料控制
寫及讀又可分為連續讀取或索引讀取, 顧名思義就是從第一個開始讀或是從指定位置開始讀(這裡的位置指的是內部存放資料的位置).
引文:
ATMEL Datasheet http://www.atmel.com/images/doc0180.pdf
留言列表