top of page

用 Saleae Logic Analyzer 分析 SPI 匯流排:快速掌握波形擷取與協定解碼技巧

  • 15小时前
  • 讀畢需時 6 分鐘

《 快速進入本文重點 》



〈SPI 序列周邊介面〉是嵌入式系統中最常見的高速序列通訊介面,廣泛應用於 Flash、EEPROM、ADC、DAC、LCD、感測器、FPGA 等裝置。



首先,簡介 SPI 通訊:


SPI 以同步式(Synchronous)的全雙工序列通訊運作,由一個 Master 控制一個/多個 Slave 裝置。資料傳輸時,Master 提供時脈(Clock),並與 Slave 同步交換資料。


基本 SPI 通訊由 4 條訊號線組成:

  • SCLK(Serial Clock):由 Master 提供時脈訊號

  • MOSI(Master Out Slave In):Master 傳送資料至 Slave

  • MISO(Master In Slave Out):Slave 回傳資料給 Master

  • CS / SS(Chip Select / Slave Select):選擇欲通訊的 Slave 裝置


SPI 基本通訊配置
▲ SPI 基本通訊配置
由一個 Master、三個 Slave 組成的 SPI 通訊
▲ 由一個 Master、三個 Slave 組成的 SPI 通訊 

SPI 最大特色包括:高傳輸速率、全雙工(Full Duplex)通訊、不需裝置位址(Address)、通訊延遲低、可支援多個 Slave。十分適合需要高速資料交換的應用,例如以下場景:


雖然 SPI 架構簡單、傳輸效率高,但只要時序、時脈或設定稍有錯誤,就可能造成資料讀寫異常。硬體開發與韌體除錯過程中,需要頻繁地透過邏輯分析儀(Logic Analyzer)監控傳輸訊號和波型。


Saleae Logic Analyzer 邏輯分析儀兼具高速取樣使用簡單,可快速將 SPI 訊號轉換為可讀的資料內容,讓工程師迅速找出問題所在。除了 SPI,Saleae Logic Analyzer 還能分析 CAN、I3C、MDIO……..等超過 20 種不同協定。

Eagletek 翔宇科技獨家代理 Saleae 邏輯分析儀


使用 Saleae Logic Analyzer 擷取 SPI 訊號


最常見的 SPI 通訊,由一個 Clock 時脈訊號、兩個 Data signal (MISO 和 MOSI)和一個 Enable signal 啟動。使用〈Saleae Logic Analyzer〉進行除錯,其內建軟體〈Logic 2〉具備 SPI Protocol Analyzer 功能,可將原本只有高低電位變化的數位波形,自動解碼為 HexBinaryDecimal ASCII 等資料格式,大幅降低人工判讀波形的時間。透過正確的接線與參數設定,即可快速完成 SPI 匯流排的分析。


Saleae 邏輯分析儀 接孔
▲ Saleae Logic Analyzer 邏輯分析儀 接孔與指示燈
SPI 訊號在 Saleae Logic Analyzer 上呈現的波型
▲ SPI 訊號在 Saleae Logic Analyzer 上呈現的波型


Step 1:連接 Logic Analyzer 至 SPI 匯流排


首先,將 Saleae Logic Analyzer 連接至待測 DUT,並確保所有訊號都與 DUT 共地(Common Ground):



※ 若實際應用中沒有使用 MISO 或 CS 訊號,Saleae 的 SPI Analyzer 也支援將未使用的通道設定為 None,只要有 Clock 與一條資料線(MOSI 或 MISO)即可完成基本的 SPI 解碼。




Step 2:開始擷取波形


完成接線後,開啟 Logic 2 軟體,設定適當的數位取樣率後開始錄製。為了完整還原 SPI 訊號,建議取樣率至少設定為 SPI Clock 的 4~10 倍。例如,若 SPI 時脈為 20 MHz,建議設定 200 MS/s 左右的取樣率,以確保每個位元都能被精確擷取。錄製完成後,即可用滑鼠放大波形,確認 CS、SCLK、MOSI 與 MISO 的時序是否正常。




Step 3:新增 SPI Analyzer


完成擷取後,在 Logic 2 使用畫面右側點選 Add Analyzer,選擇「SPI」(也可以進階選擇「SPI Flash」、「QSPI」等設定)。

接著依序設定:

  • Clock:選擇 SCLK 所在通道

  • MOSI:選擇 MOSI 通道

  • MISO:選擇 MISO 通道(若未使用可設為 None)

  • Enable(CS):選擇 Chip Select 通道(※ 若沒有可設為 None,如下圖)

若無選擇 Chip Select 通道,設為 None
若無選擇 Chip Select 通道,設為 None

此外,還需設定 SPI 通訊格式,包括:

  • Bit Order:MSB First 或 LSB First

  • Bits per Transfer:每次傳輸位元數(常見為 8-bit,也可設定至 64-bit)

  • Clock Polarity(CPOL):Clock 閒置時為 High 或 Low

  • Clock Phase(CPHA):資料於 Clock 的前緣或後緣取樣

  • Enable Active Level:設定 CS 為 Active Low 或 Active High(若有使用 CS)


設定完成後,Saleae 便會立即將波形解碼,直接顯示每筆 SPI 傳輸內容。


設定解碼畫面
設定解碼畫面 1
設定解碼畫面
設定解碼畫面 2

※ 若解碼結果與預期不符,不一定代表硬體故障,也可能是 Analyzer 的設定與實際 SPI 規格不一致。例如:

  • Clock Polarity(CPOL) 設定錯誤,可能導致 Logic 軟體顯示 Settings Mismatch 或 Clock Idle State 錯誤提示。

  • Clock Phase(CPHA) 設定不正確,則可能造成資料位元錯位(Bit Shift),導致解碼內容完全不同。


這些情況,通常只需切換 CPOL 或 CPHA,即可快速確認哪一種 SPI Mode(Mode 0~Mode 3)才是待測裝置使用的設定。(資料來源:Saleae)



Step 4:多個 SPI 裝置的分析技巧 (兩種情況)


一、共用 MISO 和 MOSI 的設置

若要將多個設備連接到同一個 SPI 匯流排時,只需增加更多 Analyzer 連接不同 Slave,每個 Slave 都需要一個 Enable signal;所有 Analyzer 可共享同一個時脈、MISO 和 MOSI 訊號。


當一條 SPI 匯流排連接多個 Slave 時,每個裝置通常都有各自獨立的 CS(Chip Select) 訊號。Saleae Logic Analyzer 允許在同一筆擷取資料中新增多個 SPI Analyzer,共用相同的 SCLK、MOSI 與 MISO 通道,但分別指定不同的 CS 通道,即可同時分析多個 SPI 裝置的通訊內容,而不需重新錄製波形。


二、MISO 和 MOSI 的不同設置

在某些情況下,可能需要對兩個資料通道設定不同的參數。這可以透過使用兩個 SPI 分析儀輕鬆實現。 Saleae Logic Analyzer 內的軟體對「共享相同通道的分析儀數量」沒有限制,因此只需添加兩個使用相同時脈的 SPI 分析儀,並啟用對應的通道。然後,在每個分析儀上,停用其中一個資料通道。例如以下操作方式:


  • SPI Analyzer 1

    • MOSI channel - MOSI input selected

    • MISO channel - “none”


  • SPI Analyzer 2

    • MOSI channel - “none”

    • MISO channel - MISO input selected



Step 5:修正資料位元對齊(Alignment)問題


有些情況下,Analyzer 會無法擷取到完整的 SPI 封包,例如:開始錄製時已經在進行傳輸過程,或未使用 CS 訊號進行同步,可能導致 Analyzer 無法正確判斷每個 Byte 的起始位置,造成資料解碼錯位。


此時,可先在第一個有效 SPI 封包前加入 Timing Marker,再將 Marker 前的資料刪除(※ 注意,此操作無法撤銷)讓 Analyzer 從正確的位置重新開始解碼,即可恢復正常的 Byte 對齊。


修正資料位元對齊
修正資料位元對齊

透過 Saleae Logic Analyzer,即使面對高速 SPI 匯流排,也能快速完成訊號擷取、協定解碼與時序驗證,大幅提升硬體除錯與韌體開發效率。




結語


當 SPI 通訊發生異常時,問題往往不是出在程式本身,而是出在接線、時序或通訊設定等細節。Saleae Logic Analyzer 能將抽象的數位訊號轉換為清晰易讀的波形與資料,協助工程師快速驗證 CS 是否正確啟用、Clock 是否穩定、資料是否正確傳輸,以及 SPI Mode 是否設定一致。


透過高速取樣、即時錄製與自動協定解碼,即使是複雜的 SPI 匯流排,也能快速定位問題、縮短除錯時間,讓硬體開發與韌體驗證更加有效率。若您對 Saleae Logic Analyzer 或各種高速匯流排除錯有興趣,歡迎聯絡 Eagletek 翔宇科技




延伸閱讀:



參考資料:

Eagletek 翔宇科技獨家代理 Saleae 邏輯分析儀






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