目的
組み込みで汎用的な IF として、UART が採用されるケースは多いです。
これを実装するにあたり、動作を PC でさくっとシミュレーションできたら素敵ですね。
テスト環境
Windows 7 + TeraTerm v4.89 + AE-UM232R
やってみる
最初の準備
TeraTerm の 設定ファイル (teraterm.ini) を変更してデバッグモードを ON にします。
参考:http://shuzo-kino.hateblo.jp/entry/20111027/1319682490
teraterm.ini は他にもでいろいろできるので触ってみるとイイ
バイナリデータ受信のダンプ
さきほどのリンク先で説明されていたように、
画面上で「Shift+Esc」を押すごとに、通常表示 -> デバッグモード -> 16進デバッグモード -> 非表示- > 通常表示 とサイクリックに切り替わります。
16進デバッグモード を使いましょう。
通常表示
16進
バイナリデータ送信
上記とは反対に、 TeraTerm 側から、ターゲットにデータを送信するには TeraTerm マクロを使用します。
下記のようなマクロを用意します。
send $54$45$53%54
send $XX で hex 形式でデータを送信できます。複数送る場合はつなげます。
バイナリデータ受信まち
UART でデータのやり取りは双方向の場合が多いです。なので、当然、データ受信待ちも欲しいですね。これもTeraTerm マクロでできます。すごい。
参考:http://ttssh2.osdn.jp/manual/ja/macro/command/wait.html
; 制御コードを待つ
setdebug 2
wait '11 0D 11 0D'
setdebug 0
ポイントは setdebug 2 です。これでバイナリデータを解釈できるようになります。
たとえば
組み合わせるとこんな感じ
- 永遠にデータ送受信を繰り返すマクロ
while 1
; 制御コードを待つ
setdebug 2
wait '11 0D 11 0D'
setdebug 0
; 1ms delay
mpause 1
: データ送信
send $54$45$53%54
endwhile
参考になりましたでしょうか。 TeraTermマクロはいろいろできるのでシミュレーションにはとても良いです。テストも捗りますね。