Nordic nRF52開発環境導入メモ

NordicのBLEチップnRF52832のソフトウェア開発環境構築についてメモする。

基板

nRF52-DKを開発用に使用する。デバッガチップにPCA10040のシールが貼られているのが確認できる。Preview版はPCA10036、現行品はPCA10040である。(後述のサンプルコードに関係する。) 残念ながらこのボードは技適が取れていないので、電波暗室が無いなら電波を出力してはいけない。
nRF52-DK


最終的なターゲットしては、Laird製のBL652を使用する。技適が取れていて、値段が安く、なんとか手ハンダできるかもなモジュールである。0.75mmピッチの端面スルーホールであるが、顕微鏡を使えばUEW(ウレタン線)で引き出せる。nRF52-DKをデバッガ/ライタとして使用する。(それについては、また次回)
BL652

開発環境あれこれ

まあ、WindowsでKeil使うのがいちばん近道ではある。ただし、無償だと32kバイトのコードサイズ制限がある。お仕事なら迷わずKeilのライセンスを購入すべき。しかし、趣味で数十万円のライセンス料を払うのは廃人の所業である。GCCを使う場合、CUIで開発するのはストイック過ぎるし、Eclipseはイケてない。(※個人の感想です) そうなると、WindowsVisual StudioGCCがよさげな気がするが、まだ試していない。とりあえず、WindowsでKeil」でやってみる。

インストール

(1) Keil MDKをインストール
(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が順番に点灯し順番に消灯する。
デバッグ
  • [Debug]>[Start/Stop Debug Session]でデバッグ開始。
  • "EVALUATION MODE / Running with Code Size Limit: 32K"というダイアログが毎回出るので、[OK]する。
  • あとはよくあるデバッガのUI。

ドキュメント

Nordic Semiconductor Infocenterにオンラインドキュメントが集約されている。階層が深いので慣れるまで少し分かりにくい。

  • nRF5 Getting Started : nRF51シリーズおよびnRF52シリーズについての導入
  • nRF52 Series > nRF52832 : nRF52832チップについて
  • nRF52 Series > nRF52832 > nRF52 Development Kit : nRF52-DK基板について
  • nRF52 Series > SoftDevices : SoftDeviceについて
  • Software Development Kit > nRF5 SDK : SDKについて