
在單片機(jī)設(shè)計當(dāng)中,串行EEPROM的可靠性有目共睹。但是雖然有著高可靠性,但是串行EEPROM在使用過程中會出現(xiàn)數(shù)據(jù)出錯的情況,并且數(shù)據(jù)出錯的情況大多數(shù)發(fā)生在插拔電源的情況下。下面將羅列出幾種EEPROM的出錯情況,而后提供一些應(yīng)對方法。
出錯情況
1.EEPROM讀寫的時序可能有小小的不對。
2.在掉電時,在電壓降低到一定程度后到完全沒電之間的一段時間內(nèi),在MCU與EEPROM的讀寫信號線上出現(xiàn)非控制的快速隨機(jī)電平,這些電平可能會組合出一些被EEPROM認(rèn)為合法的寫命令,結(jié)果將EEPROM中的值修改掉;
3.在上電的復(fù)位期間,I/O腳上電平未定,也可能隨機(jī)組合出一些寫命令;
4.在讀EEPROM操作過程中,出現(xiàn)了復(fù)位(如充電復(fù)位)等,形成類似于(二)的情況;
5.在電壓降低后,可能會出現(xiàn)MCU跑飛了,結(jié)果運(yùn)行到了寫EEPROM的底層驅(qū)動程序中,強(qiáng)將數(shù)據(jù)寫入了進(jìn)去。
解決方法
1.按Datasheet上的時序,發(fā)現(xiàn)多數(shù)時候讀寫正確,但有時偶爾不對,這時可以降低讀寫的速度,多幾個NOP。
2.為防止讀EEPROM的過程中出現(xiàn)復(fù)位,可以在MCU復(fù)位后200ms內(nèi)禁止讀寫EEPROM,因充電引起的復(fù)位抖動,一般在數(shù)十毫秒內(nèi),過了這段時間,再出現(xiàn)復(fù)位的可能性不大,
3.在寫EEPROM的底層驅(qū)動程序中,在執(zhí)行寫動作時,判斷一下某些標(biāo)志,有良名證的才能通過,否則,只好打回原籍(跳到復(fù)位地址)。
4.對于重要的數(shù)據(jù)(如通信密碼、參數(shù)設(shè)置等,這些部分信息量不大,要采用三次備份的手段。這些信息存放在三個不同的PAGE內(nèi),最好PAGE內(nèi)的地址也不一樣。在寫這些數(shù)據(jù)時,要針對不同的地址寫三次,而讀時,對于三處讀來的數(shù)據(jù),如果全相同,沒什么可說的了,如果有兩個相同,一個不同,則使用大數(shù)判決,使用相同的那個值,并將這個數(shù)值寫到不同的那個地址去。
也會有一種三種取值完全不同的情況,這種情況下只好隨便取一個(如第一個),再將其寫入另兩個地址中去。這種方法非常有效,因為一般誤擦除不會是全部數(shù)據(jù),而只是某一處而已,可以允許EEPROM某單元被誤擦除,只要讀了一次就恢復(fù)了。
聲明:本內(nèi)容為作者獨立觀點,不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。
微信關(guān)注 | ||
![]() |
技術(shù)專題 | 更多>> | |
![]() |
技術(shù)專題之EMC |
![]() |
技術(shù)專題之PCB |