格安ロジックアナライザをLinux版のPulseViewで使ってみた話

前回に引き続き、怪しい格安ロジックアナライザを試していきます

こいつが1150円で購入できる怪しいロジックアナライザです

HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]

※画像クリックで商品ページが開きます

とりあえずこいつはSaleae Logicデバイスのクローンだということまでは前回までで判明しました
安定しているかはさておき、色んな意味でお勧めできません

とりあえず普通に使う(使えるようにする)ために今回はオープンソースなsigrokを使ってテストしていきます

環境

Linux Mint 17.3 Rosa

sigrokの導入

やり方はいくつかありますが、まずは簡単にパッケージから導入してみます
なお、パッケージには古いためか後述するpulseview(GUI)がありません

1. sigrok-cuiのインストール

まずはテストなのでCUI上でデバイスが認識できるかを確認します

sudo apt-get install sigrok

で必要なものは入る...はずです
足りなければ別途入れてください

2. デバイス詳細を表示してみる

ドライバは汎用ドライバ(fx2lafw)を使えばいいらしいので、まずはコンソールからデバイスをshowして通信できるか確認しましょう

sigrok-cli -d fx2lafw --show
sr: ezusb: Unable to open firmware file /usr/share/sigrok-firmware/fx2lafw-saleae-logic.fw for reading: No such file or directory
sr: fx2lafw: Firmware upload failed for device 0.
The following devices were found:
fx2lafw - Saleae Logic with 8 probes: 0 1 2 3 4 5 6 7

...あ、あれ?
ファームウェアがないっていわれました
一緒に導入されないんですね

3. ファームウェアの導入

仕方ないので、ちょっと強引ですが公式のバイナリをダウンロードして手動で導入します

cd ~
wget http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw-bin-0.1.6.tar.gz
tar -zxvf sigrok-firmware-fx2lafw-bin-0.1.6.tar.gz
sudo mv sigrok-firmware-fx2lafw-bin-0.1.6/* /usr/share/sigrok-firmware/

再度やってみます

sigrok-cli -d fx2lafw --show
fx2lafw:conn=1.8 - Saleae Logic with 8 probes: 0 1 2 3 4 5 6 7
Supported driver options:
    conn
Supported device options:
    Supported triggers: 0 1 
    samplerate - supported samplerates:
      20 kHz
      25 kHz
      50 kHz
      100 kHz
      200 kHz
      250 kHz
      500 kHz
      1 MHz
      2 MHz
      3 MHz
      4 MHz
      6 MHz
      8 MHz
      12 MHz
      16 MHz
      24 MHz

いけました
まぁ結局、Saleae LogicクローンなのでSaleae Logicデバイスとして操作するわけですが...

4. 改めてsigrok-cuiを試す

一応コマンドは動作したので、キャプチャしてみます

sigrok-cli -d fx2lafw --time 10
libsigrok 0.2.0
Acquisition with 8/8 probes at 20 kHz
0:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
2:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
3:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
4:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
5:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
6:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
7:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
0:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
2:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
3:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
4:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
5:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
6:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
7:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
0:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
2:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
3:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
4:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
5:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
6:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
7:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
0:11111111 
1:11111111 
2:00000000 
3:00000000 
4:00000000 
5:00000000 
6:00000000 
7:00000000 

大丈夫そうですね
長いのでここでは--time 10にしましたが、実際にはもっと長くキャプチャして値の変化を見たほうがよいです

PulseViewの導入

sigrok-cliでもキャプチャはできますが、やっぱり視覚化したいと思います
sigrokのGUI環境としてPulseViewが提供されているので、これを使って表示してみます

1. PulseViewのインストール

やり方はいくつかありますが、ここでは公式のLinux向けバイナリ(x64)をダウンロードしてきて実行します

cd ~/local/
mkdir ./PulseView
cd PulseView
wget https://sigrok.org/jenkins/job/sigrok-native-appimage/platform=native-x86_64-appimage/lastSuccessfulBuild/artifact/cross-compile/appimage/out/PulseView-NIGHTLY-x86_64.AppImage
chmod +x ./PulseView
./PulseView

2. デバイスの選択

恐らく、正しく認識されていれば、デバイスが"Saleae Logic"になっているのでそのまま"Run"するだけですが、認識しない場合は下記の方法で設定します

[Connect to Device]を押して、各種設定を次のとおりにする
driver:fx2lafw
interface:USB
デバイスを挿した状態で"Scan for devices using driver above"する
device: Saleae Logic with 8 channels

ちなみに"Select the device"で何も表示されないとか、反応が全くない人は、恐らくファームウェアが入ってないんだと思います
その場合は、上の"ファームウェアの導入"を参照して導入してください
ところで、PulseViewが参照するファームウェア等のパスは設定ボタンのAboutで確認できます

3. キャプチャしてみる

PulseViewでデバイスを選択して、プロトコルデコーダーにI2Cを設定します
で、増えたI2Cの行を左クリックするとピン設定がでてくるので、変更します
あとはサンプルレート等を設定します
とりあえず2Msamples,1Mhzとしました

あとはRunするだけ

とりあえずいけましたが、やっぱりこちらも不安定ですね...
たまにデバイスをロストしたり、キャプチャ中にPulseViewが固まることがあります
今後、暇な時にノイズ対策やUSBケーブルを変えたり、別の端末でやったりして試してみますが、レビューを見る限り、私はハズレを引いた可能性が...捨てきれない(笑)

2018/07/26 追記

Amazonのレビューを見てて気になったのがあるので、時間が出来たら試してみますが、
どうやら"XinとXoutに付いているチップコンデンサを12pFに変更すると改善する"らしいです
"入力バッファの無い回路基板(V1.2)"とも書いてあり、なるほど~。エラー内容と確かに一致しますね