• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR內(nèi)部EEPROM數(shù)據(jù)丟失問(wèn)題的原因與解決方案

    AVR內(nèi)部EEPROM數(shù)據(jù)丟失問(wèn)題的原因與解決方案

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

    總結(jié)一下引起內(nèi)部的原因:

    1.程序問(wèn)題;
    2.程序跑飛;
    3.相關(guān)寄存器因強(qiáng)磁場(chǎng)、高壓靜電等外部干擾出錯(cuò)所產(chǎn)生的寫(xiě)入動(dòng)作;
    4.系統(tǒng)有很大的感性負(fù)載,在斷電的時(shí)候會(huì)產(chǎn)生一個(gè)反向高壓,有可能會(huì)自擦除。
    ……(還有什么原因,歡迎大家繼續(xù)列舉,以便完善及想辦法解決)

    針對(duì)問(wèn)題1,程序問(wèn)題不再該文討論范圍內(nèi)。

    針對(duì)問(wèn)題2,程序跑飛,這個(gè)因該是引起EEPROM的主要原因。但是引起程序跑飛的原因卻是多方面的。

    第一.電壓不正常,工作不穩(wěn)定,程序跑飛。針對(duì)這個(gè)問(wèn)題,可以開(kāi)啟內(nèi)部BOD、或者外加復(fù)位芯片解決,在低功耗場(chǎng)合,外部復(fù)位是有必

    要的,畢竟BOD功耗太高。

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

    第三系統(tǒng)受外界環(huán)境干擾,修改了PC等寄存器,程序跑飛。針對(duì)這個(gè)干擾問(wèn)題,這個(gè)引起程序跑飛的可能性應(yīng)該不大,如果環(huán)境實(shí)在惡劣

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

    針對(duì)問(wèn)題3,我們只能優(yōu)化電路設(shè)置,盡量避免,比如加屏蔽罩,加ESD保護(hù),加TVS保護(hù),電源加電容退耦等等。

    針對(duì)問(wèn)題4,如果系統(tǒng)真的具有很大的感性負(fù)載,那么請(qǐng)注意加續(xù)流二極管、濾波電容等做保護(hù),不要讓這種反向高壓產(chǎn)生,無(wú)論如何,這

    種因?yàn)楦行载?fù)載突然斷電自激產(chǎn)生的高壓,不僅僅會(huì)對(duì)EEPROM有影響,而是對(duì)整個(gè)系統(tǒng)都存在威脅。

    經(jīng)過(guò)上面硬件上的一些處理,雖然EEPROM數(shù)據(jù)丟

    失的可能已經(jīng)很小了,但是我們?nèi)匀徊荒鼙WCEEPROM數(shù)據(jù)就不會(huì)丟失了。這時(shí)EEPROM數(shù)據(jù)的可*性,那就得從軟件上去考慮了,接著我們從

    軟件的方面繼續(xù)討論。

    我的做法是,數(shù)據(jù)分塊,分區(qū),校驗(yàn),備份。當(dāng)然這里講的處理方法,僅僅是提供一種想法,你可以做不同數(shù)據(jù)長(zhǎng)度的分塊,不同大小的 分區(qū),采用不同的地址映射方法,以及采用更多次的數(shù)據(jù)備份。下面以Mega168為例繼續(xù)討論。


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

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

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 尼勒克县| 襄汾县| 宜章县| 宜都市| 榆社县| 万盛区| 镶黄旗| 贞丰县| 根河市| 泉州市| 容城县| 昂仁县| 金昌市| 东兰县| 渝中区| 高密市| 南和县| 蒙城县| 广平县| 年辖:市辖区| 泸水县| 泽州县| 长汀县| 绥中县| 邵阳市| 汉寿县| 赤壁市| 晴隆县| 宜君县| 北流市| 邵阳市| 大化| 诏安县| 竹北市| 博罗县| 两当县| 清水河县| 彝良县| 建水县| 灵台县| 东莞市|