使用邏輯分析儀 為I2C 訊號量測提供完整解決方案
來源:demo.vm88.top 瀏覽量: 發(fā)布時間: 2018-10-15 16:29
I2C總線在電子產(chǎn)品中,很常見的一種總線,它的好處就是只需要兩條線,就可以并聯(lián)很多 IC進(jìn)行控制。但因為多裝置(Device)及開路集極 (Open drain)的架構(gòu),常使I2C總線除錯工作變得困難.本文將提出一些實際的應(yīng)用案例,并使用邏輯分析儀(Logic Analyzer)之各項功能,來協(xié)助排除問題。
使用轉(zhuǎn)態(tài)儲存進(jìn)行長時間數(shù)據(jù)紀(jì)錄
在I2C總線訊號發(fā)生異常時,常無法明確的知道是哪個裝置出錯。因此,無法用設(shè)定觸發(fā)的方式來做問題點的定位。使用者多半會考慮先把波形都擷取回來再慢慢分析。但邏輯分析儀基本是以采樣的方式擷取訊號,不管訊號有沒有改變,都會隨著采樣擷取動作的進(jìn)行,而不斷地消耗內(nèi)存。而轉(zhuǎn)態(tài)儲存(Transitional Storage)功能是一種波形數(shù)據(jù)的儲存模式,只在波形轉(zhuǎn)態(tài)(Transition)的時候才將波形數(shù)據(jù)儲存起來,這樣當(dāng)資料不轉(zhuǎn)態(tài)時,邏輯分析儀就可以持續(xù)的等候且不存任何數(shù)據(jù)到內(nèi)存內(nèi)。相對于每個采樣點都存一次資料的作法,轉(zhuǎn)態(tài)儲存將可以記下更多的數(shù)據(jù)。由于I2C的傳輸速度如下表一,整體來看速度都不會很快。 因此會非常地適合使用轉(zhuǎn)態(tài)儲存,來拉長可儲存的時間。
模式(mode)
傳輸速度
Standard
400kbit/s
Fast/Fast plus
1Mbit/s
High speed
3.4Mbit/s
表一I2C個模式傳輸速度
利用I2C觸發(fā)來定位問題點
舉例來說,電路板上I2C 總線連接了裝置 A與裝置 B,但在長時間燒機測試(Burn-In Test)的過程中,I2C總線發(fā)生錯誤的問題。已知的現(xiàn)象是當(dāng)發(fā)生錯誤時,I2C總線上會出現(xiàn)無效的地址(Address),并且燒機的過程中會出現(xiàn)數(shù)次。如何能利用邏輯分析儀來做做問題厘清?這樣的問題,若想把波形數(shù)據(jù)都抓下來,其實是有困難的。 因為出現(xiàn)問題的時間點及次數(shù)都很不一定,且長達(dá)好幾天的燒機測試也使得把數(shù)據(jù)都 Log下來顯得不切實際,又必須在大量的數(shù)據(jù)中尋找問題點。也是相當(dāng)費時費力的工作。
因此,可采用邏輯分析儀中的I2C觸發(fā)功能來進(jìn)行定位。首先,先把裝置 A(Addr:12h)與裝置 B(Addr:34h)的有效地址輸入。然后讓邏輯分析儀找出不符合上述兩個條件的地址。實際設(shè)定如圖一所示。
圖一利用I2C觸發(fā)功能進(jìn)行無效地址定位
然后再搭配邏輯分析儀擷取波形后自動儲存功能,就很在燒機的過程中,每次觸發(fā)成功就存盤,之后再檢視存檔波形之觸發(fā)點即可。善用I2C觸發(fā)功能可以快速的協(xié)助波形定位,會比數(shù)據(jù)抓得多來的有意義很多。同樣的,善用整個使用I2C參數(shù)來做為觸發(fā)條件,例如地址符合或數(shù)據(jù)符合或多階式的觸發(fā)來指定更觸發(fā),這些都是單純使用邊緣觸發(fā)(Edge Trigger)所無法做到的功能。
I2C觸發(fā)檢查時間違反(Timing violation)的問題點
I2C總線會規(guī)范 SCL與SDA必須按規(guī)定時間送出,不然整個總線的行為將會發(fā)生錯誤,導(dǎo)致通訊失敗。有時候?qū)嶋H波形的時間已經(jīng)超出規(guī)格,但卻無法在開發(fā)及驗證被挑出來,因為有時候時間誤差都不大,使得產(chǎn)品仍可正常使用。但常常問題會流到量產(chǎn)時才爆發(fā)出來,造成量產(chǎn)不良率攀升。甚至到使用者手上才出現(xiàn)問題。這都是產(chǎn)品開發(fā)所不樂于見到的結(jié)果。
以圖二所示,可啟用邏輯分析儀之時間違反檢查當(dāng)作觸發(fā)條件,設(shè)定所需檢查的時間值,再讓邏輯分析儀協(xié)助挑出時間違反的地方。邏輯分析儀系統(tǒng)采用200MHz采樣率來進(jìn)行采樣。因此,可檢查之小時間寬度為5ns。這樣,就可以輔助使用者,利用觸發(fā)來做時間違反檢查。非常適合于燒機測試時,用這個方式檢測I2C總線的訊號時間。
圖二時間違反觸發(fā)功能之設(shè)定畫面
采用舒密特觸發(fā)電路架構(gòu)擷取質(zhì)量良好的I2C訊號
使用邏輯分析儀進(jìn)行量測時,常會看到一些噪聲。但使用示波器看的時候似乎又沒有,是甚么原因?要如何排除?這是因為I2C總線是開路集極架構(gòu),總線上又同時接了很多裝置,還有一些靜電防護(hù)零件等等??赡苁沟肐2C波形不見得會是很好的方波。常見的I2C波形如圖三、四所示。但這樣的波形在I2C規(guī)范里面,是正??山邮艿模]有問題。
圖三常見的I2C總線訊號(一),上方為 SCL,下方為 SDA
圖四常見的I2C總線訊號(二),SDA訊號
也因為這樣,一般I2C芯片,都會規(guī)范在訊號輸入腳位必須要有舒密特觸發(fā)(Schmitt trigger)電路,以便于完善的解決訊號輸入后能正確的處理邏輯訊號。為此,邏輯分析儀也可循此法做較完善的訊號解擷取動作。圖五為一般邏輯分析儀,此用單一個觸發(fā)準(zhǔn)位的方式來做邏輯0與邏輯1的區(qū)分。這樣的作法,很容易在待測訊號經(jīng)過觸發(fā)準(zhǔn)位(Threshold)附近時,產(chǎn)生很多不可預(yù)期的邏輯變化。使得擷取出來的訊號像是噪聲或彈跳的現(xiàn)象。
圖五邏輯分析儀采單一觸發(fā)準(zhǔn)位模式示意圖
若采用低通濾波(Low-pass filter)的做法,是可以濾除噪聲,但又使得可能造成線路問題的高頻噪聲也同時被濾掉了。無論如何,這都不是適當(dāng)?shù)慕鉀Q方案。
而圖六則是啟用了舒密特觸發(fā)電路之后的畫面,此架構(gòu)采用了兩組觸發(fā)電壓,分別為Thres-high與Thres-low。兩個電壓間,就是所謂不轉(zhuǎn)態(tài)區(qū)域,在這個區(qū)間內(nèi),不管訊號怎么改變,都不會影響邏輯判斷。這樣,就可以正常的擷取到I2C訊號,且真正的高頻噪聲也不會漏掉,也符合I2C芯片設(shè)計規(guī)范。
圖六 邏輯分析儀采舒密特電路觸發(fā)模式示意圖
堆棧示波器可同時看到I2C數(shù)字與模擬訊號
在使用了邏輯分析儀所提供的I2C總線觸發(fā)與分析功能后。擷取下來的波形開始要進(jìn)行問題分析階段,常常很多項目都是軟硬件共同合作,參與的人很多,若無法同時看到對應(yīng)的仿真訊號,對于厘清問題幫助不大。尤其是線路造成的問題,數(shù)字訊號并無法清楚地呈現(xiàn)出問題點。
但是,單純邏輯分析儀堆棧示波器并沒有任何說明,因為大部分的時候邏輯分析儀可以抓的時間長度會遠(yuǎn)大于示波器,這樣,即使示波器顯示波形出來,也不在正確的位置上。唯有透過邏輯分析儀的觸發(fā)功能進(jìn)行訊號定位。這樣抓到的仿真訊號才是有意義的。圖七就是利用堆棧并設(shè)定觸發(fā)之后同時抓到數(shù)字與模擬訊號。使用者可以將它發(fā)送給需要看波形的人,I2C總線數(shù)字譯碼的部分可讓用戶快速理解他所看到波形。而模擬訊號的部分,則忠實的呈現(xiàn)出波形的原貌。兩者這樣的結(jié)合,成為量測方案。
-
上一篇:沒有了
-
下一篇:沒有了