今天大多数单片机都有了在片上可编程的FLUSH EEPROM用于掉电数据保存,但使用片内的FLUSH ROM我们总要遇到两个问题 1.FLUSH ROM 不能单字节编程,而且一般情况下必须一个扇区擦除才能编程 2。FLUSH ROM只有1000次左右有限的擦除次数。 事实上器件生产厂家已经考虑了这个问题,为此才采用分片(扇区)擦除和建议用户分扇区保存数据的方法来弱化和规避上面的矛盾。
怎么样能在减少擦除次数情况下保存数据呢? 我们只要注意到:“在不经过擦除的情况下,可以用下面的顺序编程和擦除循环来实现“段位”的记数:11111111B---代表0(0个0),11111110B--1(1个0)11111100B---代表2(2个0)。。。。。。。。。。。。。。。。。00000000B---对应8-----擦除/进位为11111111B又回到0
显然上述前8个序列是完全可以不用擦除就可以完成编程顺序。
这里本质是用"0记数"的无权码来实现数据保存和检验,故它还有比有权码更高的可检错可纠错可靠性:因为只要出现了被1隔着的0就一定是是非法数据:例如 11011100B左边第3个0就为“干扰数位”,可纠查出来也可别剔除叫纠错.如果嫌弃8这个数太小,建议用同在一个扇区的相邻字节集联起来作高位而且强烈建议高位采用标准的有权二进制**-----这里高低字节都是公平的每8次擦除一次了! |