AVR內部EEPROM數據丟失問(wèn)題的原因與解決方案
總結一下引起AVR內部EEPROM數據丟失的原因:
1.程序問(wèn)題;
2.程序跑飛;
3.EEPROM相關(guān)寄存器因強磁場(chǎng)、高壓靜電等外部干擾出錯所產(chǎn)生的寫(xiě)入動(dòng)作;
4.系統有很大的感性負載,在斷電的時(shí)候會(huì )產(chǎn)生一個(gè)反向高壓,EEPROM有可能會(huì )自擦除。
……(還有什么原因,歡迎大家繼續列舉,以便完善及想辦法解決)
針對問(wèn)題1,程序問(wèn)題不再該文討論范圍內。
針對問(wèn)題2,程序跑飛,這個(gè)因該是引起EEPROM數據丟失的主要原因。但是引起程序跑飛的原因卻是多方面的。
第一.電壓不正常,工作不穩定,程序跑飛。針對這個(gè)問(wèn)題,可以開(kāi)啟內部BOD、或者外加復位芯片解決,在低功耗場(chǎng)合,外部復位是有必
要的,畢竟BOD功耗太高。
第二,晶體振蕩受干擾,頻率不穩定,程序跑飛。針對這個(gè)問(wèn)題,建議晶體使用全幅振蕩,并且走線(xiàn)的時(shí)候盡量短,并且使用地線(xiàn)隔離。
第三系統受外界環(huán)境干擾,修改了PC等寄存器,程序跑飛。針對這個(gè)干擾問(wèn)題,這個(gè)引起程序跑飛的可能性應該不大,如果環(huán)境實(shí)在惡劣
,那么就應該想到做電磁屏蔽,ESD保護等,如果還不行,那么只能建議換換別的單片機試試看了。
針對問(wèn)題3,我們只能優(yōu)化電路設置,盡量避免,比如加屏蔽罩,加ESD保護,加TVS保護,電源加電容退耦等等。
針對問(wèn)題4,如果系統真的具有很大的感性負載,那么請注意加續流二極管、濾波電容等做保護,不要讓這種反向高壓產(chǎn)生,無(wú)論如何,這
種因為感性負載突然斷電自激產(chǎn)生的高壓,不僅僅會(huì )對EEPROM有影響,而是對整個(gè)系統都存在威脅。
經(jīng)過(guò)上面硬件上的一些處理,雖然EEPROM數據丟
失的可能已經(jīng)很小了,但是我們仍然不能保證EEPROM數據就不會(huì )丟失了。這時(shí)EEPROM數據的可*性,那就得從軟件上去考慮了,接著(zhù)我們從
軟件的方面繼續討論。
我的做法是,數據分塊,分區,校驗,備份。當然這里講的處理方法,僅僅是提供一種想法,你可以做不同數據長(cháng)度的分塊,不同大小的 分區,采用不同的地址映射方法,以及采用更多次的數據備份。下面以Mega168為例繼續討論。
相關(guān)推薦
-
-
cczhang | 2004-09-17
-
-
-
-
-
powercxz | 2005-04-02
-
chenchao03 | 2005-07-09
-
seasoblue | 2002-10-22
-
liugz | 2004-08-26
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論