概要
nRF51822 とは NordicSemiconductor 社が提供する BLE モジュールです
nRF51822 には専用の開発用のボード (nRF51 DK) がありこれを使うことで BLE デバイスの開発を行うことができます
今回は開発環境の構築方法を紹介します
環境
- Windows7 64bit
- nRF51822
- nRF51 DK
- MicroUSB x 1
各種インストール
各種インストールの作業は Windows 上で行っていきます
アプリ焼きこみ用のツール nRFgo Studio のインストール
開発したアプリをモジュールに焼きこむためのツールです
- https://www.nordicsemi.com/chi/node_176/2.4GHz-RF/nRFgo-Studio にアクセス
- 「DOWNLOADS」タブを選択
- nRFgo Studio-Win64 を選択しダウンロード
- ダウンロードした nrfgostudio_win-64_1.21.0_installer.msi を実行しインストール
- インストール中の Choose Setup Type は Typical を選択
- ドライバをインストールする確認ダイアログが続けて表示されるのですべて OK にする
- 続けて nRF Tools をインストールする旨が表示されるので続けてインストール
- J-Link のドライバをインストール
で nRFgo Studio がインストールできます
同時に J-Link のドライバもインストールするのを忘れないようにしてください
2015/11/05 時点での最新版は 1.21.0 でした
開発用の IDE Keil のインストール
Keil という組み込み開発で使用する IDE をインストールします
- https://www.keil.com/download/ にアクセス
- 「Download」タブを選択
- 「Product Downloads」を選択
- 「MDK-ARM」を選択
- ダウンロードするために個人情報を入力 (keil だけダウンロードに必要)
- ダウンロードのページに遷移したら MDK517.EXE を選択しダウンロード
- ダウンロードした MDK517.EXE を実行しインストール
で Keil の μVision
という IDE がインストールできます
デフォルトの設定だと C ドライブ直下に C:\Keil_v5
というディレクトリ名でインストールされます
IDE を起動する場合は C:\Keil_v5\UV4\UV4.exe
を実行してください
2015/11/05 時点での最新版は 5.17.0 でした
nRF51 SDK のインストール
開発に必要な SDK をインストールします
- http://developer.nordicsemi.com/nRF51_SDK/ にアクセス
- 「
nRF51_SDK_v9.x.x/
」を選択 - nRF51_SDK_9.0.0_2e23562.zip を選択しダウンロード
ダウンロードが完了したら解凍して適当な場所に配置すれば OK です
nRFgo Studio から参照します
zip をダウンロードする際に他の最新版があればそちらをダウンロードしても OK です
2015/11/05 時点での最新版は 9.0.0 でした
おまけ : J-Link ドライバの最新版をインストール
この作業は nRF Studio のインストール時に完了しています
最新版をインストールしたい場合にだけ実施してください
- https://www.segger.com/jlink-software.html にアクセス
- Software and documentation pack for Windows の最新版を Download
- ダウンロードが完了したら zip を解凍し
Setup_JLink_V502i.exe
を実行しインストール - インストール中の「Install USB Driver for J-Link」にチェック
でドライバがインストールされるはずです
2015/11/05 時点での最新版は 502i でした
配線
開発ボードと Windows を接続していきます
開発ボードへの電源の供給は PC から行います
配線は非常に簡単で開発ボード側の MicroUSB と PC の USB ポートを接続すれば OK です
基本はこれだけで開発できます
他にはデバッグ用のシリアル通信や nRF51822 モジュールへの書き込みを行うための配線がありますが、とりあえず BLE デバイスを開発するだけであれば上記で十分です
配線が完了したら開発ボードの電源を ON にしましょう
サンプルの焼きこみ
では開発ボードにサンプルアプリを焼きこんでみましょう
今回は簡単な Peripheral アプリを焼きこんで、ちゃんとアドバタイズされるか確認してみます
配線を完了し開発ボードの電源が入っている状態で nRFgo Studio を起動します
起動したら左ペインの「Device Mangaer」に nRF51 development boards
があり、その中に Segger … で始まるデバイスが認識されていることを確認してください
これが表示されない場合は開発ボードがうまく Windows 側に認識されていないので、ドライバのインストールを再度実施してください
SoftDevice の焼きこみ
Segger を選択した状態で右ペインに移動します
まずは SoftDevice を焼きこんでいきます
SoftDevice とは簡単にいうとミドルウェアのようなもので、開発するアプリはこの SoftDevice 上で動作します
右ペインの「Program SoftDevice」タグを選択します
そして「File to program」に SoftDevice を指定します
指定する SoftDevice はダウンロードした SDK に含まれています
例えば C ドライブ直下に SDK を配置したのであれば
C:\nRF51_SDK_9.0.0_2e23562\components\softdevice\s110\hex\s110_softdevice.hex
にあります
選択したら「Program」ボタンを押して焼きこみを開始します
ダイアログが表示され最終的に successfully になれば OK です
サンプルアプリのビルド
ここがちょっとだけ面倒です
サンプルアプリ用の .hex ファイルが SDK 内に同梱されておらずソースファイルから自分でビルドして作成する必要があります
まず Keil を開きましょう
開いたら SDK に同梱されているサンプルプロジェクトを開きます
Project -> Open Project
で以下を指定して開きます
C:\nRF51_SDK_9.0.0_2e23562\examples\ble_peripheral\ble_app_hrs\pca10028\s110\arm5_no_packs\ble_app_hrs_s110_pca10028.uvprojx
するとプロジェクトが開きます
今回は特にソースを修正する必要はないので開いたらいきなりビルドします
Project -> Build target
でビルドが始まります
プロジェクト内に存在する C のソールコードがコンパイルされ最終的に .hex が作成されれば OK です
.hex ファイルはarm5_no_packs\_build\nrf51422_xxac_s110.hex
に作成されます
サンプルアプリの焼き込み
作成できたアプリを焼きこんでいきましょう
再度 nRFgo Studio に戻ります
今度は右ペインの「Program Application」タグを選択します
そして、FIle to program に先ほど作成した .hex ファイルを指定します
C:\nRF51_SDK_9.0.0_2e23562\examples\ble_peripheral\ble_app_hrs\pca10028\s110\arm5_no_packs\_build\nrf51422_xxac_s110.hex
選択したら「Program」を選択します
SoftDevice の書き込み同様ダイアログが表示され最終的に successfully になれば書き込み完了です
動作確認
今回は iPhone で確認してみます
スマホアプリに BLE を検知できるアプリがいくつかあるのでそれを使います
開発ボードの電源が入っている状態でアプリを立ち上げてみましょう
すると開発ボードに焼きこまれたアプリがBLEデバイスとして検知できると思います
今回の場合「Nordic_HRM」というデバイス名でアプリを書き込んでいるのでその名前で見つかると思います
最後に
紹介は以上です
今回 nRF51822 モジュールに直接書き込みはしませんでした
モジュールに書き込みを行いたい場合は Debug out という 10pin の I/F が開発ボードにあるので、ジャンパを使って nRF58122 が乗った別のボードと接続した状態で nRF Studio で Program すれば焼きこむことができると思います
あとは main.c なりソースの修正をしてビルドして再度 .hex ファイルを作成して焼き込めば開発できると思います
ただ、これだと print 文などをデバッグできないので作業効率が悪いです
やはり開発ボードとシリアル通信して print 文をデバッグした方がいいです
次回にでもシリアル通信の記事を紹介できればと思います
Tips
アプリを修正して Program してうまく動作しない場合は一旦「Erase all」してから再度 SoftDevice -> アプリの順番で書き込みを行ってみてください
0 件のコメント:
コメントを投稿