NXP JN516X (TWELITE) をプログラミングする(Development Environment)

WiFi以外の無線マイコンを利用するうえで気にしなければいけないのは技適とプロトコルライセンスである。特にbluetooth/zigbeeなどは実運用には高額なライセンス料が必要となるので注意が必要だ。ノルディック社の無線マイコンで技適を取得しているデバイスもあるがbluetoothのみの技適らしいので問題は残されている。

日本ではモノワイヤレス社の無線マイコン(TWELITE=JN516X)がプロトコルライセンスフリーかつ技適を満たしている。だが独自開発環境&IEEE802.15.4互換の独自プロトコル&独自ライセンスがメリットでもありネックでもある。

何かに縛られることなく自由にデバイスを使いたいと考えている人も多いはずだがJN516Xの開発環境はSDKの使用を強制していることに加えドキュメントの情報が分散しすぎていて非常にわかりにくいしソース公開されていないのが最大のネックだ。公開できない理由があるのだろうがSDKに何か問題があったときお互いに無駄な時間を使ってしまうことになるのでぜひ公開をお願いしたい...

それはともかく以前から色々応用は出来そうだとは思っていたものの面倒臭そうでなかなか手を出す気にならなかったJN516Xの開発環境の構築にチャレンジするべく、まずは開発ツールの準備ということでNXP社のサイトにてユーザー登録した後に必要な物をDLしてみた。

必要な物は次の2つだけ。SDKはTWELITEの開発環境に含まれているものと同じものかも。たぶん。

・JN-SW-4141 BeyondStudio for NXP v1308
・JN-SW-4165 JN516x-JenNet-IP SDK v1107

※JN-SW-4168以降のSDKでは意味不明のリンカーの未解決シンボル・エラーが解決できず断念...プロトコルスタックのライブラリに問題があるようだ。

上記の順番でデフォルト設定のままインストールすると、Windowsであれば、C:\NXP\bstudio_nxpに展開されるのでそのまま進めていけばOK。

eclipseベースの開発環境なのでeclipseの利用者であればわかりやすいはず。少し工夫するだけでeclipse.orgのExclipse-CDTでも開発は出来そうだが専用ツールならではの良いところもあるので初めての方には専用ツールをお勧めしたい。

問題はインストール後だ。開発ツールは使えるようにセットアップされるがSDKがmakeベースのままであるのでeclipseベースの開発環境を使う意味があるのか?というかこんなんだったらコマンドラインベースでいいんじゃね?と思ってしまった。しょうがないのでmakeファイルやインクルードファイルの中身を調べて開発環境のシンボル/インクルード/ライブラリの設定を行ったのだが毎度調べ直すのも面倒なので全てのインクルード/ライブラリが使えるように設定。コンパイルに少し時間がかかるかなとも思ったが特に影響ない感じだし、なによりコンテンツ・アシストが使えるのは何物にも代えがたい。

開発ツールの設定は、次の内容をJN-SW-4165.xmlとして保存し、空のC++プロジェクトにインポートすればシンボルとインクルードのみ設定完了。余計なシンボルも含まれているが気にしないでほしい。v(-_-;)

※JN5164専用なのでJN5169対応には修正が必要。

※インストールしたJN-SW-4165を選択

※SDK_BASE_DIRを変更。¥は/に変更すること!

ライブラリを設定

※C command line設定を直接変更

※C++ command line設定を直接変更

※Linker command line設定を直接変更

デバイス書き込み用バイナリを作成する設定

internal builderを選択

おまけの設定

おまけの設定

以上を完了したプロジェクトは原本として保存しておく。新しくプロジェクトを作成するさいはそのコピー・プロジェクトを作成すればOK。

【デバイスへの書き込み】

デバイスへの書き込みはコンパイル完了時にプロジェクトペインのDefaultの下に書き込み用のファイル(.bin)が作成されるのでそれを指定して書き込みする。ちなみに画像のソースコードには日本語が書かれているがBeyond Studioは日本語対応ではないらしくエラーになってしまうことがあるので日本語はコメントであっても書かない方がいい。

メニューのDevices->Program Deviceをクリックし、

Program serial deviceダイアログのWorkspaceボタンをクリックし、

ワークスペース内のDefaultの下の.binを指定する

.binを一度指定するとFileのドロップダウンで選択できるようになる。

あとはProgramボタンのクリックで書き込みを開始するだけ。

ここまでで既にお腹一杯になってしまった人もいたりするのかもしれないが...開発環境の準備ができたところで、次回以降はプログラムの作り方を説明する予定なのでお楽しみに!

【関連投稿】
NXP JN516X (TWELITE) をプログラミングする(開発環境の構築)
NXP JN516X (TWELITE) をプログラミングする(メイン・ルーチン)
NXP JN516X (TWELITE) をプログラミングする(TICKTIMER)
NXP JN516X (TWELITE) をプログラミングする(UART)
NXP JN516X (TWELITE) をプログラミングする(SYSTEM)
NXP JN516X (TWELITE) をプログラミングする(GPIO)
NXP JN516X (TWELITE) をプログラミングする(TIMER)
NXP JN516X (TWELITE) をプログラミングする(ALARM)
NXP JN516X (TWELITE) をプログラミングする(WAKETIMER)
NXP JN516X (TWELITE) をプログラミングする(WATCHDOG)
NXP JN516X (TWELITE) をプログラミングする(I2C)
NXP JN516X (TWELITE) をプログラミングする(SPI)
NXP JN516X (TWELITE) をプログラミングする(ADC)
NXP JN516X (TWELITE) をプログラミングする(COMPARATOR)
NXP JN516X (TWELITE) をプログラミングする(CLOCK)
NXP JN516X (TWELITE) をプログラミングする(BROWNOUT)
NXP JN516X (TWELITE) をプログラミングする(PULSCOUNTER)
NXP JN516X (TWELITE) をプログラミングする(INFRARED)
NXP JN516X (TWELITE) をプログラミングする(RANDOM-GENERATOR)
NXP JN516X (TWELITE) をプログラミングする(FLASH)
NXP JN516X (TWELITE) をプログラミングする(EEPROM)
NXP JN516X (TWELITE) をプログラミングする(WPAN)
NXP JN516X (TWELITE) をプログラミングする(Eclipse-CDT+MWSTAGE)
NXP JN516X (TWELITE) をプログラミングする(乗算と除算)
NXP JN516X (TWELITE) をプログラミングする(マルチタスク)
NXP JN516X (TWELITE) をプログラミングする(フラッシュ・プログラマー)
NXP JN516X (TWELITE) をプログラミングする(OTA UPDATE)
NXP JN516X (TWELITE) をプログラミングする(TWELITE CUE/MC3630)
NXP JN516X (TWELITE) をプログラミングする(LED)
NXP JN516X (TWELITE) をプログラミングする(AES)
NXP JN516X (TWELITE) をプログラミングする(Downloads)