Sigrok邏輯分析儀軟體(基於CY7C68013A)
關於邏輯分析儀
邏輯分析儀一直是一種重要的儀器, 在除錯數位電路時是必不可少的工具. 其形式與示波器類似, 採集被檢測訊號的電平, 並繪製時序圖進行分析.
邏輯分析儀和示波器的區別:
- 數字量和模擬量: 示波器採集的是模擬量, 電壓靈敏度是示波器效能的一個重要指標, 用於精確繪製波形, 而邏輯分析儀只採集高低電平(即0和1), 因此邏輯分析儀僅適用於數位電路分析, 不適合類比電路訊號分析.
- 通道數量: 示波器通道數量較少, 常見的為2通道和4通道, 而邏輯分析儀的通道數量基本上在8個或16個
- 協議分析: 示波器不一定帶協議分析, 但是邏輯分析儀一定帶協議分析. 協議分析就是根據指定的協議, 直接將採集到的訊號時序解析成可以閱讀的二進位制碼和ASCII碼, 檢查訊號的完整性和錯誤
- 邏輯分析儀多用於觀察數位電路中的訊號時序, 排查問題, 用於模組間通訊的開發等
- 示波器多用於觀察波形, 電平, 用於功率電路, 射頻電路開發等.
邏輯分析儀的硬體
過去, 邏輯分析儀和示波器一樣都是大塊頭裝置, 並且取樣頻率的高低, 取樣數量的多少, 支援的分析協議多或者少, 都是區分高階低端分析儀的重要因素. USB邏輯分析儀的推出,使得儀器佔位面積極小,可隨身攜帶。更重要的是由於分析, 處理和顯示是在PC上進行, 功能變得格外強大,功能還能跟軟體不斷升級.
專業型號及其價格
- Agilent 1690AD USD 28,427
- Actue TL2236 NTD48,000
- Techie Wave TWLA500 RMB12,000
- zero-plus LAP-B 702000 NT 118,000
- Link Instruments LA-55160 USD7,500
- Clock-link LA5540 USD2,500
- Janatek LA-Gold-36 1,305 €
- Janatek Annie-USB 339.9 €
- TechTools DV3400 USD1,499
- USB-Instrument ANT16-16 USD333
- Intronix LA1304 USD389
- NCI GoLogicU72-2M USD5,500
- 飛騰三環 LA-800-A RMB 11,189
- 致遠電子 LA5034 RMB 2,980
開源邏輯分析儀專案 Sigrok 的出現, 使得低端硬體也可以使用豐富的協議分析功能, 出現了價效比很高的軟硬體組合. 下圖這種形狀, 8通道最高24MHz取樣率的邏輯分析儀, 是淘寶最廉價的USB邏輯分析儀, 價格不到30 RMB.
外觀雖然基本一樣, 但是PCB有很多種
- 較早的版本
-
後續版本1
-
後續版本2
-
後續版本3
可以看到, 硬體配置是在不斷縮水的, 後期版本連HC245都省了.
還有這個開發板, 也可以實現邏輯分析儀的功能, 在淘寶上價格在20出頭
這些都是基於 CY7C68013A 晶片的方案, 在PC端的驅動以及軟體都是一樣的, 可以執行Saleae的邏輯分析儀軟體, 也可以執行Sigrok.
如果僅僅作為邏輯分析儀使用, 推薦購買成品, 尺寸小巧使用方便. 這個小裝置配合Sigrok, 有超級強大的協議庫, 堪稱邏輯分析神器. 因為常見的MCU以及嵌入式裝置之間的通訊速率不會太高, 大部分協議場景(UART, SPI,I2C, PWM等)都在10MHz以內, 用這個小裝置就能覆蓋大多數使用場景.
推薦觀看視訊Sigrok and Logic Analyzers
CY7C68013A 硬體介紹
- EZ-USB FX2系列是 Cypress 生產的, 整合USB2.0協議的微處理器, 提供8051相容的指令系統.
- FX2LP系列是FX2系列的其低功耗版本, 使用比較多的是 CY7C68013A.
- FX2LP晶片的內部主要包括高效能微處理器核心, USB2.0收發器, 智慧引擎(SIE), 增強8051核心, 16K的RAM, 4K的FIFO/IO介面, 資料匯流排, 地址匯流排和通用可程式設計介面等.
- FX2LP的CPU採用的是增強型8051核心, 指令集和標準的8051完全相容.
Sigrok 軟體介紹
Sigrok是一個邏輯分析軟體的組合, 包含以下幾部分
- libserialport 串列埠通訊庫
- libsigrok 基礎功能庫
- libsigrokdecode 協議庫
- sigrok-cli 命令列軟體
- PulseView 使用者介面軟體
- sigrok-firmware-fx2lafw 微控制器執行使用的韌體
從官網下載軟體安裝後, 使用者看到的是PulseView, 在連線上EZ-USB後, sigrok會讓CY7C68013A使用指定的韌體啟動, 實現模擬USB裝置, 採集電平和傳輸資料的功能
軟體安裝
軟體部分沒有什麼問題, 下載PulseView 64位直接安裝就行, 主要說一下驅動. 安裝包自帶Zadig, 軟體安裝完成後, 將你的分析儀連上USB資料線接到電腦上, 這時候電腦是不會找到驅動的, 掃描一陣之後會告訴你未知裝置安裝已完成. 這時候開啟Zadig (如果是win7和win10, 不要點那個XP版本), 會看到其檢測到未知的USB裝置, 接下來做以下操作
- 勾選右側的Edit, 編輯名稱, 改為fx2lafw, 改成其他應該也行
- 左側的USB ID應該顯示的是0925 3881, 如果不是的話, 可能要檢查一下是不是連了其它USB裝置?
- 綠色箭頭指的是將安裝的驅動, 應該是WinUSB (V6.1.xxx)
- 點選Install Driver開始安裝
安裝需要幾分鐘, 時間比較長
驅動安裝完成後, 在Windows裝置管理器中應該能看到fx2lafw這個硬體.
軟體執行
如果是剛裝完驅動, 需要拔插一下分析儀, 重新連線後, 再開啟PulseView, 會自動檢測到硬體並連線. 之後就可以開始使用了.
連線裝置
如果沒有連線硬體, 或者先打開了軟體再連的分析儀, 或者之前切換到demo device了,
- 點選Connect to Device
- Choose the driver: 選擇 fx2lafw (generic driver for FX2 based LAs)(fx2lafw)
- Choose the interface: 選擇 USB
- 點選 Scan for devices using driver above
- 結果框裡會出現
Saleae Logic with 8 channels
, 點中, 點選OK
常用功能
- 開啟/關閉通道: 圖示欄上的訊號夾圖示
- 設定預取樣比例: 圖示欄上的配置按鈕
- 顯示/隱藏時間窗: 圖示欄上的Show Cursors, 可以用來測量時間跨度
- 影象操作:
- 縮小: 按
-
鍵, 或滑鼠上下滾輪 - 放大: 按
+
鍵, 或滑鼠上下滾輪 - 左右移動: 滑鼠左右滾輪
- 縮小: 按
- 選擇取樣率和取樣數量
- 根據被檢測的訊號進行選擇
使用協議分析
- 通過圖示欄 Add protocol decoder, 開啟協議選擇
- 雙擊需要的協議, 會新增到時間軸上
- 點選協議標籤進行配置
使用觸發功能
需要根據協議進行選擇, 例如對於UART, 應該選擇下降沿, 只需要選中最開始發出訊號的那一路進行觸發就行, 選擇好之後, 點選Run
, 然後等待觸發.
實際測試中, 波特率9600的串列埠UART, 檢測頻率必須在50KHz以上才能正確分析
參考
- Sigrok and Logic Analyzers https://www.youtube.com/watch?v=dobU-b0_L1I
- https://forum.pjrc.com/threads/56496-About-buying-a-(not-too-expensive)-logic-analyzer
KurtE: Definitely agreed! I have never used the Saleae code, only sigrok myself; I don't want to exploit Saleae. I even contacted the eBay seller that sold it to me, to suggest sigrok PulseView in the eBay product page instead.
Since I happen to have a dev board and a logic analyzer clone, I took a picture of the two, so you don't need to take my word for them being basically the same:
Larger here. The logic analyzer enclosure just snaps open/closed, there are no screws in mine.
Both boards have the CY7C68013A microcontroller. The Atmel chips are two-wire serial EEPROMs (AT24C128 marked ATMTC169 on the dev board, AT24C02N marked ATMEL401 24C02N on the clone). The extra chip on the logic analyzer clone is an NXP LVC245 octal bus transceiver, used to buffer the logic signals. It looks like each signal has a voltage divider and a filter cap, too. My point is that considering the sigrok fw2lafw firmware works on both, the Saleae clones could be considered clones of the devkit instead, as the devices are that simple. It is the software that counts, and I definitely tell everyone I've mentioned this to use sigrok PulseView.
Oh, and I also definitely recommend the hook-type probes with this.
FWIW, I got an Analog Discovery 2 for 183€ via the Digilent Academic Discount and Kamami.com in Poland.