前面一章講解了I2C總線的基本原理,那么在電路設(shè)計(jì)完成打板回來,肯定要做信號(hào)測(cè)試來驗(yàn)證設(shè)計(jì);
1、梳理測(cè)試內(nèi)容,根據(jù)電路圖上梳理出I2C總線,包括每一路I2C一共有幾個(gè)主機(jī),幾個(gè)從機(jī),以及從機(jī)的地址信息;
2、使用示波器的I2C協(xié)議分析功能或者其他I2C解析工具,將總線上的實(shí)時(shí)數(shù)據(jù)抓取解析,看一下是否包括電路設(shè)計(jì)上的所有器件地址,或者是有多余的地址信息;
因?yàn)樾【幵跍y(cè)試中遇到太多實(shí)測(cè)地址比設(shè)計(jì)少的,這個(gè)好理解,一個(gè)是冗余設(shè)計(jì),當(dāng)前沒有使用,一個(gè)原因是軟件上漏掉了;此外,實(shí)測(cè)到設(shè)計(jì)上沒有的地址信息,這個(gè)大概率發(fā)生在后期改版過程中,硬件設(shè)計(jì)更換了總線上的器件,地址也給到軟件做更改,但是軟件代碼上沒有將之前的不再使用的地址信息刪掉,導(dǎo)致總線還是存在訪問此地址信息的請(qǐng)求數(shù)據(jù);
無論是多了還是少了地址,對(duì)于測(cè)試來講都是有問題的,必須搞清楚,是問題的話,就分析解決,不是的話,就做個(gè)澄清說明;
3、整理各個(gè)器件對(duì)于I2C總線的電平與時(shí)序要求;詳細(xì)如下:
頻率:指的是SCL的時(shí)鐘頻率,測(cè)量這個(gè)參數(shù)的意義在于判定總線是單一的速率還是多種速率模式混合,其次確定了時(shí)鐘頻率,有助于后面時(shí)序參數(shù)的確認(rèn),因?yàn)椴煌俾蕯?shù)據(jù)時(shí)序的要求是不一樣的。
正/負(fù)脈寬:SCL的高低電平寬度,因?yàn)镮2C是高電平進(jìn)行數(shù)據(jù)采樣,低電平時(shí)SDA電平變化,所以,無論高電平還是低電壓都一定有個(gè)最小值來滿足采樣和電平變化;
邏輯高/低電平:SCL和SDA均要測(cè)量,只有測(cè)量值滿足高低電平的要求,才真正意義上能被識(shí)別為邏輯1或0;此處要注意的是,即使總線電平是同一個(gè)VCC,不同器件對(duì)于邏輯電平門限也是不太一樣;
上升/下降時(shí)間:指的是SCL和SDA的邊沿在高低電平門限之間的持續(xù)時(shí)間,一般取30%~70%,這也只是一個(gè)相對(duì)的經(jīng)驗(yàn)值,因?yàn)榇蠖鄶?shù)的I2C器件邏輯高低電平門限是30%Vcc和70%Vcc;追求準(zhǔn)確度來說,要根據(jù)實(shí)際器件的高低電平門限值來卡這個(gè)時(shí)間;前文講到總線電容和上拉電阻的值會(huì)影響上升時(shí)間的值,若測(cè)試有問題,可以通過調(diào)節(jié)上拉電阻的值來改善。
Vmax/Vmin:總線數(shù)據(jù)的最大電平和最小電平值;主要看是否有上下過沖,若過沖超過芯片要求,很可能會(huì)損壞芯片。
Tbuf:幀間隔時(shí)間,即SDA線的上一幀傳輸結(jié)束到下一幀開始之間的間隔時(shí)間。
開始標(biāo)志位的保持時(shí)間(tHD:STA):在SCL為高電平時(shí)SDA由高變低的邊沿到SCL第一個(gè)下降沿的時(shí)間。
結(jié)束標(biāo)志位的建立時(shí)間(tSU:STO):在SCL為高電平時(shí)SDA由低變高的邊沿到SCL前一個(gè)上升沿的時(shí)間。
重復(fù)起始標(biāo)志位的建立時(shí)間(tSU:STA):在第9個(gè)時(shí)鐘之后。在SCL為高的上升沿到SDA的下降沿之間的時(shí)間間隔。
數(shù)據(jù)建立時(shí)間(tSU:DAT):一個(gè)比特周期內(nèi),SDA變化沿到SCL上升沿的時(shí)間間隔。
數(shù)據(jù)保持時(shí)間(tHD:DAT):一個(gè)比特周期內(nèi),SDA變化沿到SCL下降沿的時(shí)間間隔。
4、搭建測(cè)試環(huán)境,實(shí)操測(cè)試
- 測(cè)試所需設(shè)備:示波器(最好有協(xié)議分析軟件)、示波器探頭(有源探頭優(yōu)選)、待測(cè)DUT(加載I2C總線通訊的軟件)
- 選擇信號(hào)測(cè)試點(diǎn):測(cè)量寫信號(hào),在從器件端靠近芯片pin腳;測(cè)量讀信號(hào),在主器件端靠近芯片pin腳;
- 注意事項(xiàng):探頭的接地線盡可能短,避免引額外電感量影響測(cè)試準(zhǔn)確性。
下面以實(shí)際的例子來演示:
- 待測(cè)I2C總線只有一主一從,從機(jī)地址為 0x39,用示波器抓取總線數(shù)據(jù)并解析,確認(rèn)是只有0x39地址的數(shù)據(jù);
- 主從器件的I2C時(shí)序要求
常見問題:
1、上升下降時(shí)間不滿足
更改上拉電阻的阻值
2、建立保持時(shí)間不滿足
①是否速率太低,調(diào)高至fast mode或者更高速率看一下
②數(shù)據(jù)SDA變化沿調(diào)整,前移或者后移
3、SDA邊沿有臺(tái)階
①一般發(fā)生在主從對(duì)總線控制的切換時(shí)
②若芯片內(nèi)部有上拉,外部還上拉至Vcc,那么在主機(jī)釋放總線后會(huì)被內(nèi)部上拉電阻分壓至臺(tái)階電平,然后再被從機(jī)拉低
4、我最開始學(xué)習(xí)I2C總線,對(duì)于總線協(xié)議了解的不清楚,造成了一個(gè)誤解如圖所示紅的框出來的波形,起初以為像第一張圖里脈寬很小,電壓也不高的是毛刺信號(hào),第二張的是數(shù)據(jù)信號(hào);其實(shí)都不對(duì),兩張圖片里的是同一個(gè)東西,即應(yīng)答信號(hào)前釋放總線造成的;為什么電平與脈寬大小不一,是跟上拉電阻和從器件響應(yīng)時(shí)間決定的。上升時(shí)間長的話,主機(jī)釋放總線,電平從低開始緩慢升高,在還未升至Vcc之前,從機(jī)開始應(yīng)答,拉低總線,那么就很像毛刺;若上升時(shí)間很快,從機(jī)還沒響應(yīng)之前就會(huì)有一段時(shí)間的高電平;
-
上拉電阻
+關(guān)注
關(guān)注
5文章
366瀏覽量
31184 -
示波器
+關(guān)注
關(guān)注
113文章
6705瀏覽量
189299 -
I2C總線
+關(guān)注
關(guān)注
8文章
408瀏覽量
62200 -
SDA
+關(guān)注
關(guān)注
0文章
125瀏覽量
28839 -
SCL
+關(guān)注
關(guān)注
1文章
243瀏覽量
17558
發(fā)布評(píng)論請(qǐng)先 登錄
I2C總線原理詳解

i2c總線ppt(I2C總線器件應(yīng)用)
i2c總線的特點(diǎn)
并口模擬I2C總線的設(shè)計(jì)
基于CPLD的I2C總線接口設(shè)計(jì)

互聯(lián)IC總線(I2C)
i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程
I2C總線的基本通信總結(jié)

評(píng)論