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