top of page

【How to】如何用封包產生器和協定分析儀,來分析 SPI 通訊中的錯誤?


背景


〈SPI 通訊協定〉是一種4線同步序列資料協定,為主從式同步串列通訊,可分為單工、半雙工、全雙工。通常用在資料傳輸量相對較低的電路板、或小型電子裝置上進行的短距離通訊使用。例如:感測器、記憶體裝置、時鐘、和液晶顯示器、車輪胎壓感測器、和影音遊戲控制器等。


SPI 若使用全雙工通訊,可以同時支援多個從機,快速發出多種不同回應來配合不同裝置。SPI 的缺點在於,由於匯流排上有多條線路,線路之間存在干擾(例如串音 cross talk 或雜訊 noise)的可能性很高。不過,這個問題可以透過電路板設計來解決。




Total Phase 提供的〈SPI 系列工具〉是真正的跨平台解決方案,包括:Aardvark 和 Cheetah 封包產生器、Beagle 分析儀和 Promira 協定分析平台等等,可在 Windows、Linux 和 Mac OS 等主要作業系統上運行。



技術除錯情境示範:


本次來自《Total Phase》技術QA 中,使用 Cheetah SPI 封包產生器 Beagle I2C/SPI 協定分析儀 ,來分析 SPI 設備之間的通訊;透過使用者連接通訊中,可能出現的潛在錯誤情形,示範:


  • 如何連接 Beagle I2C/SPI 協定分析儀和 Cheetah SPI 封包產生器來監控 SPI 資料。

  • 如何批次讓 Cheetah 封包產生器執行 XML 命令。



SPI 通訊設定模式


  • 主機 Master:Microcontroller

  • 從機 Slave:ASIC

  • 主機連接 Beagle I2C/SPI 協定分析儀 時,Beagle I2C/SPI 上會顯示 SPI 通訊情形。

  • 連接 Cheetah SPI 封包產生器 和 ASIC 時,會看到 Cheetah 上的通訊。

  • 分別將 Cheetah 的 MOSI、MSIO 訊號連接到 Beagle I2C/SPI 的 MOSI 和 MISO 訊號。



SPI 通訊除錯情境


在使用者介面上,無法檢顯示波器上的訊號,如下圖1、圖2 中的畫面:


  • Cheetah 和 Microcontroller 的通訊正常,並在 資料中心軟體 中正確顯示:(圖1)


然而,當連接 Microcontroller、ASIC 和 Beagle I2C/SPI 時,Beagle I2C/SPI 在 Data Center 中會顯示不正確、不完整的資料,如以下:(圖2)




SPI 通訊中的錯誤代碼對照


上(圖2)中,「Err」欄位中顯示的錯誤診斷資訊有:


  • T:表示逾時錯誤。在等待其他資料時,任務擷取逾時。(超過 250ms)。

  • M:表示封包中間錯誤。(TM)表示錯誤是在資料收集封包時開始發生的。

  • P:(P1, P2, P3 .... P7)表示部分最後位元組(P)錯誤。由於分析儀在位元組層級運行,P 錯誤意味著分析儀無法捕獲整個位元組。 P 後面的數字表示捕獲到的最後一個位元組的位數。


Beagle I2C/SPI 使用 SPI 從機的傳輸線路來建構每個任務。例如,如果分析儀顯示 1,然後看到傳輸變為非活躍狀態,則它會以 0 填入該位元組的其餘部分。當緩衝區中的最後一個位元組不完整時,就會出現部分最後一個位元組,而捕獲的資料位數會與預期資料大小不符。




Total Phase 除錯方式建議


我們建議:重新分析系統和設計,以找出顯示錯誤的根本原因。


一、先提高取樣率


首先為找出是哪個環節出錯,我們可以增加相似但不完全相同的情形做取樣。


Total Phase 共有三種不同的取樣頻率可用於監控 SPI 匯流排。根據經驗,建議採取樣頻率比出錯的匯流排的資料速率快 4 倍的頻率做樣本。


二、使用批次代碼進行通訊分析


Total Phase 《Data Center Software User Manual》提供有關 XML 命令的資訊,可透過按下「Help →Batch Commands Help System」使用,如以下:




三、批次程式碼範例


控制中心串行軟體提供了批次程式碼的功能範例,可以按原樣使用,或根據需求進行修改。

以下是 SPI 腳本清單(I2C 腳本也可用):


  • spi-eeprom-read

  • spi-eeprom-write

  • spi-flash-25P32-read

  • spi-flash-25P342-sector()-erase

  • spi-flash-25P32-write



示範程式碼如何應用


以下影片使用 Promira I2C/SPI/eSPI 多用協定分析平台 監測 SPI 通訊過程。(連接過程與 Cheetah 封包產生器 類似。)




如何連接封包產生器和協定分析儀


以下影片示範使用 Aardvark I2C&SPI 封包產生器Beagle I2C/SPI 協定分析儀 來評測 I2C 裝置。(製 Cheetah 分析 SPI 設備時類似。)




其他參考資源:






Total Phase 是全球領先的嵌入式系統解決方案供應商,提供簡單、易用、易於整合的高品質產品,夠提供深入洞察和掌握嵌入式系統的運行狀態和行為。


《翔宇科技》代理 Total Phase 全產品線,包含I2C / SPI / CAN、USB Protocol Analyzer 等模擬和除錯工具,如果您對Total Phase的產品有更多問題,請隨時與我們聯繫







延伸閱讀

歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page