LoginSignup
23

More than 5 years have passed since last update.

Tera Term で バイナリデータのやりとり をシミュレートする

Last updated at Posted at 2016-08-17

目的

組み込みで汎用的な 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進デバッグモード を使いましょう。

通常表示

スクリーンショット 2016-08-17 13.11.46.png

16進

スクリーンショット 2016-08-17 13.10.27.png

バイナリデータ送信

上記とは反対に、 TeraTerm 側から、ターゲットにデータを送信するには TeraTerm マクロを使用します。
下記のようなマクロを用意します。

send.ttl
send $54$45$53%54

send $XX で hex 形式でデータを送信できます。複数送る場合はつなげます。

バイナリデータ受信まち

UART でデータのやり取りは双方向の場合が多いです。なので、当然、データ受信待ちも欲しいですね。これもTeraTerm マクロでできます。すごい。
参考:http://ttssh2.osdn.jp/manual/ja/macro/command/wait.html

wait.ttl
; 制御コードを待つ
setdebug 2
wait '11 0D 11 0D'
setdebug 0

ポイントは setdebug 2 です。これでバイナリデータを解釈できるようになります。

たとえば

組み合わせるとこんな感じ

  • 永遠にデータ送受信を繰り返すマクロ
sample.ttl
while 1
    ; 制御コードを待つ
  setdebug 2
  wait '11 0D 11 0D'
  setdebug 0
   ; 1ms delay
  mpause 1
   : データ送信
  send $54$45$53%54
endwhile

参考になりましたでしょうか。 TeraTermマクロはいろいろできるのでシミュレーションにはとても良いです。テストも捗りますね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23