Androidを一部だけ触ったので、しばらく組込みに戻ろう。
人間の時間には限界があるよな-。
あれこれやるには、時間と体力と、頭がついていかん。
それに、何もしない、という時間も必要だし。
とっかかりに、何かセンサーをやろうと思った。
ちょうど、アルコールセンサMQ-3を買っていたのだ。
しかし買ったはよかったが、うちで駆動できそうな電源環境がなかった・・・。
5Vでけっこうな電流がかかるようなので、ホスト側とセンサ側で別電源にすればいけるような気はするんだけど、「経費で菊水とかの安定化電源買えばいいやん」という声が聞こえてきてね。。。
ちょっと心を落ち着かせよう。
BLEをやろう。
前回が、8/10くらいに書いているので、約1ヶ月くらいか。
その間に、nRF51822のSDKがバージョンアップしているので、まずはそこから思い出そう。
まず、nRF51822について。
これは、NORDIC社のBLEチップで、ARM社のCortex-M0が搭載されている。
大きさは、こんな感じ。
上が、Braveridge社の開発ボードBVMCN5102で、右側の白いのが、それだ(たぶん)。
下は大きさの参考で、TI社のCC2540が載ったUSBドングルだ。
これにデバッガとしてSEGGER社のJ-Link LITE CoretexMをつなげている。
なお、CC2540はARMではなく、8051が載っていて、デバッガやコンパイラは私は持っていない。
評価版以外は個人で手が出せる範囲のお金じゃなさそうだ。
ハードウェア周りは、こんなところだ。
続いて、ソフトウェア周り。
まず、nRF51822だが、プロトコルスタックの実装とアプリの実装が別になっている。
アプリからシステムコールで呼び出すイメージだ。
ソフトウェア割り込みでやっているので、「プロトコルスタックだけ焼く」「アプリだけ焼く」ということができる。
(実際はプロトコルスタックだけじゃなく、省電力のためのスケジューリングなども入っている。)
これを、SoftDevice、と呼んでいる。
SoftDeviceは大きく3つ有り、S110、S120、S130という名前になっている。
これはバージョンではない。
S110はBLEのPeripheral/Broadcaster、S120はBLEのCentral/Observer、S130はその両方。
ただ、S120については私はダウンロードできないので、よくわからない。
S110は、v5, v6, v7と3系統あって、これはバージョンだ。
で、このバージョンが曲者で、先ほど「プロトコルスタックだけ焼く」と書いたが、バージョン間で互換性があまりないようなのだ。
ソースレベルでは互換があるけれども、バイナリにないというか。
以前はまったのが、enumの定義値が変わっていたというもの。
SoftDeviceはHEXファイルで提供されるので、こちらとしては焼くだけしかできない。
自分が作ったアプリがそれによってビルドし直す必要があるかどうかは、リリースノートを読むしかないだろう。
v7.0.0が出たときには「requiring applications to be recompiled」と書かれていた。
コンパイラは、ARMの好きなものが選べるようだ。
私は、nRF51のGCC環境の説明が書かれているnAN-29というアプリケーションノートにあわせた。
まあ、趣味でやる程度だから、無料のものをありがたく使わせてもらおう。
デバッガは、同じくnAN-29にあったEclipseを使っている。
ただ、リセットをかけるタイミングがよくないのか、ブレークポイントがうまく動かなかったのだ(v7にしてからか?)。
このあたりをやるとよいらしいので、そういう方はお試しを。
Strange behaviour with nRF51822 and S110
UART Application Problem
あと、Em::Blocksという開発環境があり、それも使えますという説明があった。
次回貯めそう。
Nordic nRF51 support in Em::Blocks (with softdevice integration)
SoftDeviceとアプリをつなぐ環境が必要だ。
「nRF51 SDK」という名前で提供されている。今は、v6.1.0が提供されている。
この辺がごちゃごちゃしているのだが、まずダウンロードできるnRF51 SDKとしては、zip形式とmsi形式が選択できる。
たぶん、どっちでも同じだ。msiを使うと、今のファイルはbakにして、別途インストールすることになる。
なんか、えーって感じのフォルダ構成なんだけど、こういうことになる。
前回と何が変わったのか、という比較はしやすいんだけどね。
(あ、フォルダは"Nordic Semiconductor"から下だけね)
また、nRF51 Tools、というものがある。
これは、nRF51822などのFLASHに書込むツールなんかが入っているらしい。
インストールしておこう。
最後に、nRFgo Studioも。
これは、私はSoftDeviceを焼くのに使っている。
nRF51 Toolsに入っているツールでも焼けそうな気はするが、現在焼かれているSoftDeviceのバージョンも取得できるので、こっちを使った方が楽だろう。
巷では、nRF51822ではmbedのHRM1017が有名になったけど、Braveridge社の開発キットも、Amazonで購入できてボード2枚+J-Link LITE付きで1万5千円くらいなので、なかなかですぞ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。