EEPROM 数据被破坏的重要因素有: 1、电源异常使 EEPROM 的数据彻底丢失; 2、复位不好和软件跑飞可能会使 EEPROM 的数据被改写要避免 EEPROM 数据被破坏,重要在下列几方面做工作: 1、选用比 MCU 的电源范畴宽并有 WP 引脚的 EEPROM 芯片; 2、做好电源滤波,并且要等电源开机稳定后才去读写 EEPROM; 3、做好复位电路; 4、做好软件跑飞的解决;5 、 SDA 和 SCK 的 上 拉 最 佳 用 I/O 口 控 制 , 既 可 省 电 , 也 可 在 一 定 状 况 下 保 护EEPROM; 6、WP 接 MCU 的 RESET;如 WP 做软件保护,将写不进数据;接 I/O,上电时 WP 的状态可能不稳定
7、EEPROM 空间充裕时考虑双备份或多备份数据,每份数据都有校验和
但有两点要注意: 一是某些单片机复位时全部 I/O 都是高电平,会使 EEPROM 芯片进入工作; 二是 EEPROM 芯片给电后需要有不不大于写周期的延时才干读写普通上电能够延时一定时间,确保外设准备好,再执行程序
EEPROM 操作时候最佳暂停中断
普通需要关断中断 这样才干进行 flash 的擦写 个人总结,在实际应用过程中有下列问题造成数据读写错误: 1
程序受到干扰(或程序存在 BUG)造成写入 EEPROM 的数据本身就是错误的; 2
EEPROM 写入次数过多(这个问题在频繁写入时会碰到),造成无法写入的; 3
再提电压问题:由于电压过低,造成写入的数据实际未写入或写入错误; EEPROM 写入错误问题是不可避免的,因此就应有有关的归避方法和恢复方法: 从硬件方面来说:加入 BOD 方法是必要的,同时芯片的电源滤波也有较高规定,芯片的复位电路、晶振(及芯片晶振设立位,指单片机的工作频率,这对 EEPROM 读写有影响)也应认真解决,以提高