はじめに

前回使用するモジュールを決めたので、このモジュール(AE-TYBLE16)の開発環境の
構築について記載していく。
(実際には、モジュールの検討の段階で環境構築済んでる。)
あくまで私が使用したものと私のやり方を載せていく。これ以外にも方法は多数存在する。
各自のやりやすいやり方でいいと思う。
このページでは、サンプルコードを動かすことをゴールとしている。
使用したもの
AE-TYBLE16
開発対象のBLEモジュール。nRF51822ACが載っている。
秋月電子で購入
J-LINK EDU
FWを書き込むためのデバッガ。↓のようなピン配置となっている。赤丸で囲った箇所がVTref。(J-LINK MINIでもいけるかも?)
RSコンポーネントで購入
J-LINK EDU mini マルツ
連結ソケット(両端オスピン)16P
AE-TYBLE16をブレッドボードに取り付けるために使用
秋月電子で購入
ジャンパーワイヤー オス-メス & ブレッドボード
3.3V出力できる何か。
私は部屋に転がっていたArduinoNanoを使った。
AE-TYBLE16が動けばいいのでボタン電池とかでもいいと思う。
Windows-PC
USBポートがあればOK
必要なソフトウェアのダウンロード&インストール
nRF Connect for Desktop
①nRF Connect for Desktopを以下のリンクからダウンロード(ver3.5.0)して、インストール
ダウンロードページ
②インストール後、nRFConncectを起動してProgrammerをインストールしておく。
GNU Arm Compirar 4.9
① 以下のリンクから”gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe”をダウンロードしてインストール。
インストールの最後の画面で、忘れずにAdd path to environment variableにチェックを入れる。(環境変数を追加してくれる)
②GNU Arm Compirarをインストールしたフォルダのbinフォルダ内に(デフォルトだと
“C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin”)に下記のファイルを追加する。
・make.exe
・libiconv2.dll
・libintl3.dll
上記ファイルは、sorceforge.netのmake-3.81-bin.zipとmake-3.81-dep.zipを解凍すると入っている。
J-LINK Software and Documentation Pack
①J-LINK Software and Documentation Packをダウンロード&インストール
ダウンロードページ
nRF 12.3 SDKを入手
①nRF 12.3 SDKをダウンロードして解凍する。
ダウンロードページ
ダウンロードページが分かりづらいので画像つきで説明すると。
1.nRF 12.3 SDKを選択
2.zipをダウンロード(S130は無くてもいい)
3.ダウンロードしたzipファイルを解凍すると、SDKのzipがあるのでDesktopなどに解凍しておく。
ハードウェアの準備
配線
1.ブレッドボード上にAE-TYBLE16を連結ソケット(両端オスピン)を使い取り付け、J-LINK EDUや電源とジャンパー線で必要な結線を行う。
2.J-LINK EDUをPCに接続する
以上で準備は完了。
ここからは実際にFWを書き込んでみてサンプルコードを動作させてみる。
サンプルを動作させてみる
FWを書き込むことで太陽誘電製のFWが使用できなくなるので自己責任でお願いします。
ソースコードの変更
サンプルコードの設定をAE-TYBLE16に合わせる。ここでは動作確認用のサンプルとしてnRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_hrsを使う。
(1)nRF5_SDK_12.3.0_d7731ad\components-boards-pca10028.hを修正
.source = NRF_CLOCK_LF_SRC_XTAL
→ .source = NRF_CLOCK_LF_SRC_RC
.xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM
→ .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM
(2)nRF5_SDK_12.3.0_d7731ad\components\toolchain\system_nrf51.cを修正
#define __SYSTEM_CLOCK (16000000UL)
→ #define __SYSTEM_CLOCK (32000000UL)
(3)nRF5_SDK_12.3.0_d7731ad\components\toolchain\system_nrf51422.cを修正
#define __SYSTEM_CLOCK (16000000UL)
→ #define __SYSTEM_CLOCK (32000000UL)
(4)nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_hrs\main.cを修正
nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
の行を削除して以下の5行を追加
nrf_clock_lf_cfg_t clock_lf_cfg;
clock_lf_cfg.rc_ctiv = 16;
clock_lf_cfg.rc_temp_ctiv = 2;
clock_lf_cfg.source = NRF_CLOCK_LF_SRC_RC;
clock_lf_cfg.xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM;
(5)nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_hrs\pca10028\s130\config-sdk_config.hを修正。
CLOCK_CONFIG_XTAL_FREQ 255
→ CLOCK_CONFIG_XTAL_FREQ 0
CLOCK_CONFIG_LF_SRC 1
→ CLOCK_CONFIG_LF_SRC 0
hexファイルを作成
(1)スタートメニューからcmdと入力してコマンドプロンプトを起動
(2)”cd ***\nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_hrs\pca10028\s130\armgcc”と入力して作業ディレクトリを変更。
***はnRF5_SDK_12.3.0_d7731adを解凍したパス。↓はデスクトップに解凍した場合の例
白く塗りつぶしている箇所はユーザー名
(3)”make”と入力してビルドを実行。
成功すると↓の画像のように表示される。
AE-TYBLEに書き込む
(1)nRF Connectを起動させ、Programmerを選択する。
(2)J-LINKを接続して、左上のボックスからJ-LINKの番号を選択する。画像だと000260118424。
番号は、J-LINKをPCに接続した状態でJ-LINK Commanderを起動して確認できる。
(3)右上のAddHexFile->Browser書き込むファイルを選択する。
選択するファイルは
・nRF5_SDK_12.3.0_d7731ad\components\softdevice\s130->hex
のs130_nrf51_2.0.1_softdevice.hex
・nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_hrs\pca10028\s130\armgcc\_build
のnrf51422_xxac.hex
の2つ。選ぶと↓のようになる。
(4)書き込む。
右のErase & Writeを選択する。
(5)書き込み完了後、コマンドプロンプトを起動して、以下のように入力する。
nrfjprog –snr *** –memwr 0x10001008 –val 0xFFFFFF00
***部分はJ-LINK Commanderで確認した接続しているJ-LINKの識別番号。↓みたいな感じになる。
これでJ-LINKとAE-TYBLEの配線を外したうえで3.3Vの電源をリセットすればサンプルコードが動作するようになるはず。
ちゃんと動けば↓のようにiPhoneやAndoroidからNordic_HRMが出てるはず。
動かないや書き込めない分からないなどあればtwitterかお問い合わせフォームでコメントいただければわかる範囲で対応します。