在项目开发中经常使用到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抑制电路降低干扰幅度。
『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』