デジタル信号が想定通りに出ているか、または来ているかを確認したい時があります。
単純なオンかオフかの信号ならテスターでも十分確認は出来ますが一定のタイミングで出てくる信号はテスターでは役に立ちません。
そういう場合は専用のハードウェアが必要になりますが、今回は安価にArduinoを使用したロジックアナライザ(以下ロジアナ)の紹介したいと思います。
Arduino版ロジックアナライザの導入
今回紹介する以外にもArduino版のロジアナはあるかもしませんのでご了承ください。
対応しているArduinoは
Arduino UNO
Arduino Mega2560
に対応しているようです。
搭載されているRAMに信号をまとめて記録する関係で、RAM容量が大きい方が長い時間の計測が可能になります。
その点からRAM容量の多いMega2560の方が扱いやすいです。
参考ページ


スケッチ
ロジックアナライザビューアー
それぞれダウンロードして、スケッチをArduinoへアップロードします。
ビューアーはJava上で動きますのでランタイムをインストールしていない方は合わせてインストールします。
Adruino版ロジックアナライザの使い方
どのピンヘッダに信号ラインを接続するかは使用するArduinoによって変わりますからlogic_analyzer.ino スケッチ内のCHAN*の部分を見てご自身のArduinoに合わせてください。
Start Capturing data from the logic analyzerをクリック

OLS Capture settingsにてポート設定とDevice typeがArduino Mega Logic Analyzerになっているのを
確認してからcaptureボタンを押します。

captureボタンを押すと自動的に信号の取得が始まるのですぐにデータを入力します。
キャプチャ時間には限りがあるので注意が必要です。
上手くキャプチャが出来れば接続したチャンネル番号の部分にロジック波形が表示されます。
Arduino版ロジックアナライザで回路設計の効率アップ
市販のロジアナは機能は豊富ですし高速なクロックにも対応しているので良いのですが、滅多に使わないだろうと手が出せずにいました。
しかしたまたま設計していた回路のUART通信が文字化けして上手く動作せずロジックアナライザがあれば解決しそうだな~と思っていました。
そこでもしかしたらArduinoならロジアナもあるかもしれないと探したところこのロジアナに巡り合ったのです。
その効果は歴然としていて数日動作に悩んでいたのが、ものの数時間で解決してしまいました。
部品の微妙な定数調整は信号を確認しながらカットアンドトライ出来るのでとても効率があがりました。
まとめ
参考ページがことごとく英語ですので苦手な方は躊躇してしまうかもしれませんね。
でも大丈夫です、私も苦手ですが何とかなりました。
スケッチに関しては特に手を入れる箇所はありませんでしたしビューアーの詳しい説明は翻訳を駆使すれば問題ありませんでした。
必要な時だけロジアナとしてプログラムを書き込んで、それが以外の時は別な使い方が出来るのはArduinoの強みだと思いますね。