ロジックアナライザ
I2C、SPI、uart等のデバッグ用に高級オシロに搭載されている
ロジックアナライザ機能。プロトコルデコーダーとも言うみたいですが、
これが出来ると便利だと思いませんか?
つまり、信号線を直接解析できるという優れ者です。
ロジックアナライザ
高級なオシロスコープに搭載されている。
自分の様な金無し暇ありプログラマの憧れです。
それが、破格の1499円。パソコンに繋いで動かします。
オシロ買おうか悩んでて、geminiに相談したら、教えてもらったんです。
AIって何でも知ってて凄いですね。

https://amzn.to/4dSz1mL
これをサポート切れたWindows10で使おうというのが今回の記事です。
ソフトはフリーのPulseViewというソフトと、Zadigを使います。
Zadig。これ時々出てきます。
調べると、
Zadigは、Windows環境において、USBデバイスに汎用的なUSBドライバーを
簡単にインストール・置換するためのツールです。
通常、USBデバイスをPCに接続するとWindowsが自動的に専用ドライバーを
割り当てますが、開発や特殊な用途では「Windows標準の挙動」ではなく、
「ソフトウェアから直接デバイスを制御したい」という場面があります。
その際の仲介役(ドライバー)をセットアップするのがZadigの主な役割です
PulseViewをインストールするとZadigも一緒に入ってくれます。
ソフトのダウンロード
https://zenn.dev/ux_xu/articles/e10319783d9e02
こちらでDownloadsを選び、
ご自分の環境にあったものをお選び下さい。

自分はWindows10用のReleaseにしました。
普通にインストールしていきます。
インストールすると、スタートにZadigとPulseViewが現れます。
まずはドライバを入れる必要があるので、Zadigを起動
Option→ListAllDevicesにチェックを入れる

真ん中の所→fx2lafw ってやって、
もしかしたら、一度操作したからfx2lafwかもなので、
最初はUnknownDeviceしか出てなかったかも。

WinUSB(libusb)を選んでInstallDriverをクリックします。

自分の画面は一度操作しているのでReinstallDriverってなってますがここです。
PulseViewの起動。
普通にスタートから起動します。
自分の場合はmsvcr100.dllが見つからないエラーになってしまいましたので
https://www.microsoft.com/ja-jp/download/details.aspx?id=26999
から、vcredist_x86.exeとかvcredist_x64.exeをダウンロードしてインストールしました。
かなり古いものなので、インストールするパソコンも古いものですけど。
これから先はなかなか見つからなくなるかもです。
今のところ公式でダウンロード可能でした。
そして起動成功
PulseViewの設定 デバイスの認識
下の画面の<NoDevice>ってなっている所をクリック。他の表示になっているかも。

次の画面が出る。

上から以下のように選択
step1 fx2lafwを選択。
step2 USBのまま
step3 「Scan for deices using driver above」をクリック
step4 「Saleae Logic with 8channels」が表示。
「Saleae Logic with 8channels」を選択。
OKをクリック
!!ここでstep3のボタンを押しても4に
「Saleae Logic with 8channels」が出ない場合があるが、
以下のようにすると出てきた。
step1 「Demo driver and pattern generator(demo)」
step2 USBまま
step3 Scanをクリック
step4 Demo device with 13 channels
OKを押さない。押したかも知れない。
その後、もう一度正規の操作step1から行う。そうすると出てきた。
バグかなー?
いろいろやってたらうまく行った。
接続。
ロジアナ本体にチャンネルが8ついている。
端子が8で8ビット。すなわち8ch。
ロジアナの接続端子は上記の写真の本体の上面に張ってあるシールの通り。
CH1~CH8、CLKとGNDのピン配置書いてます。
まずは、GNDとCH1に接続する。
簡単にするためにUSBーUARTの変換アダプタを接続する。
パソコン1ーUSBtoUART変換ーロジアナ本体-パソコン2
USBtoUART変換 ー ロジアナ本体
TX ー CH1
GND ー GND
パソコンは同じパソコンでも良いです。
パソコン1の方はテラターム準備しておく。通信速度115200bpsその他条件も見ておいてね。
パソコン2でPulseViewを起動しておく。
測定開始
パソコン2でPulseViewで①②③の順で操作する。

①5Msamplesがおすすめ。
意味は500万回測定して記録する。
②1MHzがおすすめ。
意味は1秒間に100万回測定する。
③測定開始。
Runをクリック
①と②の意味だけど、1Mhzで測定して、5M回。って事は5秒間測定するって事。
③の測定開始後5秒経過で自動で止まるから、
その間にパソコン1のテラタームでなにかキーボード叩けば記録される。
自分の場合はまとめて文字列をクリップボードに記録しておいて
テラタームに流し込みました。
その結果が④に表示される。
UART解析を使う。
このままじゃ信号のHIとLoが見えるだけで
なんだか判らんよですよね。
ここからがこのソフトの凄いところなんです。
⑤の所。クリックします。
次の画面が右側に開きます。

⑥UARTとして検索
⑦UARTが現れるのでダブルクリック
⑧UARTのトラックが追加される。
さらに、⑧のUARTの文字をクリック。

TXとしてD0を選択。D0ってのはCH1の事。数字ズレてるね
スクロール。
Data formatでasciiを選択
この画面には他にも重要な
baudrate,data bits,parity
などなど指定する項目があるので仕様に合わせておく

右側のDecoderSelectorはあとは不要なので×で消しておく
uartにどんな文字列が流れているか確認できます。

すげー。
基本操作
初期状態のままだと、
1バイトの受信が1ドット幅の線にしか見えないから、
時間軸を伸ばしてあげる。
マウスのホイール操作で時間軸の長さが変わります。
ズームインやズームアウトになります。
左ボタンを押しながら上下左右にドラッグすればスクロール=見える場所が移動する
ツールバーからデータを保存したり、呼び出したり、
時間を細かく表示したり。
I2Cを解析する
接続
接続したい機器のSCL、SDA、GNDを接続します。
ESP32からI2C接続で表示機器を使っている場合。
https://miha.jugem.cc/?eid=325
これだと、
GPIOの21がSCLと22がSDAです。
それと、GNDを接続します。
ロジアナ側は
CH1をSCL
CH2をSDA
GNDはGND
測定操作
①上で書いたのと同じ様にRUNで測定。
②I2C解析のためにデコーダーを追加。
I2Cデコーダーの設定
D0をSCL
D1をSDA
③解析結果が表示される。

という事なんです。
わかるかな?わかんねーだろうなー
↑昭和のヒトは判る。
判んないヒトはこちら。
https://www.youtube.com/watch?v=ThaUcODU6Bs
この製品はサンプリングクロック周波数24Mhzまでとなっていて制限はありますけど、
ESP32で扱えるシリアルの機能は一通り解析可能です。



















































