
由於在做系統設計時,總是希望能記錄一些資料,並在下次啟動時資料還存在,這時就可以使用EEPROM (Electrically Erasable Programmable ROM) 來做存取,而EEPROM是既可讀又可寫的一塊特殊的記憶體,它跟RAM不一樣的地方是它的內容是永久保存的,寫入的資料即使在電源關閉之後還是保存在 EEPROM裡,下次電源重開的時候仍然可以利用通訊的方式把它讀出並拿來使用。
而EEPROM 通常用來保存程式的設定值或系統所發生的相關事件。像小編以前在當韌體研發設計工程師時,在系統設計上會搭配RTC及EEPROM來將系統每一筆所發生的fault寫入EEPROM中,若斷電時也能在下次啟動時來得知系統故障的時間點及原因。所以EEPROM是系統設計不可缺少的好幫手。
EEPROM最常透過I2C的方式進行讀寫,I2C匯流排(Inter IC Bus)通訊協定自1992年由菲力浦(Philips)公司提出,由於僅透過主從架構和兩條傳輸線SCL(Serial Clock line)及SDA(Serial Data line)作串列傳送達成雙向傳輸,簡化了傳輸位元的接線,所有I2C 裝置都並接這兩條線路且連接的是開汲極(Open Drain)的 I/O 接腳,亦即接腳內部的開關在導通時為接地的邏輯低準位(Low),而不導通時則形同斷線浮接,不過 I2C 並不是要使用浮接狀態,而是要使用真正的邏輯高準位,所以在 SDA、SCL 兩線上都加入提升電阻(Pull-high resister),使未導通狀態下線路會處於邏輯高準位(High)狀態。目前已被廣泛應用於各種小型化IC間的資料傳輸如:LCD DRIVER、RAM、EEPROM、AD/DA轉換器及智慧型控制…等。
通常標準的I2C 通訊包含幾個部分:
1) 開始訊號 (START) 或者重複開始訊號(Repeated START) : SCL為高電位時,SDA由高電位降為低電位,開始傳送資料。

