Braveridge製 nRF51822 搭載 BVMCN5102を触る
界隈では、既に2,3年前から有名であるが、量産にも使える技適付き格安arm cortexM0搭載のアンテナ付きBLEモジュール、BVMCN5102を積みボードしてあったので、触ってみる機会を得た。
具体的には、BLEを使った、新しい「デジタルまいごひも」を作ろうと思っているのだが、かなり苦戦。というか今までArmをろくに触ったことがないのに、なかなかのチャンレジだった。まぁマイコン開発には少し慣れてきているので、本質は応用が効く。
開発環境はArmのKeil uVision5とnRFgo studioである。
デバッガはJ-link seggarである。
っていうかamazonの下記のボードね。
BLE 開発キット with J-Link segger:BVMCN5103-CFAC-BK KIT PLUS
- 出版社/メーカー: Braveridge
- メディア: エレクトロニクス
- この商品を含むブログを見る
今日の成果としては、開発環境/デバッガの整備と、各種IOの制御と、SPPプロファイルでのBLE通信ぐらい。うーん進捗遅い。まぁ途中でビール呑んだりもあるんだが。
後半はcentral設定にして、peripheralからの通信を受けて制御をしたかったのだが、そこまで手が回らず。っていうか、centralにするとちゃんと動かないのよ。
今気がついたけど、まいごひも は特に通信がいらないので、peripheralでRSSIでも取得すればいいのかな。まぁ明後日試してみよう。
今日苦戦したのが、下記の2点だ。
- uVision5でのROM書き込みエリアの設定。
- 通信部分のF/WのSoftdeviceのver。
1.に関しては、日本語のページを見ていると、なぜ設定するのかがまったく書いてない。ちゃんと、reference manualから見ないとダメね。
ROM上には、SoftdeviceのF/Wをまず置いてから、そのアドレスの後に、アプリケーション層のF/Wを置く構造。 他のBLEとかWLAN関連もそうなのだろうか?
つまりアプリケーション層を書き込み位置をSoftdeviceによって変え無くてはならない。 そしてSoftdeviceのバージョンや、Central設定、peripheral設定によって、Softdeviceのメモリサイズが変わり、アプリ層の書き込み位置が変わるのだ。
結構、これが曲者で、一体どこに書いてあるんだ、、、、と思ってみていたら、
書き込みするnRFgoにはちゃんとアドレスが書いてあって、あぁこれでいいんだ、と気がつくまで、少し時間がかかった。
あとは、容量から計算すればOK 例えばsize 160KBだったら、 1024 × 160 = 163840 -> 0x28000とか。
2. の通信部分のF/WのSoftdeviceのverは、S110とS120の区別が最初つかなくて、なんだこりゃと見ていたら、CentralとPeripheralで使い分けるのね。
なんだか名前がわかりにくいなぁと思って、また引っかかった。あとはversionもわからんのだが。どのサンプルにどのversion使えばいいんだよ!とね。
組込み系の開発で極めて、よく引っかかるがこういった略称である。
一旦知ってしまった人や開発者にとってみれば、S110 ね。あーperipheral側の話ね。とかS120ねCentral側ね。とかSDSと書かれいても、それがSoftdeviceの略だとわかるだろうし、ラクなんだろうけど、初学者にとってはこれが一番の難所。
という慣れるしかないんだけどね。
明日以降は、RSSIの取得で試す件をやってみるか。Centralで動かない解析ももう少しするかな。。。