いろんなところから販売されているが、どれもこれも「Logic Analyzer」ぐらいしか名前がなくて Generic 品風情が強い。しかしその中で KeeYees のロゴが付いているのがあり、おっと思ってこれを選んでみた。
しばらくして到着したものは・・・
結局ノーブランド品ぽいものでした。今回はこれを Ubuntu で動かしてみます。
環境
- Ubuntu 22.04 LTS Desktop Ja
どんなハードウェアかな?
USBコネクタ。mini-B ですねー。
このロジアナのクロックはUSBのクロックをそのまま使っているというウワサもありあましたが、24MHzのクリスタルが乗っていました。
付属のジャンパーケーブルをコネクタに刺します。カラーコードを合わせてみましたが、後で使う sigrok のピン番号とずれているのでちょっと問題。
付属のクリップは、自分ではんだづけする必要があります。今回は付属のジャンパーケーブルに刺せるようにするため、ピンを出すことにしました。
ピンヘッダをはんだづけした後に黒いプラスチックを取って組み立てます。
加工が終わったところ。コネクタの色は6色で2つずつありますが、ケーブルの色の10色には足りないので工夫が必要です。
dmesg の状況
刺してみた。
[128636.623732] usb 3-1.3.3: new high-speed USB device number 11 using xhci_hcd
[128636.749653] usb 3-1.3.3: New USB device found, idVendor=0925, idProduct=3881, bcdDevice= 0.01
[128636.749659] usb 3-1.3.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
このロジックアナライザは Salae Logic のクローンという話があったので、このVendorIDを調べてみると・・・
$ lsusb
.
.
.
Bus 003 Device 016: ID 0925:3881 Lakeview Research Saleae Logic
.
.
.
なるほどー、真っ黒でした。
Saleae Logic のソフトが使えるという話もあるのですが、オープンソースの sigrok を使うことにします。
sigrok を動かしてみる
Ubuntu のパッケージからインストール。
$ sudo apt install sigrok
.
.
.
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
sigrok-cli sigrok-firmware-fx2lafw
以下のパッケージが新たにインストールされます:
sigrok sigrok-cli sigrok-firmware-fx2lafw
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 247 個。
67.7 kB のアーカイブを取得する必要があります。
この操作後に追加で 327 kB のディスク容量が消費されます。
続行しますか? [Y/n]
インストールした後、動作確認してみます。
$ sigrok-cli -d fx2lafw --show
Driver functions:
Logic analyzer
Scan options:
conn
fx2lafw - Saleae Logic with 8 channels: D0 D1 D2 D3 D4 D5 D6 D7
Channel groups:
Logic: channels D0 D1 D2 D3 D4 D5 D6 D7
Supported configuration options across all channel groups:
continuous: on, off
limit_samples: 0 (current)
conn: 3.18 (current)
samplerate - supported samplerates:
20 kHz (current)
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
48 MHz
Supported triggers: 0 1 r f e
captureratio: 0 (current)
動いてますね。ファームウェアも(何故か)インストールされているようです。
GUI で動かしてみる
PulseView を使って、sigrok を GUI で操作できるようにしてみます。
こちらも Ubuntu のパッケージでインストールします。
$ sudo apt install pulseview
I2Cの通信を見てみます。BME280 の通信を調べてみます。CH1 に SCL、CH2 に SDA、GNDとGNDをつなぎます。
PulseView の設定はとりあえずこれにしました。黄色と緑のアイコンを押してデコーダを選択します。
デコーダをI2Cにします。
「Run」を押すとデータが取得できました。D0 が CH1 で SCL, D1 が CH2 で SDA です。
DとCHの番号がズレているのですがどうにかできないのかな?
チャンネル名につけかえ、色も修正して見やすくしました。下のチャンネルに I2C の信号が見えてますね。
うーんでもデタラメですね。
サンプリングレートが低すぎたようです。
今度は、BME280 の I2C アドレス 76 がちゃんと見えるようになりました。
これは便利!