新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > EEPROM數據丟失的原因與對策

EEPROM數據丟失的原因與對策

作者: 時間:2016-11-27 來源:網絡 收藏

3、生產因素

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

●對策:

①改進生產工藝,控制加工過程,加強防靜電措施。

②如有可能,在線路板生產完成后再寫入EEPROM數據。

4、器件因素

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

●對策:更換器件。如果器件有剩余空間,軟件通過更改每次寫入的地址單元可延長

器件使用壽命。

★原因:器件質量問題。

●對策:更換不同廠家或批號的器件;控制采購過程。

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

BOD的功能是低壓復位。當電壓低過一定的值,就會讓單片機復位。不能繼續(xù)程序代碼,就沒有出現所說的丟失數據!

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


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

(1)現象:加密型遙控器的ID自動丟失和改變。

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

解決方法:

a.更改設計避免在寫入EEPROM過程中斷開電源;

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

(2)現象:保存在EEPROM里的配置信息自動被改變。

原因:在EEPROM讀寫過程中進入了中斷服務程序,而中斷服務程序也調用了EEPROM讀寫函數。

解決方法:

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

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

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

d.如果EEPROM里的數據長度大于EEPROM最小存儲單元,必須保證該數據的讀寫不被打斷。

(3)現象:突然斷電時,EEPROM數據偶爾會丟失。原因:在斷電時剛好在進行EEPROM寫操作。

解決方法:加大電源濾波電容的容量,增加電壓檢測功能,當電壓偏低時禁止EEPROM寫入操作。

(4)現象:當大功率交流或直流電機啟動或后,EEPROM里的數據自動丟失或改變。

原因:在大功率電機啟動或斷開瞬間EMI干擾大。

解決方法:

a.避開這些時候讀寫EEPROM。

b.如果無法避開這些時候,啟動EEPROM寫保護功能,并且每個數據都保存多個副本。

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

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

9.5注意事項

單片機的斷電保護雖然不是非常復雜,但是要做得好,使線路簡潔、性能可靠卻很不容易。下面列了幾點設計時需要注意的事項。

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

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

(2)中斷服務程序的執(zhí)行速度要快。因為斷電后執(zhí)行斷電保護中斷程序期間,完全是靠濾波電容上的儲電進行工作的,如果能加快中斷服務程序的執(zhí)行時間,將可以降低對電源濾波電路的要求,從節(jié)約成本和減少電路所占用的印制板空間來說都是非常有利的。為了加快中斷服務程序的執(zhí)行速度,建議采用匯編語言編寫中斷服務程序。

(3)中斷服務程序中,往往是直接與存儲器的絕對地址打交道,很容易算錯地址,必須特別小心,反復驗對,才能保證程序準確無誤。

(4)由于電源突然斷電,在斷電的某一瞬間,將會出現電源將斷未斷,反復斷開后又閉合,閉合后又斷開的情景,反映在電源波形上就是有出現了許多毛剌,這些毛剌會給單片機系統造成非常強烈的干擾,嚴重時會導致斷電保護中斷程序無法正確執(zhí)行,或使保護在RAM中的數據出錯。為了解決這些個問題,對需要進行實時斷電保護的單片機系統,在電源設計時,要比一般的單片機系統更注重抗干擾設計,必要時可以加強電源濾波、采用開關電源等方法,千方百計地提高系統的抗干擾性能,使斷電保護更可靠。


上一頁 1 2 下一頁

關鍵詞: EEPROM數據丟

評論


技術專區(qū)

關閉