EEPROM(Electrically Erasable Programmable readonly memory)是指帶電可編程只讀存儲器。是一種掉電后數據不丟失的存儲芯片。
中穎Flash型MCU都集成有EEPROM,EEPROM用來存放用戶數據。EEROM大小可以通過option(代碼選項)選擇0~4K不等。EEPROM按照扇區進行劃分,每個扇區的大小512字節(較早的產品,每個扇區大小256字節),最多支持8個扇區。
中穎的EEPROM編程/擦除次數:至少100000次
中穎的EEPROM數據保存年限:至少10年
中穎EEPROM的操作原則:
1、必須關閉所有中斷
如果在操作EEPROM期間,不關閉中斷,可能會導致程序跑飛或者其它異常情況;中穎MCU要求對于EEPROM的擦除和編程,需要按照規定關閉所有中斷(EA=0),等到編程完成后再打開中斷。
2、如何訪問EEPROM
中穎芯片對于EEPROM的讀、擦和寫都是通過寄存器FLASHCON的FAC位置1來操作。當FAC=0時,MOVC指令或者SSP功能訪問Main Block區域;當FAC=1時,MOVC指令或者SSP功能訪問類EEPROM區域或信息存儲區。
3、操作EEPROM前,清WDT
在對EEPROM的操作前,清WDT,保證操作期間不溢出
4、抗干擾
同時,為了抗干擾,防止誤操作,EEPROM編程可以參考如下例程:
ucharssp_flag; voidEEPromSectorErase(UCHARnAddrH)//扇區擦除 { ssp_flag=0xA5; _push_(IEN0);//中斷控制壓棧 IEN0 =0x7F;//關總中斷 FLASHCON=0x01;//訪問EEPROM區 RSTSTAT=0;//清WDT XPAGE=nAddrH<<1?;????????????????????????? ???? ????IB_CON1???=?0xE6;??????????? ????IB_CON2???=?0x05;????????? ????IB_CON3???=?0x0A;????????? ????IB_CON4???=?0x09;?????????? ????if(ssp_flag!=0xA5)//增加flag判斷,增強抗干擾??????????????????? ????????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區???? ????_pop_(IEN0);//恢復總中斷 }? ???? voidEEPromByteProgram(UCHAR?nAddrH,UCHAR?nAddrL,?UCHAR?nData)?? //?扇區編程 {????????? ????ssp_flag=?0x5A;???? ????_push_(IEN0);?//中斷控制壓棧???? ????IEN0 =0x7F;//關總中斷?????????????? ????FLASHCON=?0x01;?//訪問EEPROM區????????? ????RSTSTAT?=?0;????//清WDT????????? ????XPAGE=?nAddrH;? ????IB_OFFSET=?nAddrL;????????? ????IB_DATA=?nData;??//?燒寫內容??? ??????????? ????IB_CON1???=?0x6E;????????? ????IB_CON2???=?0x05;????????? ????IB_CON3???=?0x0A;????????? ????IB_CON4???=?0x09;?????????? ???? ????if(ssp_flag!=0x5A)?//增加flag判斷,增強抗干擾??????? ????????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區???? ????_pop_(IEN0);?//恢復總中斷
來源:中穎電子(作者:丁曉明)
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
mcu
+關注
關注
146文章
17144瀏覽量
351151 -
EEPROM
+關注
關注
9文章
1020瀏覽量
81588
發布評論請先 登錄
相關推薦
評論