打印

EEPROM读写操作常见的陷阱(转)

[复制链接]
1672|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huzixian|  楼主 | 2011-2-24 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在项目开发中经常使用到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抑制电路降低干扰幅度。

相关帖子

沙发
dianzirobot| | 2011-2-24 19:40 | 只看该作者
沙发抢先,谢楼主

使用特权

评论回复
板凳
maoyanketi| | 2011-2-24 20:22 | 只看该作者
恩,好经验

使用特权

评论回复
地板
金鱼木鱼| | 2011-2-24 21:24 | 只看该作者
这个很有帮助,收下了

使用特权

评论回复
5
奔腾2.0| | 2011-2-25 10:39 | 只看该作者
多多分享

使用特权

评论回复
6
思行合一| | 2011-2-25 17:14 | 只看该作者
很受用,学习了

使用特权

评论回复
7
lmoon| | 2011-2-25 18:03 | 只看该作者
多谢楼主

使用特权

评论回复
8
金鱼木鱼| | 2011-3-10 20:46 | 只看该作者
恩,受教了,不错

使用特权

评论回复
9
BS-NO.1| | 2011-3-11 21:15 | 只看该作者
谢谢了,学习

使用特权

评论回复
10
3B1105| | 2011-3-11 21:52 | 只看该作者
没有用过eprom,跟flash操作有什么区别呢

使用特权

评论回复
11
小云001| | 2011-3-18 21:46 | 只看该作者
恩,赶紧排队

使用特权

评论回复
12
dianzirobot| | 2011-3-22 22:42 | 只看该作者
恩,这都是积累的经验啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

1534

帖子

2

粉丝