BSP, Firmware 或 HW 工程師在 debug 時如果要驗證訊號是否正確, 通常會用示波器做量測, 與此同時也可以用邏輯分析儀來分析訊號是否正確, 這裡紀錄一下用 Saleae Logic 8 做 SPI 訊號的分析.
Saleae Logic 8 規格
Saleae 官網有邏輯分析儀的介紹, 而 Logic 8 是這個系列裡面最低階的型號, 往上還有 Logic 8 Pro 跟 Logic Pro 16. 但是 Logic 8 已經符合我最常見的應用場景了 (I2C 和 SPI 的訊號分析).
Saleae Logic 8 | Saleae Logic 8 Pro | Saleae Logic 16 Pro | |
---|---|---|---|
輸入端 | |||
多用途(類比/數位/兩者) | 8 | 8 | 16 |
輸入電阻 | 1 MΩ | 2 MΩ | 2 MΩ |
輸入電容 | 10 pF | 10 pF | 10 pF |
輸入保護 | ± 25V | ± 25V | ± 25V |
數位 | |||
取樣率(最高) | 100 MS/s | 500 MS/s | 500 MS/s |
最快的數位訊號 | 25 MHz | 100 MHz | 100 MHz |
取樣深度(典型) | 10+ 十億 | 10+ 十億 | 10+ 十億 |
支援的Logic等級 | 1.8V - 5.5V | 1.2V - 5.5V | 1.2V - 5.5V |
適用於 RS-232、422/3、 485 | 是,直接 | 是,直接 | 是,直接 |
臨界電壓 | .6V 低/ 1.2V高 | 可選擇的.6V/ .9V/ 1.65V | 可選擇的.6V/ .9V/ 1.65V |
類比 | |||
取樣率(最高) | 10 MS/s | 50 MS/s | 50 MS/s |
頻寬 (-3dB) | 1 MHz | 5 MHz | 5 MHz |
位元數 | 10 位元 | 12 位元 | 12 位元 |
輸入電壓範圍 | 0 V to 5 V | -10 V to 10 V | -10 V to 10 V |
衰減 @ Nyquist | -50 dB或更好 | -50 dB或更好 | -50 dB或更好 |
通道對通道串擾 | -50 dB或更好 | -50 dB或更好 | -50 dB或更好 |
內含 | |||
測試引線組 | x2 | x2 | x4 |
測試夾八件組 | x2 | x2 | x4 |
USB 傳輸線及攜帶盒 | 是 | 是 | 是 |
實體 | |||
尺寸 | 2.1” x 2.1” x .46”( 53 x 53 x 12 mm ) | 2.1” x 2.1” x .46”( 53 x 53 x 12 mm ) | 3.6” x 3.6” x .59”( 92 x 92 x 15 mm ) |
重量 | 2.1 oz ( 60 g ) | 2.1 oz ( 60 g ) | 7.8 oz ( 220 g ) |
USB | |||
USB類型 | USB 2.0 | USB 3.0 | USB 3.0 |
SPI (Serial Peripheral Interface Bus,串行外設介面)
晶片間的通訊最常見 I2C 與 SPI, 而且各有優缺點;
SPI 不像 I2C 有嚴格訊號定義, Master 與 Slave 有 SCLK, MOSI, MISO 及 CS 的連接使 SPI 通訊可實現, 這裡我們用以下標準實現 (Master Ouput Slave Input, 反之亦然; CS 代表是否被選取, 如果 SPI BUS 上僅有一個裝置可忽略).
※採用 SPI MODE = 1 (CPOL=0, CPHA=1)
SPI Mode | CPOL | CPHA | SCLK Idle State | Sampling Edge |
---|---|---|---|---|
0 | 0 | 0 | Low | Rising edge SCLK |
1 | 0 | 1 | Low | Falling Edge SCLK |
2 | 1 | 0 | High | Falling Edge SCLK |
3 | 1 | 1 | High | Rising edge SCLK |
※ Write/ Read Frame 介紹
Field | Size | Description |
---|---|---|
OP | 4bits | Write Frame: 0001 (dec=1), Read Frame: 0010 (dec=2) or more |
BC | 4bits | Byte Count; ignored here, always 0 |
ADDR | 8bits | 8 bit address |
WDATA | 8bits | Write Data |
WSTATUS | 8bits | Write status (Dummy read, slave send write was successful =1) |
RDATA | 8bits | Read Data |
RSTATUS | 8bits | Read status: 1 menas slave is ready with data, 0 means slave is not ready with data. |
Logic 2
官網下載 Logic 2 完成安裝後, 軟體會偵測插上去的 Saleae Logic 產品.
設置 SPI 訊號分析
連接 Logic 8 後,
- 開啟新 Session
- 設定分析
- 選擇 SPI 分析
- 設定對應的探針訊號 (我們用 CH0: SCLK, CH1: MISO, CH2: MOSI)
- SPI MODE = 1 (CPOL=0, CPHA=1)
完成後, 就可以進行量測分析訊號是否如我們預期運作.