I2C总线应用下的EEPROM测试
的字节数据来验证读取到的数据是否和写入的一致:
(1)每个字节写入随机码数据,这里随机码我们选择00~FF,共256 bytes,读取看与写入的是否一致
如果该项测试通过,说明芯片基本上工作正常,但不能保证EEPROMArray(2Kbit)所有bit位都能正常写入数据。
这里每个字节写入00-FF保证了写入每个word address的数据都不一样,其目的是验证Word address counter、xdec、ydec等单元是否能正常工作。
假设我们这里每个字节写入相同的数据(如00或FF等),那么在这种情况下,要是Word address counter无法正常工作,那么我们写入或读取的可能是部分地址所指向的EEpromArray中的bit位,而且无法保证xdec和ydec能正常解码行地址和列地址,譬如说我们对"10101010"word address所指向的字节写入00,如果读取"101010"这个地址数据时,Word address counter、xdec、ydec任意单元发生了错误,那么最终我们读取到的数据就不是"10101010"这个地址所指向的字节数据,也就是说因为每个字节数据是一样的,所以即使写入和读取的地址发生了错位,我们也会认为测试是通过的。
由此可见,要保证Word address counter、xdec、ydec等单元正常工作,我们写入的数据必须满足下列三个条件:
①写入EEPROM Array的每一行数据不一样(验证xdec单元);
②写入EEPROM Array的每一列数据不一样(验证ydec单元);
③写入EEPROM Array的每一个字节数据不一样(验证Word address counter单元);
这就是我们选择写入00~FF的理由(当然也可以选择写入其他数据,只要符合上述最后一个条件即可)。
(2)每个字节写入数据00,读取看是否与写入的一致
通过上述第一项测试,其实已经可以基本保证芯片各单元能正常工作,接下来只需测试验证EEPROM Array(2Kbit)中的每个bit位是否良好,这里写入数据00,可排除EEPROM Array(2Kbit)中恒为"1"的bit位。
(3)每个字节写入数据FF,读取看是否与写入的一致
可排除EEPROM Array(2Kbit)中恒为"0"的b"位。
(4)从00H地址开始写入4个字节55,接着写入4个字节AA,如此重复,直至写满256个字节,读取看是否与写入的一致。
EEPROM Array中相邻bit位(包括行相邻、列相邻、对角线相邻)会互相影响。
而24LC02的EEPROM Array分为4列×64行×8bit,所以我们写入上述的数据使得每个相邻bit位的数据都不一样,经过该项测试可排除相邻bit位的数据窜扰。最好是再测试一下写入4个字节AA,写入4个字节55……,看读取与写入的是否一致。
到此我们完成了全部的功能测试。24LC02读写时有page write、byte write、random read、Sequentialread等各种工作模式以及writeprotect功能,这些测试都比较简单,这里就不再一一赘述了。
由此,我们概括出EEPROM的一般测试方法:
(1)每个字节写入random code,读取验证是否与写入时一致,从而测试Word address counter、xdec、ydec等单元是否能正常工作;Random code需要满足下面这个条件:写入EEPROMArray的每一个字节数据不一样。
(2)每个字节写入数据00或FF,读取验证是否与写入时一致,排除EEPROM Array中恒"0"或恒"1"的bit位。
(3)对EEPROM Array写入相邻bit位(包括行相邻、列相邻、对角线相邻)都不一样的数据,读取验证是否与写入时一致,排除相邻bit位的数据窜扰。
- 利用数字示波器调试嵌入式I2C总线(10-03)
- 利用数字示波器调试嵌入式I2C(10-16)
- 基于MSP430F169的多路电阻测量系统设计(02-14)
- 采用数字示波器调试嵌入式I2C总线(07-02)
- 数字示波器的软硬件设计方案及经典应用案例汇总(08-01)
- I2C电平转换电路调试测试记录(01-12)