最近はI2C関係のプログラムや解析にはまっていて、なかなかもちもののレビューがかけていません。
そんな状況ですが、I2C解析で使用している安価なロジックアナライザー(以下ロジアナ)について、レビューします。
興味のない方にはまったく何を書いているのかわからない状態だとは思いますが、ロジアナは、デジタル信号の1/0(H/L)を記録する装置です。
オシロスコープと何が違うのかというと、オシロスコープは波形を記録するので、ADCを内蔵しています。各サンプリングの電圧値を記録するので主にアナログ信号の測定に使用されます。
ロジアナは、デジタル信号の記録に特化していますので、オシロに比べてチャンネル数が多く、記録できる時間も長いです。ただし電圧値はわかりません。またI2CやSPIなどの通信プロトコルの解析機能がついていたりします。
数年前?mでは安価なロジアナと言っても1万円程度はしていたかと思うのですが、最近は\1000を切るような価格でロジアナが買えるようになりました。
Amazonでも多数のロジアナが登録されているのですが、今回僕が購入したのはHiLetGoのロジアナです。(写真には写っていませんが、mini USBケーブルも付属しています)
中身は結構シンプルです。入力ポートには保護用の抵抗が接続されているようです。
購入した後で気が付いたのですが、このロジアナの類似品で、5Vトレラント対応のレベル変換ICを使用しているものもあるそうなので、できればそちらのほうを購入したほうが良いと思います。
ネットで調べると市販ロジアナの専用ソフトを流用する方法などが出てきますが、今回は素直にオープンソースのロジアナソフト(sigrok, PulseView)を使用します。
ドライバのインストールなどは省略して..。
PulseViewの画面は↓の感じです。8chあるうちの、1chと2chをI2CのSCL,SDAに割り当てて、I2Cの解析機能を使用しています(画面下のI2C表示部分)。
このI2C解析機能のおかげで、自分で1bit毎にデータを読み取る必要がありません。
ここまではなかなかすごいロジアナアプリだなと思っていたのですが、いざ測定データを保存しようとして困りました。
PulseViewでは、波形のRAWデータやtxt形式での保存はできるのですが、I2C解析結果の保存ができませんでした。(↓はPulseViewの保存例。1と0の羅列にすぎず、訳が分かりません)(一部のみ掲載)
「そんな馬鹿な...」と思いながら、ネットをさまようこと30分。sigrokのコマンドラインツールでI2Cデコード後のデータを保存できるのを知りました。そのコマンドラインツールで保存した結果がこちら。(一部のみ掲載)
最初の保存データよりは百倍?見やすくなりましたが、3byte連続で書き込んでいるところが3行に分かれていて、もう少し短くしたいところです。
そこでRubyのやっつけプログラム。コメントなしで冗長な部分多々ありますが、これで変換しました。(一部のみ掲載)
そして最終結果がこちらです。(コメントは後で追記したものです。)
I2Cコマンド形式での保存がコマンドラインで面倒ですが、\1000程度で購入できたので満足度は高かったです。
-
購入金額
750円
-
購入日
2018年07月12日
-
購入場所
Amazon
ちばとどさん
2018/07/24
おもしろいですよねー。
にしても、今はめちゃ安でロジアナ買えちゃうんですね。
aPieceOfSomethingさん
2018/07/25
コメントありがとうございます。
解析関係はいろいろと面白いなと思います。
ただ我が家の場合は家族サービスが低下すると文句がでるので、結構細切れな時間になってしまいます。そのためセッティングと撤収のタイムロスでほとんど進まない日もあります..。