アマゾンで11月に購入しています24MHz8チャンネルロジックアナライザ(USBロジックアナライザMCU FPGA ARM対応)を使ってのアナライジングをしていましたが、今回シリアル通信でのアスキーコードの解析のUARTを使って、ESP32DivKitCによるDDS-VFO(VFOsys改)のオリジナルで追加したスケッチ部の実際に送っているシリアル通信データを確認してみました。かねてから、こういう解析が出来たらいいと思っていた事を実際に体験することが出来ました。たかだか数百円のロジックアナライザですが、これを対象とするアプリケーションPulseViewの素晴らしさを目の当たりにしました。しかもハードはLinuxもWindows10も旧Windos7(32bit&64bit)、2000、Xpにも対応していますので、OSを選びません。アプリケーション自体もLinux,Windows10ともにOKのようです。Qtでコンパイルされているので対象を選ばないわけに納得です。
以下購入のハードです。
届いた時は、おもちゃでも安いから良いかなどと、高を括っていましたが、なんのおもちゃどころではありません。PulseViewとの組み合わせで、ロジック解析に十分使用できる優秀なツールです。ほんの一部だけの使い方でもこう思えますので、実際には未だやっていない他の解析モード設定も相当数ありますからなおさら、驚きを隠せません。ということで、実際に使ってみて、感激したシリアル通信のデータの解析結果を記します。
DDS-VFOのスケッチVFOsysを改良し追加したバンドデータをシリアル通信を使い電源オン時にリクエストコマンドの”99;”を20回繰り返し送出するという勝手に決めた仕様ですが、きちんと送出側もデコード側も動いてはいますが、本当に”99;”が20回送られているか最初のロジックアナライザーの設定では見れてはいませんでした、が、色々と設定を試していると見たかったアスキーデータとしての”99;”をロジックデータの下に見事、確認することが出来ました。この時の感激は一入です。こういうのが欲しかった!ついに見れたという感じです。これがそのUARTでの解析ロジックデータです。
最初の拡大前のデータを取得した時の画像です。
最初のデータは、ESP32DivKitCのブート時のデータです。日付やら、コマンドやらが送出されていました。記しませんが結構なデータ量です。
その次は、解析ではエラーフレームとなっていました。特にデータといったものではない単純にH→L→Hの信号です。電源リセット時の信号の様です。
上の一番最後のデータが、リクエストコマンドに勝手に決めたアスキーデータにデリミタの”;”のついた”99;”の20回送出データ部です。解析は2回分までの画像です。実際に20回きちんとシリアルデータTXラインに送出されています。アスキーデータ対応の1,0のbitも見れています。改行コード0D、0Aの付加も見れます。これが見たかったのです。
Char ”9”はアスキーコードではHEX(16進) ”39" です。送りは4ビット毎のHEX(16進数表記)で ”9”→”3”の順番です。

8ビットのデータの並びは HEX(16進)の4ビット毎で表すと 上位D0,D1,D2,D3, 下位D0,D1,D2,D3 です。
Charの"9"はHEXで"39”ですが、PulseViewでは左が最初送られたデータですから下位、上位の順で ”9” ”3” の”1001” ”1100”となります。
左が最後の1回目のデータ”99;”,”0D",”0A"とその右が2回目の”99;”,”0D",”0A"シリアルデータです。デリミタとしたCharの ";”はHEXで”3B”で ”B” “3" の”1101” ”1100”となります。少しアスキーデータの送出順はHEX(16進)の4ビット毎の2進数で見ると向きで時々ごちゃごちゃになります。Hi!
ついでに、拡大してみると、シリアル通信の設定のスタートビット、ストップビットの追加の位置もはっきりと理解出来ます。
ついでに、拡大してみると、シリアル通信の設定のスタートビット、ストップビットの追加の位置もはっきりと理解出来ます。
今回のシリアルデータ解析と同様に”99;”のコマンドを受けて送り返す側ArduinoNANOの無線機の周波数データのやり取りも見てみたいと思っています。前のブレッドボードで使った部品を実際の基板にマウントしたため、ワイヤー配線も外しボードだけに戻していました。このブレッドボードに再度ArduinoNANOのTS820に組込した回路を組直しました。タイマーICや他の部品も新たに秋月電子通販で注文し、昨日届きましたので、組み直し回路に取り付けしました。ボード単体で動作を確認しています。次はシリアル通信部をシミュレーション回路どうし接続し、実際の(勝手に仕様を決めた)アスキーデータ送出のやり取りをあらためてPulseViewで確認したいと思います。
つづく?