マイコン工作実験日記

Microcontroller を用いての工作、実験記録

BM20のUART出力を確認する

2017-08-23 22:56:21 | WT32/BM20
これまでの動作確認は全てBM20を単独で動かしていました。次のステップとしてBM20をマイコンとつないで使っていくことにしますが、まずは基本的なUARTポートの動きを簡単に確認しておきます。

最初にUIツールを使ってUARTポートを有効にします。



UART Commandを有効にすると"RX_INDも有効にした方が良い"と言われます。RX_INDはMFBボタンと機能が重なっていますので、Btn0のチェックを外しておきます。



MFBは電源ボタン機能も兼ねていますが、ここの設定については特に何も文句を言われなかったので、そのままにしておくことにします。

UART Commandが有効になったことで、"Part Setting"のメニューも有効になっています。



上記の設定でEEPROMへ書き込みを行い、電源を入れなおします。MFBボタンでの電源オン/オフはまだ有効なままですが、電源投入後にTXD端子からデータが送信されていることが確認できました。P00端子はTXDからのデータ送信に先だってLowレベルに変化し、BM20側からマイコンをWakeupするのに使えるようになっています。




P00がLowになってから1.8秒ほどの間に3つのパケットが送信されていることがわかります。
最初のパケットの部分をズームしてデータを読み取ってみると...


BM20から送信されるイベントのパケットの形式になっています。ダウンロードした資料では、パケットの最初のバイトは 0xAAと書いてあるのですが、実際の動作では0x00, 0xAAの2バイトを送信してくるようです。内容をデコードしてみると、「電源オン」状態に遷移したことを示すイベントのようです。


本当はイベントパケットを受け取ったら、ACKパケットを返さねばならないのですが、まだBM20のRXDには何も送っていません。おそらくBM20はタイムアウト待ちをしてからふたつ目のパケットを送信してきているのだと思われます。2つ目のパケットは、ブートが完了して「スタンバイ状態」に遷移したことを示すイベントのようです。


3つ目のイベントはリングトーンの生成を止めたことを示すイベントになっています。



P00とTXDの関係を見ると、P00がLowになってから10msほどしてからデータが送信されていることがわかります。この時間はUI Toolで設定したWakeup Delay Timeの値が反映されているようです。10msも待つ必要はないので、このディレイの値を最小値である1に変更してみました。



0.3msにはなりませんでしたが、0.8ms程度までは縮まりました。実際にWAKEUPに使うには十分な長さですので、この設定を使うことにします。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。