I2C總線應用下的EEPROM測試
假設我們這里每個字節寫入相同的數據(如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位的數據竄擾。
評論