I2C總線(xiàn)應用下的EEPROM測試
I2C 總線(xiàn)是一種用于IC器件之間連接的二線(xiàn)制總線(xiàn),最早由Philips公司推出。它通過(guò)SDA(串行數據線(xiàn))及SCL(串行時(shí)鐘線(xiàn))兩根線(xiàn)在連到總線(xiàn)上的器件之間傳送信息,并根據地址識別每個(gè)器件,不管是單片機、存儲器、LCD驅動(dòng)器還是鍵盤(pán)接口。串行擴展總線(xiàn)有突出的優(yōu)點(diǎn),電路結構簡(jiǎn)單,程序編寫(xiě)方便,易于實(shí)現用戶(hù)系統軟硬件的模塊化、標準化等。
采用I2C總線(xiàn)標準的單片機或IC器件,其內部不僅有I2C接口電路,而且將內部各單元電路按功能劃分為若干相對獨立的模塊,通過(guò)軟件尋址實(shí)現片選,減少了器件片選線(xiàn)的連接。I2C總線(xiàn)接口電路結構如圖1所示。
當某個(gè)器件向總線(xiàn)上發(fā)送信息時(shí),它就是發(fā)送器(也叫主器件),而當其從總線(xiàn)上接收信息時(shí),又成為接收器(也叫從器件)。主器件用于啟動(dòng)總線(xiàn)上傳送數據并產(chǎn)生時(shí)鐘以開(kāi)放傳送的器件,此時(shí)任何被尋址的器件均被認為是從器件。I2C總線(xiàn)的控制完全由掛接在總線(xiàn)上的主器件送出的地址和數據決定。在總線(xiàn)上,既沒(méi)有中心機,也沒(méi)有優(yōu)先機。
在I2C總線(xiàn)上傳送信息時(shí)的時(shí)鐘同步信號是由掛接在SCL時(shí)鐘線(xiàn)上的所有器件的邏輯“與”完成的。SCL線(xiàn)上由高電平到低電平的跳變將影響到這些器件,一旦某個(gè)器件的時(shí)鐘信號下跳為低電平,將使SCL線(xiàn)一直保持低電平,使SCL線(xiàn)上的所有器件開(kāi)始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響SCL線(xiàn)的狀廟,于是這些器件將進(jìn)入高電平等待的狀態(tài)。
當所有器件的時(shí)鐘信號都上跳為高電平時(shí),低電平期結束,SCL線(xiàn)被釋放返回高電平,即所有的器件都同時(shí)開(kāi)始它們的高電平期。其后,第一個(gè)結束高電平期的器件又將SCL線(xiàn)拉成低電平。這樣就在 SCL線(xiàn)上產(chǎn)生一個(gè)同步時(shí)鐘??梢?jiàn),時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期最長(cháng)的器件確定,而時(shí)鐘高電平時(shí)間由時(shí)鐘高電平期最短的器件確定。在I2C總線(xiàn)技術(shù)規范中,開(kāi)始和結束信號的定義如圖2所示。當時(shí)鐘線(xiàn)SCL為高電平時(shí),數據線(xiàn)SDA由高電平跳變?yōu)榈碗娖蕉x為“開(kāi)始”信號;當SCL線(xiàn)為低電平時(shí),SDA線(xiàn)發(fā)生低電平到高電平的跳變?yōu)?ldquo;結束”信號。
I2C總線(xiàn)還具有廣播呼叫地址用于尋址總線(xiàn)上所有器件的功能。若一個(gè)器件不需要廣播呼叫尋址中所提供的任何數據,則可以忽略該地址不作響應。
I2C 總線(xiàn)具有多主控能力,可以對發(fā)生在SDA線(xiàn)上的總線(xiàn)競爭進(jìn)行仲裁,其仲裁原則是這樣的:當多個(gè)主器件同時(shí)想占用總線(xiàn)時(shí),如果某個(gè)主器件發(fā)送高電平,而另一個(gè)主器件發(fā)送低電平,則發(fā)送電平與此時(shí)SDA總線(xiàn)電平不符的那個(gè)器件將自動(dòng)關(guān)閉其輸出級??偩€(xiàn)競爭的仲裁是在兩個(gè)層次上進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個(gè)從器件,則進(jìn)入數據位的比較,從而確保了競爭仲裁的可靠性。
目前世界上采用的I2C總線(xiàn)有兩個(gè)規范,它們分別是由荷蘭 PHILIPS公司和日本SONY公司提出的?,F在廣泛采用的是PHILIPS公司的I2C總線(xiàn)技術(shù)規范,它已成為被電子行業(yè)認可的總線(xiàn)標準。采用I2C 技術(shù)的單片機以及外圍器件已廣泛應用于家用電器、通訊設備及各類(lèi)電子產(chǎn)品中,而且應用范圍將會(huì )越來(lái)越廣。
2 IC總線(xiàn)應用下的EEPROH的測試方法
這里以常見(jiàn)的24LC02容量為2K的EEPROM芯片為例來(lái)詳細介紹該總線(xiàn)方式下工作的EEPROM測試方法。
2.1 24LC02芯片特點(diǎn)
24LC02是臺灣CERAMATE公司生產(chǎn)的容量為2Kbit的應用于I2C總線(xiàn)工作方式的EEPROM芯片,其芯片管腳定義如圖3。
圖中,A0、A1、A3為片選端,因為I2C總線(xiàn)最多可以?huà)旖?6Kbit的EEPROM,也就是說(shuō)可以?huà)旖?個(gè)24LC02芯片,其硬件地址就這三個(gè)片選端決定;WP是寫(xiě)保護端,在發(fā)送Word Address之前起作用。
24LC02在寫(xiě)入數據的時(shí)候有兩種模式:Byte write和Page write,如圖4。
以TESTER作為Master對24LC02寫(xiě)入數據,然后讀取其數據驗證與寫(xiě)入的數據是否一致。
對于24LC02的命令格式等細節,這里不再贅述,下面我們來(lái)看看24LC02的BLOCK DIAGRAM圖6。
由此可知,在Byte write模式下,一次可寫(xiě)入8bit數據,而在Page write模式下一次可寫(xiě)入8bytes的數據。
2.2 24LC02的測試
根據I2C總線(xiàn)工作方式,我們將其測試圖連接如圖5。
芯片中的Start/stop Logic單元處理Start/Stop信號,控制芯片是否開(kāi)始工作;S1ave address registercomparator單元譯碼Master發(fā)送的Slave address,完成與片選信號的比較,并設定write/read模式;Wordaddress counter單元管理要寫(xiě)入或讀取的地址,地址由xdec和ydec單元譯碼成行地址和列地址,24LC02的EEPROMArray分為64行×4列字節單元。
這里我們對于一些簡(jiǎn)單的電流測試不再討論,主要討論功能測試。
根據以上分析,我們提出如下測試方法:
對芯片寫(xiě)入各種不同的字節數據來(lái)驗證讀取到的數據是否和寫(xiě)入的一致:
(1)每個(gè)字節寫(xiě)入隨機碼數據,這里隨機碼我們選擇00~FF,共256 bytes,讀取看與寫(xiě)入的是否一致
如果該項測試通過(guò),說(shuō)明芯片基本上工作正常,但不能保證EEPROMArray(2Kbit)所有bit位都能正常寫(xiě)入數據。
這里每個(gè)字節寫(xiě)入00-FF保證了寫(xiě)入每個(gè)word address的數據都不一樣,其目的是驗證Word address counter、xdec、ydec等單元是否能正常工作。
評論