整合轉態儲存/觸發定位功能 邏輯分析儀除錯快又準
I2C匯流排在電子產品中是很常見的規格,其優勢就是只需兩條線,就可並聯很多積體電路(IC)進行控制。但因多裝置(Device)及開路汲極(Open Drain)的架構,常使I2C匯流排除錯工作變得更加困難,因此可透過邏輯分析儀的功能,協助測試人員排除問題。
使用轉態儲存進行長時間資料紀錄
在I2C匯流排訊號發生異常時,常常無法明確知道到底是哪個裝置出錯。因此,無法用設定觸發的方式做問題點的定位。此時使用者多半會考慮先把所有的波形都全部擷取回來再慢慢分析。但是邏輯分析儀基本上是以採樣的方式擷取訊號,因此,不管訊號有沒有改變,都會隨採樣擷取動作的進行,而不斷消耗儀器本身的記憶體,導致記憶體逐漸不足的問題衍生而出。
為因應此一挑戰,轉態儲存(Transitional Storage)功能是一種波形資料的儲存模式。該功能只在波形轉態的時候才將波形資料儲存起來,如此一來,當資料不轉態時,邏輯分析儀就可以持續的等候,並且不存進任何資料到記憶體內。相對於傳統每個採樣點都儲存一次資料的作法,轉態儲存將可以為使用者記下更多的資料。由於I2C的傳輸速度整體來看速度都不會很快(表1),因此會非常適合使用轉態儲存,來拉長可儲存的時間。
利用I2C觸發定位找出問題點
舉例來說,電路板上I2C匯流排連接裝置A與裝置B,但在長時間燒機測試(Burn-in Test)的過程中,I2C匯流排會經常性發生錯誤的問題。已知的現象是當發生錯誤時,I2C匯流排上會出現無效的位址(Address),並且在過程中會出現數次,面對此一問題,若想把所有的波形資料都抓下來,其實是相當困難,因為出現問題的時間點及次數都難以掌握,且長達好幾天的燒機測試也會把所有的資料都登錄(Log)下,且須在大量的資料中尋找問題點,是相當費時費力的工作。
為解決此一問題,可採用邏輯分析儀中的I2C觸發功能來進行定位。首先,先把裝置A(Addr:12h)與裝置B(Addr:34h)的有效位址輸入,然後讓邏輯分析儀找出不符合上述兩個條件的地址,實際設定如圖1所示。
圖1 利用I2C觸發功能進行無效位址定位 |
將有效位址輸入完成後,再搭配邏輯分析儀擷取波形後自動儲存功能,就可在燒機的過程中,每次觸發成功就存檔,之後再檢視存檔波形之觸發點即可。善用I2C觸發功能可以快速的協助波形定位,會比資料抓得多更具有意義。同樣的,善用整個使用I2C參數來做為觸發條件,例如地址符合、資料符合或多階式的觸發指定更精準的觸發,這些都是單純使用邊緣觸發(Edge Trigger)所無法做到的功能。
啟用I2C觸發時間違反檢查揪出問題點
I2C匯流排會規範串列時脈(SCL)與串列資料(SDA)必須按規定時間送出,不然整個匯流排的行為將會發生錯誤,導致通訊失敗。有時候實際波形的時間已經超出規格,但卻無法在開發及驗證的過程中被挑出來,因為時間誤差都不大,使得產品雖然仍可正常使用,但問題常常會留到量產時才顯現出來,造成產品不良率攀升,甚至到使用者手上才出現問題。上述這些問題都是產品開發所不願樂見的結果。
如圖2所示,可啟用邏輯分析儀的時間違反檢查當作觸發條件,設定所須檢查的時間值,再讓邏輯分析儀協助挑出時間違反的地方。邏輯分析儀系統採用200MHz採樣率來進行採樣。因此,可檢查的最小時間寬度為5奈秒(ns)。如此一來,就可輔助使用者利用觸發來做時間違反檢查。此舉非常適合於燒機測試時,用來檢測I2C匯流排的訊號時間。
圖2 時間違反觸發功能之設定畫面 |
採用舒密特觸發電路架構 擷取品質良好訊號
採用舒密特觸發電路架構 擷取品質良好訊號
使用邏輯分析儀進行量測時,常會看到一些雜訊,但使用示波器看的時候似乎又沒有,會有這樣的狀況出現,肇因I2C匯流排是開路汲極架構,匯流排上又同時接了很多裝置,還有一些靜電防護零件等等,可能使得I2C波形不見得會是很好的方波。常見的I2C波形如圖3、4所示,但這樣的波形在I2C規範裡面,是正常可接受的,並沒有問題。
圖3 第一種常見的I2C匯流排訊號,上方為SCL,下方為SDA。 |
圖4 第二種常見的I2C匯流排訊號,如SDA訊號。 |
有鑑於此,一般I2C晶片,都會規範在訊號輸入腳位必須要有舒密特觸發(Schmitt Trigger)電路(圖5),以便於完善的解決訊號輸入後能正確的處理邏輯訊號。為此,邏輯分析儀也可循此法做較完善的訊號擷取動作。圖6為一般邏輯分析儀用單一個觸發準位(Threshold)的方式來做邏輯0與邏輯1的區分。這樣的作法,很容易在待測訊號經過觸發準位附近時,產生不可預期的邏輯變化,使得擷取出來的訊號像是雜訊或彈跳的現象。
圖5 舒密特電路設定畫面 |
圖5 邏輯分析儀採單一觸發準位模式示意圖 |
圖6 邏輯分析儀採舒密特電路觸發模式示意圖 |
若採用低通濾波(Low-pass Filter)的做法,雖然可濾除雜訊,但也可能造成線路問題的高頻雜訊也同時被濾掉,因此,無論如何,這都不是適當的解決方案。
而圖7則是啟用舒密特觸發電路後的畫面,此架構採用兩組觸發電壓,分別為Thres-high與Thres-low。兩個電壓之間,就是所謂不轉態區域,在這個區間內,不管訊號怎麼改變,都不會影響邏輯判斷。如此一來就可正常的擷取到I2C訊號,且真正的高頻雜訊也不會漏掉,也符合I2C晶片設計規範。
圖7 邏輯分析儀與示波器堆疊示意圖 |
堆疊示波器可同時看到I2C數位/類比訊號
在使用了邏輯分析儀所提供的I2C匯流排觸發與分析功能後。擷取下來的波形開始要進行問題分析階段。由於常常很多專案都是軟、硬體共同合作,參與的人很多,若無法同時看到對應的類比訊號,對於釐清問題幫助不大,尤其是線路造成的問題,使得數位訊號並無法清楚呈現出問題點。然而,使用單純邏輯分析儀堆疊示波器也沒有任何幫助,因為一般而言,邏輯分析儀可以抓的時間長度會遠大於示波器,因此,即使示波器能顯示波形,卻也不在正確的位置上。
為解決此一問題,唯有透過邏輯分析儀的觸發功能進行訊號定位,這樣抓到的類比訊號才是有意義的。圖8就是利用堆疊示波器並設定觸發之後,同時抓到數位與類比訊號。使用者可將它發送給須要看波形的人,I2C匯流排數位解碼的部分可讓使用者快速理解他所看到波形。而類比訊號的部分,則忠實的呈現出波形的原貌,兩者相結合,即成為最佳的量測方案。