1. 程式人生 > >EEPROM常見的讀寫問題和防止辦法

EEPROM常見的讀寫問題和防止辦法

在專案開發中經常使用到EEPROM,現在把自己開發中曾經遇到的陷阱和自己的解決方法列出。(1)現象:加密型遙控器的ID自動丟失和改變。 
       原因:在更新EEPROM過程中,斷開電源。 
       解決方法:
       a.更改設計避免在寫入EEPROM過程中斷開電源;
       b.增加100uF的電容,斷電後瞬間維持EEPROM供電正常至EEPROM寫入完成。
(2)現象:儲存在EEPROM裡的配置資訊自動被改變。 
       原因:在EEPROM讀寫過程中進入了中斷服務程式,而中斷服務程式也呼叫了EEPROM讀寫函式。 
       解決方法:
      a.保證EEPROM讀寫函式的第一句是cli(),最後一句是sei();

      b.中斷服務程式不直接呼叫EEPROM讀寫函式,如果SRAM足夠大使用讀寫緩衝區代替直接讀寫EEPROM,中斷返回後在主迴圈粒更新EEPROM;
      c.如果檢測到EEPROM已被佔用,則進入阻塞狀態,等待EEPROM釋放後繼續執行;
      d.如果EEPROM裡的資料長度大於EEPROM最小儲存單元,必須保證該資料的讀寫不被打斷。
(3)現象:突然斷電時,EEPROM資料偶爾會丟失。 原因:在斷電時剛好在進行EEPROM寫操作。
        解決方法:加大電源濾波電容的容量,增加電壓檢測功能,當電壓偏低時禁止EEPROM寫入操作。
(4)現象:當大功率交流或直流電機啟動或後,EEPROM裡的資料自動丟失或改變。 

       原因:在大功率電機啟動或斷開瞬間EMI干擾大。
       解決方法:
       a.避開這些時候讀寫EEPROM。
       b.如果無法避開這些時候,啟動EEPROM防寫功能,並且每個資料都儲存多個副本。
       c.使EEPROM和EEPROM的DAT,CLK等訊號線遠離可能產生干擾的元件,並且避免形成大的環路。
      d.使用EMI抑制電路降低干擾幅度。