I2C總線(xiàn)應用下的EEPROM測試
假設我們這里每個(gè)字節寫(xiě)入相同的數據(如00或FF等),那么在這種情況下,要是Word address counter無(wú)法正常工作,那么我們寫(xiě)入或讀取的可能是部分地址所指向的EEpromArray中的bit位,而且無(wú)法保證xdec和ydec能正常****行地址和列地址,譬如說(shuō)我們對“10101010”word address所指向的字節寫(xiě)入00,如果讀取“101010”這個(gè)地址數據時(shí),Word address counter、xdec、ydec任意單元發(fā)生了錯誤,那么最終我們讀取到的數據就不是“10101010”這個(gè)地址所指向的字節數據,也就是說(shuō)因為每個(gè)字節數據是一樣的,所以即使寫(xiě)入和讀取的地址發(fā)生了錯位,我們也會(huì )認為測試是通過(guò)的。
由此可見(jiàn),要保證Word address counter、xdec、ydec等單元正常工作,我們寫(xiě)入的數據必須滿(mǎn)足下列三個(gè)條件:
①寫(xiě)入EEPROM Array的每一行數據不一樣(驗證xdec單元);
②寫(xiě)入EEPROM Array的每一列數據不一樣(驗證ydec單元);
③寫(xiě)入EEPROM Array的每一個(gè)字節數據不一樣(驗證Word address counter單元);
這就是我們選擇寫(xiě)入00~FF的理由(當然也可以選擇寫(xiě)入其他數據,只要符合上述最后一個(gè)條件即可)。
(2)每個(gè)字節寫(xiě)入數據00,讀取看是否與寫(xiě)入的一致
通過(guò)上述第一項測試,其實(shí)已經(jīng)可以基本保證芯片各單元能正常工作,接下來(lái)只需測試驗證EEPROM Array(2Kbit)中的每個(gè)bit位是否良好,這里寫(xiě)入數據00,可排除EEPROM Array(2Kbit)中恒為“1”的bit位。
(3)每個(gè)字節寫(xiě)入數據FF,讀取看是否與寫(xiě)入的一致
可排除EEPROM Array(2Kbit)中恒為“0”的b“位。
(4)從00H地址開(kāi)始寫(xiě)入4個(gè)字節55,接著(zhù)寫(xiě)入4個(gè)字節AA,如此重復,直至寫(xiě)滿(mǎn)256個(gè)字節,讀取看是否與寫(xiě)入的一致。
EEPROM Array中相鄰bit位(包括行相鄰、列相鄰、對角線(xiàn)相鄰)會(huì )互相影響。
而24LC02的EEPROM Array分為4列×64行×8bit,所以我們寫(xiě)入上述的數據使得每個(gè)相鄰bit位的數據都不一樣,經(jīng)過(guò)該項測試可排除相鄰bit位的數據竄擾。最好是再測試一下寫(xiě)入4個(gè)字節AA,寫(xiě)入4個(gè)字節55……,看讀取與寫(xiě)入的是否一致。
到此我們完成了全部的功能測試。24LC02讀寫(xiě)時(shí)有page write、byte write、random read、Sequentialread等各種工作模式以及writeprotect功能,這些測試都比較簡(jiǎn)單,這里就不再一一贅述了。
由此,我們概括出EEPROM的一般測試方法:
(1)每個(gè)字節寫(xiě)入random code,讀取驗證是否與寫(xiě)入時(shí)一致,從而測試Word address counter、xdec、ydec等單元是否能正常工作;Random code需要滿(mǎn)足下面這個(gè)條件:寫(xiě)入EEPROMArray的每一個(gè)字節數據不一樣。
(2)每個(gè)字節寫(xiě)入數據00或FF,讀取驗證是否與寫(xiě)入時(shí)一致,排除EEPROM Array中恒“0”或恒“1”的bit位。
(3)對EEPROM Array寫(xiě)入相鄰bit位(包括行相鄰、列相鄰、對角線(xiàn)相鄰)都不一樣的數據,讀取驗證是否與寫(xiě)入時(shí)一致,排除相鄰bit位的數據竄擾。
評論