《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 解決方案 > 如何使用帶有I2C和SPI解碼的示波器排查系統(tǒng)問(wèn)題

如何使用帶有I2C和SPI解碼的示波器排查系統(tǒng)問(wèn)題

2024-05-15
來(lái)源:泰克科技
關(guān)鍵詞: 泰克科技 SPI 示波器

  大多數(shù)基于微控制器的設(shè)計(jì)都使用I2C或SPI,,或兩者兼用,,來(lái)實(shí)現(xiàn)控制器之間以及控制器與外圍芯片之間的通信。當(dāng)芯片發(fā)送特定的I2C或SPI數(shù)據(jù)包時(shí),,能夠看到嵌入式系統(tǒng)內(nèi)部的操作對(duì)于排除故障至關(guān)重要,。許多管理相對(duì)較慢參數(shù)的芯片,,如溫度傳感器、電機(jī)控制器,、人機(jī)界面或電源管理等,,都將這些總線作為與系統(tǒng)其他部分通信的主要手段。其他高速芯片,,如通信集成電路,、時(shí)鐘和模數(shù)轉(zhuǎn)換器,通常也通過(guò)這些總線進(jìn)行配置,。例如,,在電源啟動(dòng)后排查冷卻風(fēng)扇問(wèn)題時(shí),查看發(fā)送到風(fēng)扇控制器集成電路的SPI命令的時(shí)序和結(jié)構(gòu),,以及風(fēng)扇的驅(qū)動(dòng)信號(hào)和電源,,可能會(huì)有所幫助。

  I2C和SPI總線定義明確且相對(duì)穩(wěn)健,,但仍然可能受到噪聲,、板級(jí)布局、復(fù)位問(wèn)題以及實(shí)現(xiàn)上的微妙差異的影響,。這些問(wèn)題有時(shí)可能導(dǎo)致總線錯(cuò)誤和鎖定,。配備解碼功能的示波器能夠同時(shí)顯示總線數(shù)據(jù)和總線信號(hào)的狀態(tài)。

  I2C

  I2C,,或“Inter-IntegratedCircuit”(集成電路間通信),,最初是在1980年代初由飛利浦(Philips)開(kāi)發(fā)的,旨在提供一種低成本的方式連接控制器和外圍芯片,。自那以后,,它已經(jīng)發(fā)展成為嵌入式系統(tǒng)中設(shè)備間通信的全球標(biāo)準(zhǔn)。這種簡(jiǎn)單的雙線設(shè)計(jì)被廣泛應(yīng)用于各種芯片中,,如輸入/輸出模擬/數(shù)字轉(zhuǎn)換器,、數(shù)字/模擬轉(zhuǎn)換器、溫度傳感器,、微控制器和微處理器,,包括眾多領(lǐng)先芯片制造商的產(chǎn)品,如ADI,、Atmel,、Infineon、Cypress,、Intel,、Maxim,、NXP、SiliconLabs,、ST,、TI等。

屏幕截圖 2024-05-15 160352.png

  I2C的物理雙線接口由雙向串行時(shí)鐘線(SCL)和數(shù)據(jù)線(SDA)組成,。I2C支持總線上多個(gè)主設(shè)備和從設(shè)備,,但任一時(shí)間內(nèi)只能有一個(gè)主設(shè)備處于活動(dòng)狀態(tài)。任何I2C設(shè)備都可以連接到總線上,,允許任何主設(shè)備與從設(shè)備交換信息,。每個(gè)設(shè)備通過(guò)唯一的地址進(jìn)行識(shí)別。設(shè)備根據(jù)其功能可以作為發(fā)送器或接收器,。支持三種比特率:100kb/s(標(biāo)準(zhǔn)模式),、400kb/s(快速模式)和3.4Mb/s(高速模式)。設(shè)備的最大數(shù)量由最大電容400pF決定,,大約為20-30個(gè)設(shè)備,。

屏幕截圖 2024-05-15 160427.png

  有兩種方法可以對(duì)I2C地址進(jìn)行分組以進(jìn)行解碼:一種是7位加上一個(gè)讀寫(xiě)(R/W)位方案,另一種是8位(一個(gè)字節(jié)),,其中R/W位作為地址的一部分,。7位地址方案是固件和軟件設(shè)計(jì)工程師遵循的指定I2C標(biāo)準(zhǔn)。但許多其他工程師使用8位地址方案,。Tektronix示波器可以解碼這兩種方案中的數(shù)據(jù),。

  設(shè)置I2C總線解碼

  在Tektronix示波器上,按下面板上的總線按鈕,,可以定義輸入到示波器的信號(hào)作為一個(gè)總線,。通過(guò)簡(jiǎn)單地定義哪些通道上有時(shí)鐘和數(shù)據(jù),以及用于確定邏輯一和零的數(shù)字閾值,,您可以使示波器理解跨總線傳輸?shù)膮f(xié)議,。

屏幕截圖 2024-05-15 160456.png

  解讀I2C總線

  時(shí)間相關(guān)的波形和總線解碼顯示對(duì)許多硬件工程師來(lái)說(shuō)是一個(gè)熟悉且有用的格式。解碼后的總線波形顯示了一個(gè)I2C消息的元素,。

屏幕截圖 2024-05-15 160535.png

  對(duì)于固件工程師來(lái)說(shuō),,結(jié)果表格(ResultsTable)格式可能更有用。這種帶時(shí)間戳的總線活動(dòng)顯示可以輕松地與軟件列表進(jìn)行比較,,并且允許輕松計(jì)算執(zhí)行速度,。

  結(jié)果表還提供了回到波形顯示的鏈接。您可以在表格顯示中點(diǎn)擊一行,,示波器會(huì)自動(dòng)放大對(duì)應(yīng)的總線信號(hào),,并在屏幕的下半部分顯示結(jié)果解碼的總線波形。

屏幕截圖 2024-05-15 160607.png

  在I2C總線上觸發(fā)

  在基于一個(gè)或多個(gè)串行總線的系統(tǒng)調(diào)試中,示波器的一個(gè)關(guān)鍵能力是能夠隔離并捕獲特定事件的總線觸發(fā),。當(dāng)總線觸發(fā)被正確設(shè)置后,,示波器將捕獲所有輸入信號(hào),并且一個(gè)指定的總線事件將被定位在觸發(fā)點(diǎn),。這個(gè)例子展示了在地址0x50和數(shù)據(jù)0x00上觸發(fā)。

屏幕截圖 2024-05-15 160641.png

  在I2C總線上搜索

  在Tektronix示波器上,,您可以使用自動(dòng)化的Wave Inspector搜索功能找到所有符合搜索條件的總線事件,,并確定它們發(fā)生的次數(shù)。設(shè)置類(lèi)似于總線觸發(fā)設(shè)置,,允許示波器找到并標(biāo)記所有指定的總線事件,。在這個(gè)例子中,自動(dòng)搜索正在尋找數(shù)據(jù)值0x16,。這個(gè)數(shù)據(jù)值在獲取的波形中只出現(xiàn)一次,,串行數(shù)據(jù)包的位置用粉紅色括號(hào)圖標(biāo)顯示。

  SPI

  串行外設(shè)接口總線(SPI)最初由摩托羅拉在1980年代末為其68000系列微控制器開(kāi)發(fā),。由于該總線的簡(jiǎn)單性和受歡迎程度,,多年來(lái)許多其他制造商也采用了這一標(biāo)準(zhǔn)。它現(xiàn)在被廣泛應(yīng)用于嵌入式系統(tǒng)設(shè)計(jì)中常用的各種組件中,。SPI主要用于微控制器及其直接外圍設(shè)備之間,。它在手機(jī)和其他移動(dòng)設(shè)備中很常見(jiàn),用于CPU,、鍵盤(pán),、顯示屏和內(nèi)存芯片之間的數(shù)據(jù)通信。

  工作原理

  SPI總線是一個(gè)主/從四線串行通信總線,。這四個(gè)信號(hào)是時(shí)鐘(SCLK),、主輸出/從輸入(MOSI)、主輸入/從輸出(MISO)和從選擇(SS),。每當(dāng)兩個(gè)設(shè)備通信時(shí),,一個(gè)被稱(chēng)為“主設(shè)備”,另一個(gè)被稱(chēng)為“從設(shè)備”,。主設(shè)備驅(qū)動(dòng)串行時(shí)鐘,。數(shù)據(jù)的發(fā)送和接收是同時(shí)進(jìn)行的,使其成為一個(gè)全雙工協(xié)議,。

屏幕截圖 2024-05-15 160719.png

  與在總線上的每個(gè)設(shè)備擁有唯一地址不同,,SPI使用SS線來(lái)指定數(shù)據(jù)是傳輸給哪個(gè)設(shè)備或來(lái)自哪個(gè)設(shè)備。因此,,總線上的每個(gè)獨(dú)特設(shè)備都需要從主設(shè)備獲得自己的SS信號(hào),。如果有3個(gè)從設(shè)備,就有3個(gè)SS信號(hào)從主設(shè)備到每個(gè)從設(shè)備。

  SPI也可以用從設(shè)備級(jí)聯(lián)的方式接線,,每個(gè)從設(shè)備依次執(zhí)行操作,,然后將結(jié)果發(fā)送回主設(shè)備(這可以用來(lái)驗(yàn)證數(shù)據(jù)路徑的完整性)。

  在某些情況下,,如果從設(shè)備到主設(shè)備的通信不是必需的,,MISO信號(hào)可能會(huì)被完全省略。在其他情況下,,只有一個(gè)主設(shè)備和一個(gè)從設(shè)備,,SS信號(hào)被接地。這通常被稱(chēng)為2線SPI,。

  當(dāng)發(fā)生SPI數(shù)據(jù)傳輸時(shí),,一個(gè)8位數(shù)據(jù)字在MOSI上移出,同時(shí)在MISO上移入另一個(gè)8位數(shù)據(jù)字,。這可以被視為一個(gè)16位的循環(huán)移位寄存器,。當(dāng)傳輸發(fā)生時(shí),這個(gè)16位移位寄存器移動(dòng)8個(gè)位置,,因此交換了主從設(shè)備之間的8位數(shù)據(jù),。一對(duì)寄存器,時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA),,決定了數(shù)據(jù)在哪個(gè)時(shí)鐘邊沿上被驅(qū)動(dòng),。每個(gè)寄存器有兩個(gè)可能的狀態(tài),這允許四種可能的組合,,所有這些組合彼此不兼容,。因此,主/從設(shè)備對(duì)必須使用相同的參數(shù)值進(jìn)行通信,。如果使用了不同配置的多個(gè)從設(shè)備,,主設(shè)備每次需要與不同的從設(shè)備通信時(shí)都必須重新配置自己。

  設(shè)置SPI總線解碼

屏幕截圖 2024-05-15 163343.png

  在這個(gè)例子中,,SPI信號(hào)通過(guò)示波器上的模擬通道(通道1,、通道2和通道3)上的無(wú)源探頭被捕獲。數(shù)字通道也可以用于總線解碼,。使用總線配置菜單,,您可以通過(guò)指定連接到時(shí)鐘、數(shù)據(jù)和從選擇信號(hào)的通道,、閾值,、極性和字大小來(lái)定義SPI總線。

屏幕截圖 2024-05-15 160949.png

  解讀SPI總線

  通過(guò)將顯示模式設(shè)置為“總線和波形”,,可以快速驗(yàn)證每個(gè)輸入信號(hào)的數(shù)字解釋?zhuān)M信號(hào)與相應(yīng)閾值電壓的比較),。這些數(shù)字信號(hào)(綠色表示高電平,,藍(lán)色表示低電平)然后根據(jù)SPI協(xié)議進(jìn)行解釋。當(dāng)正確設(shè)置時(shí),,示波器可以顯示解碼結(jié)果,。

  通過(guò)對(duì)SPI總線上的通信事件進(jìn)行解碼,可以輕松識(shí)別數(shù)據(jù)傳輸?shù)拈_(kāi)始和結(jié)束,,以及傳輸?shù)木唧w數(shù)據(jù)內(nèi)容,。這對(duì)于調(diào)試SPI通信、驗(yàn)證數(shù)據(jù)完整性及識(shí)別潛在的通信問(wèn)題至關(guān)重要,。

屏幕截圖 2024-05-15 161205.png

  考慮一個(gè)使用級(jí)聯(lián)SPI架構(gòu)的示例系統(tǒng),。這個(gè)子系統(tǒng)控制一個(gè)電壓控制振蕩器(VCO),為系統(tǒng)的其余部分提供射頻時(shí)鐘,。VCO通過(guò)主CPU寫(xiě)入六個(gè)24位字來(lái)初始化。信號(hào)似乎滿足SPI的電氣規(guī)范,,但VCO沒(méi)有產(chǎn)生正確的頻率,。

  結(jié)果表視圖可以用來(lái)檢查VCO的初始化。示波器可以設(shè)置為在SPI從選擇信號(hào)變?yōu)榛顒?dòng)狀態(tài)時(shí)觸發(fā),。當(dāng)系統(tǒng)上電時(shí),,示波器將捕獲并顯示初始化序列。

  在SPI總線上觸發(fā)

  在上面的例子中,,我們使用了一個(gè)簡(jiǎn)單的SS活動(dòng)觸發(fā),。Tektronix示波器中的完整SPI觸發(fā)能力包括以下類(lèi)型:

屏幕截圖 2024-05-15 161408.png

  這些觸發(fā)器允許您隔離并捕獲您感興趣的特定總線流量,而解碼功能使您能夠立即看到傳輸過(guò)總線的每條消息的內(nèi)容,。

屏幕截圖 2024-05-15 161503.png

  在SPI總線上搜索

  為了找到符合特定搜索條件的所有總線事件,,可以使用自動(dòng)化的Wave Inspector搜索功能。設(shè)置類(lèi)似于總線觸發(fā)設(shè)置,,并將找到并標(biāo)記所有指定的總線事件,。在這個(gè)例子中,自動(dòng)搜索正在尋找24位數(shù)據(jù)值0x00002X,。這個(gè)數(shù)據(jù)值在獲取的波形中出現(xiàn)了23次,。前面板的導(dǎo)航箭頭按鈕可以輕松在標(biāo)記的事件之間導(dǎo)航。顯示底部附近的粉紅色括號(hào)圖標(biāo)顯示了指定的一個(gè)串行數(shù)據(jù)包的位置,。




更多精彩內(nèi)容歡迎點(diǎn)擊==>>電子技術(shù)應(yīng)用-AET<<

3bff459604b6c9954731105876ec40d.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。