フォト
2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

« Arduino IDEを使ったATtiny13用スケッチの開発について | トップページ | DigisparkでUSB経由のシリアル通信が出来ない »

2016年8月31日 (水)

IchigoJamのシリアル通信速度の設定(BPSコマンド)について

IchigoJamの公式サイトのドキュメントが説明不足(実際は私の理解不足です^^)、
シリアル通信の速度の設定でちょっとハマりました。

IchigoJamでシリアル通信の速度設定はBPSコマンドを利用します。
下記は公式サイトのリファレンスマニュアルからの引用(見やすいようにちょっと修正)です。

BPS 数 / ビーピーエス:
  シリアル通信速度を変更する
        (0で初期値の 115,200bps、-1:57600bps、-2:38400bps)
  例: BPS 9600

IchigoJamにて38400bpsで通信したかったのですが、
BPS 38400

とやっても38400bpsで通信出来ません。データが化けます。なぜ?

  IchigoJam上
  01

  接続先 Tera Term
  02


実はIchigoJamの整数値の範囲が2バイト(short型)なので、
オーバーフローがおきてしまうんですね。オーバーフローが原因です。

次のようにやって、OKが出ているので 変数A34800が代入されていると思いきや、
表示してみるとマイナスの値です。

  05_2

なので、 BPS 38400  は実際には BPS -30736 として実行されたんですね。

ということで、
BPSコマンドのカッコ内の説明の BSP -2 を実行すると通信出来ました。

   IchigoJam上
  03

  接続先 Tera Term
  04

ただし、BPS引数-30736と指定してもエラーでないのはちょっと困りもの..
この場合、どういう通信速度になっているんでしょう..
(後でロジックアナライザーで調べてみます)

  06


« Arduino IDEを使ったATtiny13用スケッチの開発について | トップページ | DigisparkでUSB経由のシリアル通信が出来ない »

IchigoJam」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/64137692

この記事へのトラックバック一覧です: IchigoJamのシリアル通信速度の設定(BPSコマンド)について:

« Arduino IDEを使ったATtiny13用スケッチの開発について | トップページ | DigisparkでUSB経由のシリアル通信が出来ない »