外挂eeprom数据丢失问题
本帖最后由 你好我好大家好! 于 2016-12-25 22:02 编辑从上位机将数据写入eeprom后,在板子掉电之前从eeprom中读取数据,显示到上位机,数据全部正确。然后将板子断电,再上电,将数据从eeprom中读出,显示到上位机,结果发现其中少部分数据丢失,其他数据完好无损。而且不同板子都有上述问题,并且丢失的数据地址不一样,用的eeprom是intersil公司的x5163芯片,这样奇怪的想象有前辈们见过吗?帮忙指点下谢谢了!!!
你这个估计是出在上电或是断电的过程中,上电时是不稳定的,程序乱飞,所以会意外更改存储媒介中的数据,解决方法是在上电时延时,或者通过硬件电路保证MCU电压稳定后才使能iic总线。或则有其他方法也行,要保证MCU电压稳定才对eeprom进行读写操作。当时用Flash时我遇到过这种情况 这个一般是出在电压上升或是跌落的过程中,此时电压不稳,MCU程序乱飞。所以要保证MCU电压稳定后才对eeprom进行读写。一种方法是上电时延时才对eeprom读写。另一种方法是保证MCU电压稳定后才打开IIC总线,需要硬件配合一下。关键就是等MCU稳定再操作eeprom,当时用Flash时遇到过类似的问题。 我觉得可以用这样的顺序排查:
1、怀疑EEPROM问题:换一个兼容的另外一家公司的芯片,看一下还有没有这样的问题;
2、怀疑软件代码问题:(1)读取数据的代码有BUG?(2)存数据的代码有BUG?(3)与上位机的通讯有BUG? 用了 EEPROM这么久没有出现过这种问题呀!!!!! 基于目前的电路,增加一个WP保护引脚,在写入成功后,置H,
然后看看是否有数据丢失情况;
如果可以,使用示波器挂载看看波形; 黑皮男 发表于 2016-12-25 23:57
这个一般是出在电压上升或是跌落的过程中,此时电压不稳,MCU程序乱飞。所以要保证MCU电压稳定后才对eeprom ...
硬件配合的话,可以说得具体一些吗?谢谢了 黑皮男 发表于 2016-12-25 23:53
你这个估计是出在上电或是断电的过程中,上电时是不稳定的,程序乱飞,所以会意外更改存储媒介中的数据,解 ...
您用的也是外挂Flash吗? 是外挂flash,配合硬件的意思是加一个IIC开关,待mcu稳定后再开启,不过这个的话会比较麻烦。不太清楚你这个eeprom有没有写保护控制脚,楼上说的对,如果有的话控制eeprom的写保护比较好 上电后过段时间(几十个ms后)再读数据看看数据是否真的被改变了,eeprom芯片上电后也有个启动时间,只有等系统稳定后数据才能被正确读写。