ページ

2013年8月20日火曜日

CPU付きのXbee はまってしまった落とし穴

Xbee(zigbee):特にProgrammable XBee-PRO ZBについてお困りのかたのために役にたつサイト、情報を整理しました。

 XBee(ZigBee)を今回のターゲットシステムで使用しました。非常によくできていているのですが、最初はきっとはまります。特に何か少しターゲットでCPUを使ってアプリを作りたいという場合は、これを使うと便利なのですが、全くといっていいくらい関連書籍とかネットにも情報がないので、はまります。同じような事でお悩みの方のために今回はまってしまった事項を整理します。基本的な事項はいろいろなサイトで説明されているので、省略します。

XBee-PRO ZB Extended-Range Programmable S2Bモジュール(PCBアンテナ)
余談ですが、このモジュール遠くから見るとなぜかどうもゴキブリのような気がするのは私だけでしょうか?

 まず最初の失敗は発注型番ミスです。XBee種類が多いです。CPU付のXBeeを使用予定でしたが、型番がよくわからず代理店に問い合わせて発注したのですが、その型番が間違ってました。

 基本的には、シリーズ1と2がありますが、各々出力レベルの違いでPRO版と通常版がわかれております。CPU付(Programmable)は、シリーズ2にしかなく、S2Bというものがありますが、これとCPU付(Programmable)とは、違うようですが、ただCPU付は、シリーズ2のPRO版(S2B)しかないようです。Programmable XBee-PRO ZB というのが、CPU付のXbeeの正式名称のようです。Xbeeの型番を検索するのは、このサイト(秋月)が最もわかり安いです。サポートいらないという自身のある方は、代理店から購入するよりもここからネット購入するのがいいかもしれません。

 内蔵CPUは、FreescaleのMC9S08QE32で低消費電力が売りのようです。H08コアと書いてあるのでARMでもないようです。その次に悩んだのがその構造でした。CPU付とCPU無しで全くPin番コンパチです。DIOとかUARTとかADCの入力ポートとかがついています。回路図がついているのですが、ものすごくシンプルなもので、きっと省略してるものと思い込んでいました。DIO等の信号を選択するためのスイッチ素子がついているものと思っており、いろいろ質問した結果そうではなく、ただ回路図のとおりワイヤードオアされているだけのものであるとわかりました。ですので、たとえば同一pinのDIOでリソースが2つある事になります。従来のXbee-radio部が持つIOリソースとCPUのIOリソースの2つです。これは、スイッチ素子でセレクトされません。間違って両方出力でイネーブルにconfigrationすると出力がぶつかる事になりますので、気をつけてください。

 なので、 Programmable XBee-PRO ZBの開発ツールには、configrationする部分が2つあります。1つは、ファームのconfig XCTUというツールを使ってXbbeのradio部のファームを読んだり書いたり設定できるところ、もう1つは、CPUのアプリ開発用のツールCodeWarriorには、config.xmlでCPUのIOリソースのconfigを設定できる部分があります。これを理解しておくと後の開発debugに役に立ちます。特にファームのDIOをPull-upする設定もありますが、このDIO部分と同一のアナログ入力をCPUで使う場合、ファームでDIO-Pull-upをイネーブルにするとアナログ電圧値に影響がありますので、要注意です。

 CPUのアプリ開発用のツールCodeWarriorには、まだまだBUGがあるようです。特にUART部分は、注意です。サンプルどおりに書いても動作しません。SDKに細工が必要なようです。代理店からもらったサンプルソースが全く動作せずに困り果てた末に得た回答は、SDKの修正が必要との事でこれだけでも1人月くらいの工数を浪費しました。試行錯誤の連続でした。アプリの書き込みボーレートはデフォルトの115200bpsのみでしかうまく動作しませんでした。radio部の通信レートも115200のほうがいいです。外部を9600bpsで動作させたい場合、CPUを使用する場合あえて同一レートにする必要もありません。CPUでアプリを作りさえすれば、どのようにでもできますので、今回のシステムでは、外部9600bpsで動かし、内部無線部は、115200bpsで構成しました。

 今回感じたことは、とにかくあきらめず、しつこく、試行錯誤の繰り返しで、いろいろ実際のボードでまず試して見ることが大事です。どうしてもだめな部分は、回避する事を考えるべきです。開発用ツールCodeWarriorには、膨大なサンプルソースがありますので、これを利用する事をまず考えるべきです。Programmable XBee-PRO ZB 非常によくできております。XBee単体での使用が最もシンプルですが、CPU付をお考えの方ぜひチャレンジしてください。外付けCPUをわざわざつける事もなく結構便利なアプリが構築できます。

0 件のコメント:

コメントを投稿