2020年10月 8日
USBアナライザーでArduino互換ボードのシリアル通信を観察
前回はUSBシリアル変換ケーブルの仮想COMポートでやり取りされる通信をUSBアナライザーで観察してみました。今回は同様に、USB仮想COMを持つマイコンボードのシリアル通信をUSBアナライザーを使って確認してみます。マイコンを使った機器を開発していると、マイコンがパソコンのアプリケーションとやり取りしている双方向のデータを確認したいこともあるのではないでしょうか。
■接続構成と実験方法
パソコンのUSBにマイコンボードを接続します。あらかじめマイコンボードには、パソコンからASCII文字列「1234」が送られてきたら「5678」を返すようにプログラムを入れておきます。今回は Arduino Uno の互換ボードを使用します。
そして、パソコンとマイコンボードの間にUSBアナライザー LE-650H2 を挟んで、USBケーブルを流れるデータをキャプチャします。
■結果
[ アナライザーでキャプチャ中の様子(動画) ]
パソコンでは、シリアル通信用のソフト(LEcomTest 画面の右)を使って、「1234」を送信しています。すぐにマイコンボードから「5678」が返信されています。そして、USBアナライザーの解析ソフト(画面の左)では、そのやり取りが16進数でそのまま表示されています。
なお、USBの通信データを見る場合、大量のNAKトランザクションが邪魔になるため、LE-650H2のフィルタ機能を使って有用なデータのみを表示するようにしています。
[ LE-650H2のフィルタ設定 ]
■備考
前回の実験を含め、USB仮想COMを流れるシリアル通信の内容は、USBアナライザーで容易に確認できることが分かりましたが、データの見え方はUSBシリアル変換チップの種類によって違うようです。今回使用したArduino互換ボードには、Arduino純正品とは異なるUSBシリアル変換チップが使われているようですので、純正品の場合は異なる結果が出る可能性があります。
■参考
ちなみに、Arduino Unoやその互換ボード(のおそらく多く)では、USBでやり取りしているシリアル通信が、ピンヘッダ(ソケット)のTX、RXにもそのまま出力されています。つまり、今回はUSBアナライザーを使ってUSBのデータを観察していましたが、シリアルの通信データ部分のみであれば、シリアル通信用のプロトコルアナライザーをボードのTXピンとRXピンにつないで観察することもできます。
例えば、LE-3500XR、LE-2500XRなどは標準でTTLのインターフェースに対応しています。TTL(5.0V)をモニターする設定にして付属のケーブルでTXピンとRXピンにつないでやるとすぐにデータを見ることができます。
[ LE-2500XRでArduino互換ボードのTTLをモニター ]