Ultra96やラズパイなどの開発者キットをいじったり、自作のプリント基板を作ったりした時、
変な挙動を調べるのに信号見るためにロジックアナライザーを購入した。
据え置き型はコストや場所がさすがに許さないので、USB接続型の安価なモデルを探していた所、
以前 KickStarterでクラウドファンディングしていたDSLogic Plusに行きついた。
https://www.dreamsourcelab.com/shop/logic-analyzer/dslogic-plus/
16チャンネルあって、最大サンプリング周波数が400MHzで$149と破格な値段。
ググってみたらBanggoodで¥13,272で出てたのでポチっとしてしまった。
Contents
到着
2/27にネット注文、3/2にコンビニ払いを済ませ、3/10に到着。
1ヶ月くらいを覚悟していたし、そのように連絡来てたけど、1週間で到着。早い。

中国語(笑)
中身は本体、USBケーブル、プローブキット、説明書のみのシンプルな構成。

ソフトウェアインストール
ダウンロード
PC上で動作するロジックアナライザー用のソフトウェアを公式からダウンロード。
https://www.dreamsourcelab.com/download/
インストール
インストール言語は英語と中国語のみ。

2021.3.13現在の最新バージョンはv1.12。

ここでは実行せずにインストール完了。

起動
まずは添付のUSBケーブルでPCとDSLogic Plusを接続。
ここではDSLogic PlusのIndicator LEDは赤。
ソフトウェア起動。
なかなかスマートなUI。

使い方
モードについて
DSLogic Plusには
・高速なサンプリングが可能なバッファモードと、
・長時間ロギング可能なストリームモードの
2つのモードがある。

最大サンプリングレートの400MHzが可能なのは、
バッファモード時に4チャンネルのみ使用するとき。
バッファモードではDSLogic Plus内のDRAMにサンプリングデータを記録していくため、
400MHz@4チャンネル時には167msまでしか計測できない。

Advanced Trigger
各種イベントでトリガすることが可能なので、やり方の覚書。

Start Flag~Stop Flagの中でData Valueがマッチしたらトリガがかかるようになっている。
Start FlagとStop Flag, Cock Flagの15~0はプローブのチャネル番号。
今回はSCL: channel 0, SDA: channel 1としている。
I2CのStart FlagはSCLがHighの時にSDAが立ち下がるのが条件なので、
Start Flag : XXXX_XXXX_XXXX_XXF1
となる。FはFalling edgeの意味。
Stop FlagはSCLがHighの時にSDAが立ち上がるのが条件なので、
Stop Flag : XXXX_XXXX_XXXX_XXR1
となる。RはRising edgeの意味。
またchannel 0がSCLなので、
Clock Flag : XXXX_XXXX_XXXX_XXXR
となる。
Dataに関してはACK/NACKビットを除いた8bitで、
Slave Address 011_0010へのアクセスを待つため、
Data Value : XXXX_XXXX_0110_010X
としている。
Writeアクセスに限定するのであれば、
Data Value : XXXX_XXXX_0110_0100
Readアクセスに限定するのであれば、
Data Value : XXXX_XXXX_0110_0101
となる。