Programmable Xbee-PRO ZB 5)アプリをUART経由で書き込む。

アプリをUART経由で書き込む方法を紹介します。
Getting Started...には、JTAG経由でプログラムを書き込む方法が紹介されています。
デバッグを効率的に進めるにもJTAGを使うほうが得策ですが、いかんせん初期投資がかかります。Product Manual: XBee / XBee-PRO ZB RF ModulesをみるとUART経由でアプリを書き込めるようです。JTAG込みの開発キットを買うことは保留し、単品をSwitch Scienceさんで購入しました。

以下のようなメニューがブートローダーにあります。
送信者 201109

書き込み方法は、以下の通りです。X modemを使って書き込みます。

送信者 201109

Hyper terminalを立ち上げ9600bps, 8N1, フロー制御なしで接続します。
送信者 201109

hyper terminal上でコマンドを入力して動作確認します。
a:アプリケーション名
v:ハードウェア、ブートローダー情報
f;ファームウェアの更新作業
送信者 201109

fを押すと、Xbee側は、プログラム転送待ち状態になり、文字Cが送られます。
このC文字が出続けている間にプログラムの転送を開始するようにします。
Transfer -> Send Fileを選択します。
送信者 201109

xmodemを選択し、転送するプログラムを選択します。
送信者 201109

button_led.abs.binを選択します。
送信者 201109

Sendボタンを押すとプログラムの書き込みが開始されます。
送信者 201109

下記のようにデータが送れない場合、デバイスのタイムアウトが発生していますのでもう一度やり直します。
送信者 201109

正常に書き込みが開始されると以下のようになります。書き込みには、40秒程度かかります。
送信者 201109
送信者 201109

工場出荷時は、アプリケーションが書き込まれていないようでコマンド受付状態で待ち続けます。
アプリケーションを書き込んであると、アプリケーションが自動的に実行されるようになります。
アプリケーションを再書き込みするには、ブートローダーがコマンド受付状態にとどまるように以下のようにピンを設定します。

1)下記のようにピンを接続
pin16 RTS(D7) = High
pin9 DTR(D5) = LOW
pin3 DIN(B0) = LOW
2)リセットもしくは、電源ON
3)DINをLOW状態から解除

送信者 201109

Programmable Xbee-PRO ZB 3)bootloaderのビルド

前回まででProgrammable XBee向けの開発環境が整いました。
今回は、インストールしたツールを立ち上げ、チュートリアルに従いながら、bootloaderをビルドする作業を紹介します。

1)インストールが完了すると、デスクトップに"CodeWarrior"と書かれたXbeeのアイコンが見えます。このアイコンをダブルクリックします。
Eclipseベースの開発環境が立ち上がります。

作業ディレクトリを指定します。
送信者 201109

Android作業ディレクトリと区別するために以下のように変更しました。
送信者 201109

起動時の画面です。
送信者 201109

セキュリティの警告のポップアップが出ますのでブロックを解除するを選びます。
送信者 201109
送信者 201109

また、"Getting Started with..."画面もポップアップされます。
こちらを参考にツールの使い方を学習します。
送信者 201109
Getting Startedを選択します。
送信者 201109
チュートリアルが開始されます。
前半は、ハードウェアの準備について解説が書かれています。
1.3のFlashing a debuggable bootloaderを参考しながら、先に進みます。
送信者 201109
新規プロジェクトを作成します。
送信者 201109
ウィザード画面が表示されます。
XBee sample application projectを選択します。
送信者 201109

こちらは、デフォルトのまま次へ
送信者 201109

以下のようにサンプルコードが色々準備されてます。
今回は、bootloaderのサンプルコードを選択します。
送信者 201109

確認画面がでてきます。確認後Finishボタンを押し、プロジェクトを生成します。
送信者 201109

プロジェクトが作成されると下記のような画面構成になります。
Eclipseベースなのでとっつきやすいです。
送信者 201109

早速ビルドをします。Project -> Build Allを選択するとビルドを開始します。
送信者 201109

Consoleにビルド時のメッセージが表示されます。
送信者 201109

Programmable Xbee-PRO ZB 4)アプリのビルド

今回は、アプリをビルドします。

1.4 Building your first XBee application projectを参考にしながら、進めていきます。
作成するアプリケーションは、ボタンを押すとLEDが点灯、消灯します。

新規プロジェクトファイルを作成します。
送信者 201109

ウィザード画面が表示されます。今回は、Xbee application projectを選択します。こちらの場合、sample programの選択画面が表示されません。
送信者 201109

プロジェクト名を決めます。
送信者 201109

プロジェクト生成後のEclipse画面です。
送信者 201109

まず、入力ボタンのピン番号を定義します。
Addボタンを押し、IRQ GPIOを選択します。
送信者 201109


送信者 201109

ピン番号を19にし、Lockチェックボックスを有効にします。
送信者 201109

続いて、LEDを駆動するためのGPIOピンを設定します。
Addボタンを押し、Standard GPIOを選択します。
送信者 201109

ピン番号を7にし、Lockチェックボックスを有効にします。
最後に変更したconfig.xmlを保存します。
送信者 201109

続いてプログラミングをします。
main.cを開きます。
送信者 201109

main.cを開くと先ほど入力ボタンの設定のときに定義したpin19の割り込み関数の雛形が生成されているのがわかります。
この関数内に、下記のようなボタンを押すたびにLEDに接続されているpin7の出力ピンをH <-> Lを変化させるよう記述します。

gpio_set(LED, !gpio_get(LED));


送信者 201109

main.cを保存後、ビルド作業を行うと、バイナリファイルなどが生成されます。
送信者 201109

Programmable Xbee-PRO ZB 2)Digi XBee SDKのインストール

前回の続きです。
今回は、Programmable XBee向けのSDKをインストールします。
こちらもウィザード画面に従い、インストール作業を行います。

Programmable XBee ZB Development Kit: Download and install the Programmable XBee SDK
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109

Programmable Xbee-PRO ZB 1)CodeWarriorのインストール

Programmable XBee向けの開発環境のセットアップを方法を紹介します。


1)Digiサイトから、CodeWarriorをダウンロードします。
ダウンロード後、ファイルを実行します。
ウィザードに従い、インストール作業を行います。
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
送信者 201109
1