新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > EEPROM數(shù)據(jù)丟失的原因與對(duì)策

EEPROM數(shù)據(jù)丟失的原因與對(duì)策

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏

3、生產(chǎn)因素

★原因:焊接和裝配過(guò)程中的高溫、靜電可能造成EEPROM器件數(shù)據(jù)丟失或保存時(shí)間縮短。

●對(duì)策:

①改進(jìn)生產(chǎn)工藝,控制加工過(guò)程,加強(qiáng)防靜電措施。

②如有可能,在線路板生產(chǎn)完成后再寫入EEPROM數(shù)據(jù)。

4、器件因素

★原因:器件擦寫次數(shù)已接近循環(huán)壽命。

●對(duì)策:更換器件。如果器件有剩余空間,軟件通過(guò)更改每次寫入的地址單元可延長(zhǎng)

器件使用壽命。

★原因:器件質(zhì)量問(wèn)題。

●對(duì)策:更換不同廠家或批號(hào)的器件;控制采購(gòu)過(guò)程。

只是單片機(jī)在掉電時(shí),電壓低過(guò)一定的值。執(zhí)行程序代碼出錯(cuò)或是程序指針跑飛。剛好執(zhí)行EEPORM寫入操作,才會(huì)出現(xiàn)所說(shuō)的EEPROM數(shù)據(jù)丟失!就算是外置EEPROM在低于正常工作電壓,進(jìn)行寫入操作,也會(huì)出現(xiàn)這種情況!

BOD的功能是低壓復(fù)位。當(dāng)電壓低過(guò)一定的值,就會(huì)讓單片機(jī)復(fù)位。不能繼續(xù)程序代碼,就沒(méi)有出現(xiàn)所說(shuō)的丟失數(shù)據(jù)!

EEPORM進(jìn)行數(shù)據(jù)備份,并在每份數(shù)據(jù)后里加入校驗(yàn)機(jī)制(如RCR)。我是這么做的,讀取EEPROM的數(shù)據(jù)組并進(jìn)行校驗(yàn)檢測(cè)。如果通不過(guò),這組數(shù)據(jù)就不要。繼續(xù)下一組數(shù)據(jù)檢測(cè),當(dāng)所有的數(shù)據(jù)組都不能通過(guò)檢測(cè)時(shí),并加載默認(rèn)的設(shè)置參數(shù)!在更新數(shù)據(jù)時(shí),刷新所有的數(shù)據(jù)組。并給每組加入校驗(yàn)機(jī)制!但最好不要在掉電時(shí)對(duì)EEPROM進(jìn)行任務(wù)的操作!這樣出錯(cuò)的機(jī)率很低!


在項(xiàng)目開發(fā)中經(jīng)常使用到EEPROM,現(xiàn)在把自己開發(fā)中曾經(jīng)遇到的陷阱和自己的解決方法列出。

(1)現(xiàn)象:加密型遙控器的ID自動(dòng)丟失和改變。

原因:在更新EEPROM過(guò)程中,斷開電源。

解決方法:

a.更改設(shè)計(jì)避免在寫入EEPROM過(guò)程中斷開電源;

b.增加100uF的電容,斷電后瞬間維持EEPROM供電正常至EEPROM寫入完成。

(2)現(xiàn)象:保存在EEPROM里的配置信息自動(dòng)被改變。

原因:在EEPROM讀寫過(guò)程中進(jìn)入了中斷服務(wù)程序,而中斷服務(wù)程序也調(diào)用了EEPROM讀寫函數(shù)。

解決方法:

a.保證EEPROM讀寫函數(shù)的第一句是cli(),最后一句是sei();

b.中斷服務(wù)程序不直接調(diào)用EEPROM讀寫函數(shù),如果SRAM足夠大使用讀寫緩沖區(qū)代替直接讀寫EEPROM,中斷返回后在主循環(huán)粒更新EEPROM;

c.如果檢測(cè)到EEPROM已被占用,則進(jìn)入阻塞狀態(tài),等待EEPROM釋放后繼續(xù)執(zhí)行;

d.如果EEPROM里的數(shù)據(jù)長(zhǎng)度大于EEPROM最小存儲(chǔ)單元,必須保證該數(shù)據(jù)的讀寫不被打斷。

(3)現(xiàn)象:突然斷電時(shí),EEPROM數(shù)據(jù)偶爾會(huì)丟失。原因:在斷電時(shí)剛好在進(jìn)行EEPROM寫操作。

解決方法:加大電源濾波電容的容量,增加電壓檢測(cè)功能,當(dāng)電壓偏低時(shí)禁止EEPROM寫入操作。

(4)現(xiàn)象:當(dāng)大功率交流或直流電機(jī)啟動(dòng)或后,EEPROM里的數(shù)據(jù)自動(dòng)丟失或改變。

原因:在大功率電機(jī)啟動(dòng)或斷開瞬間EMI干擾大。

解決方法:

a.避開這些時(shí)候讀寫EEPROM。

b.如果無(wú)法避開這些時(shí)候,啟動(dòng)EEPROM寫保護(hù)功能,并且每個(gè)數(shù)據(jù)都保存多個(gè)副本。

c.使EEPROM和EEPROM的DAT,CLK等信號(hào)線遠(yuǎn)離可能產(chǎn)生干擾的元件,并且避免形成大的環(huán)路。

d.使用EMI抑制電路降低干擾幅度。

9.5注意事項(xiàng)

單片機(jī)的斷電保護(hù)雖然不是非常復(fù)雜,但是要做得好,使線路簡(jiǎn)潔、性能可靠卻很不容易。下面列了幾點(diǎn)設(shè)計(jì)時(shí)需要注意的事項(xiàng)。

(1)加大濾波電容的容量。單片機(jī)接收到電壓監(jiān)控電路送來(lái)的中斷信號(hào)后,立即中斷正在執(zhí)行的程序,轉(zhuǎn)入中斷服務(wù)子程序,執(zhí)行數(shù)據(jù)保護(hù)并最后使單片機(jī)和RAM進(jìn)入低功耗狀態(tài)。在執(zhí)行中斷服務(wù)程序期間,單片機(jī)上的電源還必須保持在能夠正常工作的電壓范圍,也就是說(shuō)電源VCC的跌落速度不能太快。為了達(dá)到這個(gè)目的,必須在主電源的濾波電路中,加大濾波電解電容的容量,一般應(yīng)使其總電容為4700mF以上。為了縮小體積,也可以把幾個(gè)電解電容器并聯(lián)使用。

對(duì)于斷電后數(shù)據(jù)保存在EEPROM的單片機(jī)系統(tǒng),由于EEPROM的數(shù)據(jù)寫入速度要比RAM慢得多,這樣寫同樣的數(shù)據(jù),需要的時(shí)間將會(huì)更多,因此要求主電源電壓的降低速度更慢,也就是說(shuō)濾波電容的容量要更大,才能保證數(shù)據(jù)安全完整地寫入到EEPROM中。

(2)中斷服務(wù)程序的執(zhí)行速度要快。因?yàn)閿嚯姾髨?zhí)行斷電保護(hù)中斷程序期間,完全是靠濾波電容上的儲(chǔ)電進(jìn)行工作的,如果能加快中斷服務(wù)程序的執(zhí)行時(shí)間,將可以降低對(duì)電源濾波電路的要求,從節(jié)約成本和減少電路所占用的印制板空間來(lái)說(shuō)都是非常有利的。為了加快中斷服務(wù)程序的執(zhí)行速度,建議采用匯編語(yǔ)言編寫中斷服務(wù)程序。

(3)中斷服務(wù)程序中,往往是直接與存儲(chǔ)器的絕對(duì)地址打交道,很容易算錯(cuò)地址,必須特別小心,反復(fù)驗(yàn)對(duì),才能保證程序準(zhǔn)確無(wú)誤。

(4)由于電源突然斷電,在斷電的某一瞬間,將會(huì)出現(xiàn)電源將斷未斷,反復(fù)斷開后又閉合,閉合后又?jǐn)嚅_的情景,反映在電源波形上就是有出現(xiàn)了許多毛剌,這些毛剌會(huì)給單片機(jī)系統(tǒng)造成非常強(qiáng)烈的干擾,嚴(yán)重時(shí)會(huì)導(dǎo)致斷電保護(hù)中斷程序無(wú)法正確執(zhí)行,或使保護(hù)在RAM中的數(shù)據(jù)出錯(cuò)。為了解決這些個(gè)問(wèn)題,對(duì)需要進(jìn)行實(shí)時(shí)斷電保護(hù)的單片機(jī)系統(tǒng),在電源設(shè)計(jì)時(shí),要比一般的單片機(jī)系統(tǒng)更注重抗干擾設(shè)計(jì),必要時(shí)可以加強(qiáng)電源濾波、采用開關(guān)電源等方法,千方百計(jì)地提高系統(tǒng)的抗干擾性能,使斷電保護(hù)更可靠。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: EEPROM數(shù)據(jù)丟

評(píng)論


技術(shù)專區(qū)

關(guān)閉