I2C总线应用下的EEPROH的测试方法
QooIC.com 新闻出处:电子市场 | 发布时间:2011/1/25 14:25:58
这里以常见的24LC02容量为2K的EEPROM芯片为例来详细介绍该总线方式下工作的EEPROM测试方法。
1 24LC02芯片特点
24LC02是台湾CERAMATE公司生产的容量为2Kbit的应用于I2C总线工作方式的EEPROM芯片,其芯片管脚定义如图1。

图1中,A0、A1、A3为片选端,因为I2C总线最多可以挂接16Kbit的EEPROM,也就是说可以挂接8个24LC02芯片,其硬件地址就这三个片选端决定;WP是写保护端,在发送Word Address之前起作用。
24LC02在写入数据的时候有两种模式:Byte write和Page write,如图2。

以TESTER作为Master对24LC02写入数据,然后读取其数据验证与写入的数据是否一致。
对于24LC02的命令格式等细节,这里不再赘述,下面我们来看看24LC02的BLOCK DIAGRAM图3。

由此可知,在Byte write模式下,一次可写入8bit数据,而在Page write模式下一次可写入8bytes的数据。
2 24LC02的测试
根据I2C总线工作方式,我们将其测试图连接如图4。

芯片中的Start/stop Logic单元处理Start/Stop信号,控制芯片是否开始工作;S1ave address register&comparator单元译码Master发送的Slave address,完成与片选信号的比较,并设定write/read模式;Wordaddress counter单元管理要写入或读取的地址,地址由xdec和ydec单元译码成行地址和列地址,24LC02的EEPROMArray分为64行×4列字节单元。
这里我们对于一些简单的电流测试不再讨论,主要讨论功能测试。
根据以上分析,我们提出如下测试方法:
对芯片写入各种不同的字节数据来验证读取到的数据是否和写入的一致:
(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位的数据窜扰。