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

