ESP-IDFを使ってみる
Logic Analyzer
こちらにESP32で動作
するLogic Analyzerが公開されています。
Logic AnalyzerとはGPIOのON/OFFを視覚的に表示してくれるツールです。
リポジトリ内のlogic_analyzer_exampleをビルドしてESP32に書き込むと、ESP32はWebSocketサーバーとし
て動作しま す。
menuconfigでルーターのSSID、パスワードとサンプリングに使用するGPIOを選択します。
以下ではGPIO22をサンプリングに使用します。
ブラウザーを起動してアドレスバーにAnalyzerのESP32のIPアドレスを指定すると以下の初期画面が表示されます。
別のESP32(測定用ESP32)に1秒周期でGPIOをON/OFFするファームを書き込んで、測定用ESP32のGPIOと、
AnalyzerのGPIO22をケーブルでつなぎます。
Startボタンを押すと、5000Hzで10000回のサンプリングを行い、その結果を表示します。
測定用ESP32のON/OFF周期を100ミリ秒にすると、以下の様になります。
測定用ESP32のON/OFF周期を10ミリ秒にすると、以下の様になります。
これだと、時間が良く分からないので、サンプリング周期を5000Hz(1/5000秒)から50000Hz(1/50000秒)に変更します。
これで、1/50000秒*10000回=1/5秒間のサンプリングを行います。
通信速度が500KHzのCANHの信号を100000Hzでサンプリングしてみました。
500KHzのパルスに対して100KHzでサンプリングするので、ごく一部だけが表示されます。
そこで、サンプリング周波数を1MHzに変更してみました。
1/1000000秒のサンプリングを10000回行うので、サンプリングのトータル時間は1/100秒となります。
サンプリング周波数を10MHzに変更してみました。
1/10000000秒のサンプリングを10000回行うので、サンプリングのトータル時間は1/1000秒となります。
高周波数のパルスをサンプリングする場合、サンプリング周波数を大きくする(サンプリング間隔を小さくする)必要が有りますが、
サンプリング出来る回数の上限が決まっているので、サンプリングのトータル時間は短くなります。
これを見ると、オシロスコープが高価な理由が良く分かります。