新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR內部EEPROM數據丟失問題的原因與解決方案

        AVR內部EEPROM數據丟失問題的原因與解決方案

        作者: 時間:2012-08-16 來源:網絡 收藏

        總結一下引起內部的原因:

        1.程序問題;
        2.程序跑飛;
        3.相關寄存器因強磁場、高壓靜電等外部干擾出錯所產生的寫入動作;
        4.系統有很大的感性負載,在斷電的時候會產生一個反向高壓,有可能會自擦除。
        ……(還有什么原因,歡迎大家繼續列舉,以便完善及想辦法解決)

        針對問題1,程序問題不再該文討論范圍內。

        針對問題2,程序跑飛,這個因該是引起EEPROM的主要原因。但是引起程序跑飛的原因卻是多方面的。

        第一.電壓不正常,工作不穩定,程序跑飛。針對這個問題,可以開啟內部BOD、或者外加復位芯片解決,在低功耗場合,外部復位是有必

        要的,畢竟BOD功耗太高。

        第二,晶體振蕩受干擾,頻率不穩定,程序跑飛。針對這個問題,建議晶體使用全幅振蕩,并且走線的時候盡量短,并且使用地線隔離。

        第三系統受外界環境干擾,修改了PC等寄存器,程序跑飛。針對這個干擾問題,這個引起程序跑飛的可能性應該不大,如果環境實在惡劣

        ,那么就應該想到做電磁屏蔽,ESD保護等,如果還不行,那么只能建議換換別的單片機試試看了。

        針對問題3,我們只能優化電路設置,盡量避免,比如加屏蔽罩,加ESD保護,加TVS保護,電源加電容退耦等等。

        針對問題4,如果系統真的具有很大的感性負載,那么請注意加續流二極管、濾波電容等做保護,不要讓這種反向高壓產生,無論如何,這

        種因為感性負載突然斷電自激產生的高壓,不僅僅會對EEPROM有影響,而是對整個系統都存在威脅。

        經過上面硬件上的一些處理,雖然EEPROM數據丟

        失的可能已經很小了,但是我們仍然不能保證EEPROM數據就不會丟失了。這時EEPROM數據的可*性,那就得從軟件上去考慮了,接著我們從

        軟件的方面繼續討論。

        我的做法是,數據分塊,分區,校驗,備份。當然這里講的處理方法,僅僅是提供一種想法,你可以做不同數據長度的分塊,不同大小的 分區,采用不同的地址映射方法,以及采用更多次的數據備份。下面以Mega168為例繼續討論。


        上一頁 1 2 下一頁

        關鍵詞: AVR EEPROM 數據丟失

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东源县| 乐昌市| 宜宾县| 突泉县| 昌吉市| 嘉善县| 屯门区| 长海县| 津市市| 梁平县| 汾西县| 龙泉市| 托里县| 通辽市| 长春市| 巴彦淖尔市| 定结县| 建水县| 惠来县| 肇庆市| 平邑县| 屏南县| 天津市| 仲巴县| 安阳县| 山西省| 广西| 宁乡县| 增城市| 沈阳市| 黔江区| 岢岚县| 河源市| 丰镇市| 新乡市| 沐川县| 轮台县| 宣武区| 琼海市| 和田县| 哈巴河县|