我们有一个单字节的数据要保存在E2PROM(93C56)中,可按以下方法来做:
1、将93C56的00H单元定义为地址指针存放单元。
2、将要寻址的单元地址(假设为01H)放入93C56的00H地址中。
3、每次要对E2PROM中的数据进行读写时,先读取00H中的数据,并以读出的值为地址,访问其指向的单元。
4、在每次写完数据后,立即将数据再读出,并与写入的地址做比较。
A、如果相等,则代表本次写入数据成功。
B、如果不相等,则代表本次写入数据失败。这时,将00H中的值+1,让其指向后一个新的地址单元,再将数据写入新的地址单元。
93C56共有128个字节单元,按照以上方法,可将数据的擦写次数提升120多倍!达到1200多万次!
对于24C16/32/64系列的芯片,也可采用这种方法。
补充二点
1. EEPROM单元坏与不坏界线很是模糊. EEPROM单元能写入信息是因为它的浮栅能俘获电子并将其困在其中. 但随着时间的推移电子由于热运动或外界给予能量会逐渐逃逸, 所以说EEPROM保持信息是有一定年限的(比如100年). 写入与擦除信息即是向浮栅注入和释放电子,电子能量比较高,可能改变周围的晶格结构,导致浮栅俘获电子能力的下降,也就是表现为保存信息的时间变短, 所以才会有一个保守的写入次数限制(这里说保守是因为半导体的离散性大,实际的次数大得多). 到了规定写入次数并不是说该单元就坏了, 而是说该单元保持信息的时间已不可信赖(而实际上它可能还能保存相当长时间甚至几十上百年),所以实际上短时间很难判定某个单元是否可用(坏了). 如匠人的方法检测, 写入时测试好好的, 可能几秒钟之后该单元的数就逃了.
2. 写坏一个单元是很费时间的, "这个方法,小匠使用过多次,证明是可行的。不知匠人在使用过程中是否碰到过有写坏的情况。