2013/09/14

エンドデバイスの試験手順

常用PCの背面にある USB コネクタ (COM3) に Coordinator を接続してある。エンドデバイス用の USB コネクタは前面 (COM4) である。電源投入はエンドデバイス,FT232RL モジュールの順に行う。X-CTU を起動する。

まず,ATモードで X-CTU と通信確認をする。Coordinator と同一の PANID を書き込む。Terminal モードにして CTS が緑色もしくは点滅するのを確認する。連続測定用のパタメタSPの値が 0x7d0 (20s) と大きいと,CTS がなかなか点灯しないので 0x7d とする。+++ を入力するとOKが表示され,atid を入力(要改行)すると FFが返ってくると COM4 と エンドデバイス間の通信は正常だ。SPの値を元に戻す。

FT232RL の CTS を DSO で観察 (M:50ms) すると制御線の動作状態がわかる。遅い現象なのでデジタルマルチメータでも判別がつくだろう。ついでに,D6をデフォルトの DISABLE から RTS FLOW CONTROL に変更して RTS 制御線を DSO でモニタしてみたが変化しない。RS232 通信のクロス(リバース)接続ではないので当然だ。DISABLE にしていても RTS は Modem Configuration の時 High,Terminal の時は Low に変る。

Coordinator 間AT通信
新たに X-CTU を起動し,Coordinator をATモードに書き込む。PANID を 0xFF に書き込む。Terminal画面の CTS は緑色に点灯したままになっている。試しに +++ を入力するとOKが返り,続けて ATND を入力改行すると,エンドデバイスの識別IDが返ってくる。エンドデバイスがスリープモードになっているので,1分程経っても応答がなければ何回かコマンドを入力すると応答が得られる。Coordinator の USB エクスプローラの赤色LEDが点灯しているときはエンドデバイスと通信が行われている。

Coordinator 間 API 通信
Coordinator とエンドデバイスに API モードを書き込む。Coordinator 側の X-CTU の Terminal を Hex 表示にする。受信されたデータがバイナリで表示される。

パラメタの記録
X-CTU の Read ボタンをクリックして,最終状態のパラメタを表示させ確認する。連続測定している間,パラメタを参照しようとすると X-CTU が必要になり,測定を中断しなければならなくなる。パラメタを記録しておいた方がエンドデバイスを追加するときなど便利だ。Modem Configuration のデフォルトは緑色で表示されているのでそれ以外をメモするのもいいかもしれない。

参照
Sleep設定: End device
デフォルトパラメタ
SM Sleep Mode 0x04 Cyclic
ST Time before Sleep 0x1388 (5000[ms])
SP Sleep Period 0x0020 (32x10[ms])
SN Sleep Number 0x0001

使用デバイス
USB エクスプローラ: Switchscience
FT232RL モジュール : 秋月電子

動機
現在,連続測定を中断してまでして,デバッグ用の API パタメタの設定をした。


追記
以前のようにエンドデバイスのモードをATに戻して実験を始めました。ただ,ATコマンドを発行できるのはスリープから起きるまで20秒待たなければならない。 Sep22

再追記
サーバに接続中の Coordinator 傘下のエンドデバイスを入れ替えようとしたら,以前のように上手くいかなかった。エンドデバイスのDHおよびDLを指定すると正常になった。2つの PANID が並行してある場合,単に PANID を変更するだけだと,若い番号に横取りされるのかもしれない。DH=DL=0 だと PANID の指定だけだとだめなようだ。4Jan29

関連記事

コメント

非公開コメント