IIC總線測(cè)試總結(jié)
對(duì)于Current Address Read,其操作過程為:
1、主設(shè)備發(fā)出START信號(hào);
2、主設(shè)備發(fā)出DEV SEL信號(hào),之后“R/W”位置1,表示接下來執(zhí)行讀操作;
3、從設(shè)備應(yīng)答ACK;
4、從設(shè)備從當(dāng)前指針?biāo)竼卧l(fā)出數(shù)據(jù);
5、主設(shè)備應(yīng)答位,不應(yīng)答從數(shù)據(jù)設(shè)備讀入(NO ACK,高電平);
6、主設(shè)備發(fā)出STOP信號(hào),結(jié)束此次讀操作。
Sequential Current Read一次可讀出多個(gè)數(shù)據(jù),每8位數(shù)據(jù)讀出后,主設(shè)備進(jìn)行一次ACK應(yīng)答,最后一個(gè)數(shù)據(jù),主設(shè)備不進(jìn)行應(yīng)答,應(yīng)答位置高,之后發(fā)出STOP信號(hào)結(jié)束操作。
對(duì)于Random Address Read,其操作過程為:
1、主設(shè)備發(fā)出START信號(hào);
2、主設(shè)備發(fā)出DEV SEL信號(hào),之后“R/W”位置0,表示接下來仍執(zhí)行寫操作;
3、從設(shè)備應(yīng)答ACK;
4、主設(shè)備發(fā)出Byte addr信號(hào),從設(shè)備對(duì)每8位Byte addr進(jìn)行一次應(yīng)答ACK;
5、主設(shè)備再次發(fā)出START信號(hào);
6、主設(shè)備再次發(fā)出DEV SEL信號(hào),之后“R/W”位置1,表示接下來執(zhí)行讀操作;
7、從設(shè)備應(yīng)答ACK;
8、從設(shè)備從之前寫入的Byte addr地址中讀出數(shù)據(jù);
9、主設(shè)備不進(jìn)行應(yīng)答,應(yīng)答位置高(NO ACK);
10、主設(shè)備發(fā)出STOP信號(hào),結(jié)束此次操作。
三、IIC總線測(cè)試項(xiàng)目
1、時(shí)鐘SCL信號(hào)質(zhì)量測(cè)試
包括高電平電壓、低電平電壓、上沖、下沖、上升時(shí)間、下降時(shí)間、時(shí)鐘頻率、高電平脈寬、低電平脈寬。
2、數(shù)據(jù)SDA信號(hào)質(zhì)量測(cè)試
包括高電平電壓、低電平電壓、上沖、下沖、上升時(shí)間、下降時(shí)間。
3、寫保護(hù)WC信號(hào)質(zhì)量測(cè)試
包括高電平電壓、低電平電壓、上沖、下沖。
4、時(shí)序測(cè)試
需要測(cè)試的時(shí)序如下圖所示:
圖4 IIC總線時(shí)序測(cè)試項(xiàng)目圖
(1) tHD:STA:START信號(hào)保持時(shí)間。IIC總線是在SCL信號(hào)為高電平時(shí),SDA下降沿作為START信號(hào)的。該參數(shù)是指SDA信號(hào)由高變低后,SCL還需要維持高電平的最短時(shí)間,以確保START信號(hào)成功采樣;
(2) tHD:DAT:數(shù)據(jù)保持時(shí)間。IIC總線是在時(shí)鐘SCL上升沿的時(shí)候?qū)?shù)據(jù)進(jìn)行采樣,SDA需在時(shí)鐘上升沿來臨前保持穩(wěn)定;同時(shí)SDA需在時(shí)鐘SCL為低電平時(shí)才能進(jìn)行轉(zhuǎn)換。該參數(shù)即是時(shí)鐘SCL由高變低后,SDA還需要維持上一位數(shù)據(jù)電平的最短時(shí)間;
(3) tSU:DAT:數(shù)據(jù)建立時(shí)間。指在SCL上升沿來臨之前,SDA此次采樣數(shù)據(jù)電平需要提前維持的最短時(shí)間,以確保此次數(shù)據(jù)的采樣成功;
(4) tSU:STA:START信號(hào)建立時(shí)間。指在SDA下降沿來臨之前,SCL需要提前維持高電平的最短時(shí)間,以確保START信號(hào)的成功建立;
(5) tSU:STO:STOP信號(hào)建立時(shí)間。IIC總線是在SCL信號(hào)為高電平時(shí),SDA上升沿作為STOP信號(hào)的。該參數(shù)是指在SDA上升沿來臨之前,SCL需要提前維持高電平的最短時(shí)間,以確保STOP信號(hào)的成功建立;
(6) tBUF:總線釋放最短時(shí)間。本次IIC操作結(jié)束和下次IIC操作開始需要對(duì)總線進(jìn)行釋放的最短時(shí)間;
(7) tWLDL(tSU:WC):WC信號(hào)建立時(shí)間。WC信號(hào)需要在START信號(hào)發(fā)出前便完成建立。該參數(shù)即在START信號(hào)SDA下降沿來臨之前,WC信號(hào)需要提前維持低電平以確保成功建立的最短時(shí)間;
(8) tDHWH(tHD:WC):WC信號(hào)保持時(shí)間。WC信號(hào)需要在STOP信號(hào)發(fā)出后仍維持一段時(shí)間。該參數(shù)即在STOP信號(hào)SDA上升沿發(fā)出之后,WC信號(hào)仍需維持低電平以確保STOP操作成功完成的最短時(shí)間。
以上便是需要進(jìn)行測(cè)試的項(xiàng)目。
四、IIC總線測(cè)試注意事項(xiàng)
自己之前在進(jìn)行IIC總線測(cè)試時(shí),由于急于完成,誤認(rèn)為讀過程就是完全的數(shù)據(jù)讀出。其實(shí)從IIC讀操作過程就可以很明確的得知,讀過程也包含著數(shù)據(jù)寫入的階段,比如START信號(hào)發(fā)出,DEV SEL信號(hào)發(fā)出和Byte addr信號(hào)的發(fā)出;
另一方面,由于START信號(hào)和STOP信號(hào)均是由主設(shè)備發(fā)出的,因此在測(cè)試IIC讀操作時(shí)序的時(shí)候,僅需要測(cè)試tSU:DAT和tHD:DAT兩項(xiàng)參數(shù)。而寫操作才需要測(cè)試所有時(shí)序參數(shù);
最后在測(cè)試過程中,尤其是在讀操作過程中,由于前面先要執(zhí)行設(shè)備識(shí)別、地址寫入等寫操作,之后才會(huì)出現(xiàn)數(shù)據(jù)的讀出,如果要用示波器去抓整個(gè)讀操作過程,然后再放大局部去讀取時(shí)序參數(shù),可能會(huì)由于時(shí)基過大,局部分辨率不夠,導(dǎo)致讀取的時(shí)序參數(shù)并不準(zhǔn)確。
對(duì)于示波器,自己覺得比較重要的幾個(gè)參數(shù)包括:帶寬、采樣速率和存儲(chǔ)深度。
帶寬主要針對(duì)的是示波器支持的輸入波形頻率范圍;
采樣速率主要是指示波器內(nèi)部對(duì)波形的采樣速率,根據(jù)香農(nóng)采樣定理,要想不失真地恢復(fù)模擬信號(hào),采樣頻率應(yīng)該不小于模擬信號(hào)頻譜中最高頻率的2倍。而實(shí)際上對(duì)于輸入的波形,其最高頻率取決于波形的邊沿,可以用5~7倍信號(hào)頻率來評(píng)估;
存儲(chǔ)深度主要指示波器存儲(chǔ)采樣點(diǎn)的多少。之所以說在IIC讀操作測(cè)試中,為了獲取整個(gè)操作過程中的波形,將時(shí)基調(diào)大,然后再局部放大,受限于存儲(chǔ)深度,局部的波形可能就會(huì)失真,讀取出來的參數(shù)會(huì)有較大誤差。
因此在讀測(cè)試時(shí),可以采用脈寬采樣,由于我們的測(cè)試中,用到的是Random Address Read和Sequential Random Read兩種模式,在讀出數(shù)據(jù)前,主設(shè)備還要再發(fā)出一次DEV SEL信號(hào),tSU:STA便是在此時(shí)測(cè)量,但此時(shí)的SCL信號(hào)脈寬也不同于之前,如下圖紅色框中的波形所示:
圖5 tSU:STA測(cè)試時(shí)對(duì)應(yīng)的SCL脈沖波形
可以先將時(shí)基調(diào)大,初步測(cè)出紅色框中SCL脈寬長(zhǎng)度,然后用脈寬采樣,劃定波形脈寬范圍,然后采出波形,這樣得到的讀數(shù)據(jù)波形便有足夠的采樣點(diǎn),讀取的參數(shù)值也更有參考價(jià)值。
tSU:STA和tBUF也可按此方法采樣測(cè)試。
通過這次測(cè)試,使自己更加明白,在做任何事情,不要急于著手,而是先想想看計(jì)劃是怎樣,采用什么樣的方法,從總體上理清了頭緒再著手,遇到細(xì)節(jié)問題再深究。
評(píng)論