介紹
本應(yīng)用筆記介紹了如何使用PicoScope混合信號示波器(MSO)調(diào)試控制ADI公司AD5325 Quad DAC的I2C總線。 MSO有兩個模擬輸入通道,它們連接到Quad DAC的CH A和CH B輸出。該儀器還有16個數(shù)字輸入通道。在此應(yīng)用中,僅使用兩個數(shù)字輸入通道D0和D1,連接到SDA串行數(shù)據(jù)線和I2C總線的SCL串行時鐘線。

圖1:探針連接

1.1模擬顯示
圖2顯示了PicoScope MSO的屏幕顯示。數(shù)據(jù)來自I2C總線數(shù)據(jù)傳輸。顯示屏分為三個面板:上面板顯示兩個模擬通道A和B以及I2C總線傳輸數(shù)據(jù)的概述。中間面板顯示兩個數(shù)字通道D0和D1,下面板顯示I2C解碼數(shù)據(jù)。 上面的藍色曲線顯示CH A輸出電壓從1.9 V切換到0.6 V.使用儀器上提供的光標可以更準確地讀取這些電壓值(圖3)。電壓階躍發(fā)生的時間點是I2C數(shù)據(jù)的第三個字節(jié)的結(jié)束。接下來是確認位和另一次傳輸。 較低的紅色曲線顯示CH B輸出電壓電平從1.9 V切換到0.6 V.此波形的垂直比例因子在顯示屏的右側(cè)以紅色顯示。同樣,電平切換時的實際點是DAC已經(jīng)接收到三個數(shù)據(jù)字節(jié)。

1.2I2C數(shù)據(jù)概述
在模擬波形的正下方,顯示兩個I2C數(shù)據(jù)傳輸?shù)母攀觥C看无D(zhuǎn)移包含: 1.START條件。 2.DAC地址。 3.通道地址的數(shù)據(jù)字節(jié)。 4.通道DAC值的兩個數(shù)據(jù)字節(jié)。 5.停止條件。

圖2:雙通道I2C數(shù)據(jù)傳輸 圖3:使用XY光標顯示測量開關(guān)幅度和時間

2.中間面板
該面板顯示I2C總線的SDA串行數(shù)據(jù)和SCL串行時鐘線上的原始數(shù)字數(shù)據(jù)。此顯示將顯示數(shù)據(jù)是否發(fā)生任何錯誤,這可能是由于噪音或其他信號的干擾造成的。 如果總線的協(xié)議應(yīng)用于每個數(shù)據(jù)字節(jié),則可以從該顯示器手動解碼I2C命令,但這將是費力的并且容易發(fā)生錯誤。使用PicoScope提供的I2C解碼速度要快得多,如下圖所示。


3.下面板
該面板是解碼的I2C串行協(xié)議顯示器。為了更清楚地了解這些數(shù)據(jù)(圖5)。
第一列是PicoScope分配的數(shù)據(jù)包編號:在這種情況下,有12個地址和數(shù)據(jù)字節(jié)數(shù)據(jù)包加上啟動/停止條件。
第二列顯示數(shù)據(jù)包或事件的類型:地址,數(shù)據(jù),啟動或停止。
第三列是解碼地址,在這種情況下是0C,它是DAC的地址。
下一列定義數(shù)據(jù)是讀還是寫。在這種情況下,兩次傳輸都是寫入。
第五列顯示解碼數(shù)據(jù)。在這種情況下,第一個數(shù)據(jù)字節(jié)01表示DAC的CH A,而2C和11表示要發(fā)送到DAC以請求1880 mV的新輸出電平的數(shù)據(jù)(2C11)。
字節(jié)9和10示出了用數(shù)據(jù)02選擇CH B,并且接下來的兩個字節(jié)請求不同的輸出電平(2C23)。
第六列顯示每個地址和數(shù)據(jù)傳輸都已得到確認。
最后兩列表示每次轉(zhuǎn)移的時間。
見參考。1(附錄B - 參考資料),詳細介紹AD5325 DAC預(yù)期的數(shù)據(jù)格式。


4.導(dǎo)出數(shù)據(jù)
解碼后的I2C數(shù)據(jù)可以導(dǎo)出到Excel電子表格,如圖5所示。 圖4的結(jié)果:

圖4:導(dǎo)出的I2C數(shù)據(jù)

5.公交車時間
總線時序測量可以自動進行,也可以用光標手動進行。圖4說明了使用游標來測量數(shù)據(jù)傳輸過程中的事件時間。光標測量CH A和CH B電壓切換到較低電壓電平之間的時間。測得為1.4毫秒。 可以利用來自解碼數(shù)據(jù)的定時自動地進行類似的結(jié)果。這可以在圖3和圖5中顯示的相同數(shù)據(jù)中看到。


6.觸發(fā)點
儀器可以在CH A上捕獲的模擬切換邊沿上觸發(fā),但在這種情況下,觸發(fā)條件設(shè)置是在數(shù)字通道D0切換到高電平時(圖5)。 圖6顯示了第一次數(shù)據(jù)傳輸發(fā)生時觸發(fā)點(t = 0),這是第一個“開始”命令。

圖5:在D0的上升沿設(shè)置數(shù)字觸發(fā) 圖6:多個I2C數(shù)據(jù)包傳輸

7.獲得多個I2C塊傳輸
在更復(fù)雜的系統(tǒng)中,我們可能希望獲得多個I2C數(shù)據(jù)傳輸塊。這可以使用串行解碼窗口中的Accumulate選項來完成。我們還將看到PicoScope如何將采集存儲器分成1到10,000個緩沖區(qū)。每次發(fā)生有效的觸發(fā)條件時,記錄將存儲在新的緩沖區(qū)中。 圖6說明了更復(fù)雜的數(shù)據(jù)傳輸序列。串行解碼面板中的“累計”按鈕已打開,因此以藍色突出顯示。在該測試中,獲得5個緩沖液,如頂部工具欄中所示。左側(cè)和右側(cè)雙箭頭使我們能夠選擇顯示哪個緩沖區(qū):顯示當前緩沖區(qū)5。 捕獲的序列是針對五種不同輸出電壓電平的五次觸發(fā)I2C數(shù)據(jù)傳輸。表1列出了兩個DAC請求的輸出電壓電平序列。 圖5顯示了為五次傳輸捕獲和解碼的命令序列。 例如,將CH A輸出電平切換為1.015 V的命令是第三個緩沖區(qū)中的數(shù)據(jù)傳輸:

圖7:I2C數(shù)據(jù)傳輸?shù)捻樞?

8.檢查波特率
通過啟用“視圖”菜單中的選項,可以在解碼窗口中顯示數(shù)據(jù)傳輸?shù)牟ㄌ芈省R部梢酝ㄟ^放大數(shù)字波形顯示來檢查它。該傳輸?shù)牟ㄌ芈蕿?9 kbaud,數(shù)字時鐘D0波形上的delta光標測量值為11.5μs。

圖8:使用光標自動測量波特率

9.結(jié)論
現(xiàn)在許多電路都包含模擬和數(shù)字組件,因此需要可以獲取數(shù)字和模擬信號的測試設(shè)備。然后,必須在顯示窗口上同步這些數(shù)據(jù),以便進行深入分析,以找出硬件或軟件中的任何故障情況。