EEPROM Introduction
前言
EEPROM是一種可以通過電子方式多次複寫的半導體儲存裝置。相比EPROM,EEPROM不需要用紫外線照射,也不需取下,就可以用特定的電壓,來抹除晶片上的資訊,以便寫入新的數據
這邊會介紹各廠牌優劣勢,與I2C寫入方法
EEPROM 種類說明
I2C
- 優點:只要2條線就可以傳輸,能夠減少微控制器的連接埠數量,能將多個EEPROM連接在同一個匯流排上
- 缺點:傳輸速率慢。傳輸速率為400K~1Mbit/s
SPI
- 優點:運轉頻率高,傳輸速度快
- 缺點:介面數量偏多
Microwire
- 與SPI相比傳輸速度慢 ,只有低容量的產品
各廠牌比較
目前ATMEL已慢慢較無人使用市占率如下如,右邊為粗略比較,可以看到目前ST為主要大宗,而ST的EEPROM目前有M25(SPI)與M24(I2C)為主要產品
EEPROM 讀寫控制(I2C通訊)
- 第一步要先確認需先確認預計使用的頻率(這部分與控制的電壓有關)
- 第二步務必遵照IC Datasheet的時序規範((這點非常重要) 會有可靠度問題)
- 第三步確認adress(以下圖M24256-BRMN6TP為例)
可以看到有3支硬體腳位需要設定去定義(M24256E-F設一款特別的EEPROM把硬體腳位都拔除需要用軟體寫入)
EEPROM 寫入流程
- 發送存取adress。24C02 一共256bit存取空間,adress從 0x00~0xFF,看需求在哪個位置就寫在哪個adress。
- 發送要存儲的數據的第一字節………..注意在寫數據的過程中,EEPROM 每個字節都回應”0”,來確認 EEPROM 數據成功,如果没有回應,說明寫入不成功
uint8_t I2C_EE_ByetsWrite(uint8_t* pBuffer,uint8_t WriteAddr,
uint16_t NumByteToWrite)
{
uint16_t i;
uint8_t res;
/*每寫一個bit調整一次I2C_EE_ByteWrite函数*/
for (i=0; i<NumByteToWrite; i++)
{
/*等待EEPROM準備*/
I2C_EE_WaitEepromStandbyState();
/*按字節寫入數據*/
res = I2C_EE_ByteWrite(pBuffer++,WriteAddr++);
}
return res;
}