NordicのBLEチップnRF52832のソフトウェア開発環境構築についてメモする。
基板
nRF52-DKを開発用に使用する。デバッガチップにPCA10040のシールが貼られているのが確認できる。Preview版はPCA10036、現行品はPCA10040である。(後述のサンプルコードに関係する。) 残念ながらこのボードは技適が取れていないので、電波暗室が無いなら電波を出力してはいけない。
最終的なターゲットしては、Laird製のBL652を使用する。技適が取れていて、値段が安く、なんとか手ハンダできるかもなモジュールである。0.75mmピッチの端面スルーホールであるが、顕微鏡を使えばUEW(ウレタン線)で引き出せる。nRF52-DKをデバッガ/ライタとして使用する。(それについては、また次回)
開発環境あれこれ
- WindowsでKeil
- WindowsでIAR
- WindowsでGCC (CUI / Eclipse / Visual Studio)
- MacでGCC (CUI / Eclipse / Xcode)
- LinuxでGCC (CUI / Eclipse)
まあ、WindowsでKeil使うのがいちばん近道ではある。ただし、無償だと32kバイトのコードサイズ制限がある。お仕事なら迷わずKeilのライセンスを購入すべき。しかし、趣味で数十万円のライセンス料を払うのは廃人の所業である。GCCを使う場合、CUIで開発するのはストイック過ぎるし、Eclipseはイケてない。(※個人の感想です) そうなると、WindowsでVisual StudioでGCCがよさげな気がするが、まだ試していない。とりあえず、「WindowsでKeil」でやってみる。
インストール
(1) Keil MDKをインストール
- Keil MDK-ARM V5.xx (uVision5)をダウンロードしてインストールする。
(2) nRF5x-MDK-Packをインストール
- NordicのnRF52832のページの[DOWNLOADS]の[PC software]からnRF5x-MDK-Pack (NordicSemiconductor.nRF_DeviceFamilyPack.x.xx.x.pack)をダウンロードする。
- uVision5を起動し、[Pack Installer]のボタンをクリックする。
- [File]>[Import]から上記nRF5x-MDK-Packのファイルを選び、インストールする。
(3) nRF5 SDKをインストール
- NordicのnRF52832のページの[DOWNLOADS]の[Software Development Kit]からnRF5-SDK-zip (nRF5_SDK_xx.x.x_xxxxxxx.zip)をダウンロードして解凍する。
- ここでは C:\nRF5_SDK に解凍したとする。
サンプルプロジェクトのビルドと実行
まずは、Lチカのサンプル(blinky)をビルドして、nRF52-DK上で実行してみる。
ビルド
- 下記のパスにあるサンプルプロジェクトをuVision5で開く。(ダブルクリックすれば開ける)
- blinkyフォルダの下にいろいろサブフォルダがあって分かりにくいが、pca10040フォルダが現行のnRF52-DK用、blankフォルダがSoftDevice無し用(また次回に説明)、arm5_no_packsフォルダがuVision5用である。
C:\nRF5_SDK\examples\peripheral\blinky\pca10040\blank\arm5_no_packs\ blinky_pca10040.uvprojx
- 起動時にARM:CMSIS:4.5.0が無いと言われたら、Pack Installerが起動するので指示に従ってインストールする。
- [Project]>[Rebuild all target files]でビルドする。
ダウンロード
- nRF52-DKをUSBケーブルでPCに接続する。初期状態ではLED1がぼんやりと明滅する。
- [Flash]>[Download]で書き込む。成功するとLED1〜LED4が順番に点灯し順番に消灯する。
ドキュメント
Nordic Semiconductor Infocenterにオンラインドキュメントが集約されている。階層が深いので慣れるまで少し分かりにくい。