EEPROM(Electrically Erasable Programmable readonly memory)是指帶電可編程只讀存儲(chǔ)器。是一種掉電后數(shù)據(jù)不丟失的存儲(chǔ)芯片。
中穎Flash型MCU都集成有EEPROM,EEPROM用來(lái)存放用戶數(shù)據(jù)。EEROM大小可以通過(guò)option(代碼選項(xiàng))選擇0~4K不等。EEPROM按照扇區(qū)進(jìn)行劃分,每個(gè)扇區(qū)的大小512字節(jié)(較早的產(chǎn)品,每個(gè)扇區(qū)大小256字節(jié)),最多支持8個(gè)扇區(qū)。
中穎的EEPROM編程/擦除次數(shù):至少100000次
中穎的EEPROM數(shù)據(jù)保存年限:至少10年
中穎EEPROM的操作原則:
1 必須關(guān)閉所有中斷
如果在操作EEPROM期間,不關(guān)閉中斷,可能會(huì)導(dǎo)致程序跑飛或者其它異常情況;中穎MCU要求對(duì)于EEPROM的擦除和編程,需要按照規(guī)定關(guān)閉所有中斷(EA=0),等到編程完成后再打開(kāi)中斷。
2 如何訪問(wèn)EEPROM
中穎芯片對(duì)于EEPROM的讀、擦和寫都是通過(guò)寄存器FLASHCON的FAC位置1來(lái)操作。當(dāng)FAC=0時(shí),MOVC指令或者SSP功能訪問(wèn)Main Block區(qū)域;當(dāng)FAC=1時(shí),MOVC指令或者SSP功能訪問(wèn)類EEPROM區(qū)域或信息存儲(chǔ)區(qū)。
A7H,Bank0 |
第7位 |
第6位 |
第5位 |
第4位 |
第3位 |
第2位 |
第1位 |
第0位 |
FLASHCON |
- |
- |
- |
- |
- |
- |
FAC |
|
讀/寫 |
- |
- |
- |
- |
- |
- |
讀/寫 |
讀/寫 |
復(fù)位值 (POR/WDT/LVR/PIN) |
- |
- |
- |
- |
- |
- |
0 |
0 |
位編號(hào) |
位符號(hào) |
說(shuō)明 |
7-1 |
- |
保留位 |
0 |
FAC |
訪問(wèn)控制 0:MOVC指令或者SSP功能訪問(wèn)Main Block區(qū)域 1:MOVC指令或者SSP功能訪問(wèn)類EEPROM區(qū)域或信息存儲(chǔ)區(qū) |
3 操作EEPROM前,清WDT
在對(duì)EEPROM的操作前,清WDT,保證操作期間不溢出
4 抗干擾
同時(shí),為了抗干擾,防止誤操作,EEPROM編程可以參考如下例程:
uchar ssp_flag;
voidEEPromSectorErase(UCHAR nAddrH)// 扇區(qū)擦除
{
ssp_flag= 0xA5;
_push_(IEN0);//中斷控制壓棧
IEN0&=0x7F;//關(guān)總中斷
FLASHCON = 0x01; //訪問(wèn)EEPROM區(qū)
RSTSTAT = 0; //清WDT
XPAGE= nAddrH<<1 ;???????????????????????? ?????????????????????????
IB_CON1 = 0xE6;
IB_CON2 = 0x05;
IB_CON3 = 0x0A;
IB_CON4 = 0x09;
if(ssp_flag!=0xA5)//增加flag判斷,增強(qiáng)抗干擾
goto Error;
IB_CON5 = 0x06;
_nop_();
_nop_();
_nop_();
_nop_();
Error:
ssp_flag= 0;
IB_CON1= 0x00;
IB_CON2= 0x00;
IB_CON3= 0x00;
IB_CON4= 0x00;
IB_CON5= 0x00;
FLASHCON= 0x00;//切回FLASH區(qū)
_pop_(IEN0);//恢復(fù)總中斷
}
voidEEPromByteProgram(UCHAR nAddrH,UCHAR nAddrL, UCHAR nData) // 扇區(qū)編程
{
ssp_flag= 0x5A;
_push_(IEN0); //中斷控制壓棧
IEN0&=0x7F;//關(guān)總中斷
FLASHCON= 0x01; //訪問(wèn)EEPROM區(qū)
RSTSTAT = 0; //清WDT
XPAGE= nAddrH;
IB_OFFSET= nAddrL;
IB_DATA= nData; // 燒寫內(nèi)容
IB_CON1 = 0x6E;
IB_CON2 = 0x05;
IB_CON3 = 0x0A;
IB_CON4 = 0x09;
if(ssp_flag!=0x5A) //增加flag判斷,增強(qiáng)抗干擾
goto Error;
IB_CON5 = 0x06;
_nop_();
_nop_();
_nop_();
_nop_();
Error:
ssp_flag= 0;
IB_CON1= 0x00;
IB_CON2= 0x00;
IB_CON3= 0x00;
IB_CON4= 0x00;
IB_CON5= 0x00;
FLASHCON= 0x00; //切回FLASH區(qū)
_pop_(IEN0); //恢復(fù)總中斷
原文標(biāo)題:中穎8位MCU EEPROM使用注意事項(xiàng)
文章出處:【微信公眾號(hào):中穎電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17984瀏覽量
367097 -
編程
+關(guān)注
關(guān)注
88文章
3689瀏覽量
95270 -
EEPROM
+關(guān)注
關(guān)注
9文章
1086瀏覽量
83775 -
中穎電子
+關(guān)注
關(guān)注
4文章
176瀏覽量
7944
原文標(biāo)題:中穎8位MCU EEPROM使用注意事項(xiàng)
文章出處:【微信號(hào):SINO_25181447,微信公眾號(hào):中穎電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
AT25XXX系列EEPROM存儲(chǔ)器的驅(qū)動(dòng)設(shè)計(jì)、實(shí)現(xiàn)及使用

EEPROM數(shù)據(jù)存儲(chǔ)器操作方式有哪幾種?
非易失性存儲(chǔ)器Flash和EEPROM之間的差異與優(yōu)缺點(diǎn)
AT25512存儲(chǔ)器EEPROM代碼免費(fèi)下載

評(píng)論