zoukankan      html  css  js  c++  java
  • 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抑制电路降低干扰幅度

  • 相关阅读:
    1033 To Fill or Not to Fill (25分)(贪心)
    CentOS(五)--Linux系统的分区概念
    Linux安装Oracle 11G过程(测试未写完)
    【VMware虚拟化解决方案】设计和配置VMware vCenter 5.5
    CentOS(四)--Linux系统的启动级别
    CentOS(三)--初识linux的文件系统以及用户组等概念
    CentOS(二)--初识linux的一些常用命令
    CentOS(一)--CentOS6.4环境搭建
    Linux c/c++图片传输功能(中级版)
    remote uptime 服务器程序
  • 原文地址:https://www.cnblogs.com/lycstronger/p/4195559.html
Copyright © 2011-2022 走看看