在产品中为了降低成本,使用MC9S08FL16内部的FLASH模拟EEPROM,而FLASH的工作电压是4.5V – 5.5V,但是软件只能只能设置低于4V复位,
刚上电软件初始化时会从EEPROM(实际是FLASH)读出历史保存的数据,实验中有时会读到错误数据(内容为0xFF,猜也有可能是之前保存的数据没保存成功)。实测中发现,如果正在页写时,突然断电,就有可能一页中的后面几个字节就没写成功(都是擦除页,然后写整页,即RAM的数据一一与EEPROM映射)。我现在是通过双页备份基本可以解决问题保存错误的问题,但是上电有时还是会出问题读到错误的数据,不知道有没有什么方法可以让CPU上电延时一会儿(像AVR那样),当然了不能采用初始化时软件延时。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
LZ最终解决问题了么?两个备份区在不同扇区么?是两个备份区都有错?
我的感觉,还是电压的问题,就是操作的FLASH时的电压,一定要处于比较稳定的状态。以及如果在操作FLASH时,电压在跃落时(低于4V时,就最好不要操作FLASH),否则有可能保存会出错。
答:为两个FLASH页(512字节/页)。
是两个备份区都有错?
答:是的,两页FLASH的数据都是错的。
一周热门 更多>