Help us understand the problem. What is going on with this article?

nRF52840 を Segger Embedded Studio 開発環境で First Try

nRF52840 とは、Nordic の Bluetooth/BLE の乗ったSoC (System-on-a-chip) 。
Bluetooth/BLEのチップは数社から出ているが、Nordicのものが一番確実。
その中でも nRF52840 は 2018/11/14 時点で最もパワフルな最新型。

今回、nRF52840 を使っての開発環境を構築、動作テストとしてLチカを行ってみます。

環境

開発ボード

Raytac の MDBT50Q–DB

IMG_20181114_155946.jpg

https://www.raytac.com/upload/download_files/8cef7c4b9cf6dac898a95442dc7c6834.pdf

ここに掲載されているものです
https://fukumi.co.jp/products/bluetooth

Nordic公式の開発ボードもあり、

PCA10056「nRF52840 DK」
PCA10059「nRF52840 Dongle」

がnRF52840 のものですが、残念ながら両者とも技適が通っていないので今回はMDBT50Q–DB をチョイス。

書き込み装置

J-link
IMG_20181114_160024.jpg

PC

Windows10 Professional

Keilを試してみる(断念)

KeilはWindowsのみの対応ということで、この記事はWindowsPCで使う記事になっています。

組み込み用のツールはWindows一強。
そのうえ新しい環境に対する対応が劇遅だったりして激しく萎える

以下から Keil をダウンロード。
https://www.keil.com/demo/eval/arm.htm
今回は Version 5.26 を使いました。
Keilのインストールして、起動するとPack Installerの画面になります。
image.png

すると、右のPack欄に対応するパッケージが表示されるので、必要なものをインストールします。
左のペインから
image.png
を選び、右のペインの
Device_SpecificのNordicSemiconducter::の
nRF_Drivers
nRF_BLE
nRF_Examples
nRF_Libraries
nRF_S140

Genericの
ARM::CMSIS
Keil::ARM_Compiler
Keil::MDK_Middleware

をインストールするのですが、S140が無い。
Compatiblity matrix を見ると

image.png

The SoftDevice S132 v3.0.0 has limitations when running on nRF52840 and should only be used in the context of demonstration and experimenting with the new device.
2 The S132 SoftDevice Specification v3.1 describes the S132 SoftDevice v3.0.0 running on the nRF52832 IC and is not fully applicable to the nRF52840 IC.

とあって、S132を選択するのでいいのだかどうなのだかよくわからない感。

https://devzone.nordicsemi.com/f/nordic-q-a/27162/no-software-packs-visible-in-uvision-5-for-nrf52840-nrf52832

ここらへんに、S140をちゃんと設定する方法があるような・・・しかしながら、Keil使うのは今回は諦めました。

Embedded Studio

SEGGER の  Embedded Studio
は、Windows/Mac/Linux対応でNordicチップの開発をする場合は無料です。
今回は、

Embedded Studio for ARM, Windows, 64-bit
J-Link Software and Documentation Pack (version 6.10g or later)
をダウンロードしました。

ダウンロード場所
https://www.segger.com/downloads/embedded-studio/
https://www.segger.com/downloads/jlink/

SES起動して、「build」-「build and debug」 でライセンスを通します。
image.png
図の「Activate Your Free License」からライセンスを登録します。

ここら辺を参考にして、
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.gs.ses%2Fdita%2Fgs%2Fdeveloping%2Finstall_toolchain.html

以下のページから

https://www.nordicsemi.com/index.php/eng/Products/nRF52840
nRF5-SDK-zip ~~
~~nRF5x-Command-Line-Tools-Win64 ~~
~~をダウンロードします。 ~~
~~また、以下のオプションファイルもダウンロードします。

S140-SD-v6
nRF-Connect-Windows

(2018/12/9修正:上記のリンクは変更になりました。現在のリンクは↓)

https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK/Download#infotabs
から、最新のパッケージを選択して(2018/11/14時点では「15.2.0nRF5 SDK」:以下これを使った記録)、画面下部の「You have selected:」

image.png

「Download Files」 して、解凍します。

(2020/02/10追加 画像ではSDKといっしょにs112,s132,s140のSoftdeviceもダウンロードしていますが、実際にはSDKだけのダウンロードでOKです。
SDK内の components/softdevice/ に同梱されていました。)

nRF5-SDK-zipを解凍します。
"Setting up the nRF5 SDK"
C:/Nordic/SDK に解凍するのを推奨されています。
C:/Nordic/SDK 下に
components
config
documentation
...
があるようにします。

(2019/07/11修正追加↓)
そのあと、nRF Command Line Tools をダウンロードしてインストールします。
https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools

ターゲットボードを接続する

Nordicのボードをプログラムするときは、定番はJ-linkらしいです。
深圳に行ったときに買ってきたJ-linkがありました。

MDBT50Q–DB と J-linkを使って接続します。

IMG_20181114_161708.jpg
IMG_20181117_094138.jpg
IMG_20181117_094250.jpg

SESを設定する

SES中には、
pca10059
pca10056
pca10040
pca10040e

というボードが用意されています。このうち、nRF52840
のものは

PCA10056「nRF52840 DK」
PCA10059「nRF52840 Dongle」

です。両者の違いは

nRF52840 Dongle がほぼ単体のnRF52840+動作に必要最小限程度の回路であるのに対して、
nRF52840 DK はフラッシュメモリICが追加されていたりいろんな機能が追加されています。

プログラムの書き込みインターフェース的にはnRF52840 Dongle はこれにJ-linkなどを接続する作業をしないといけませんが、nRF52840 DK はサブCPUとしてATSAM3U2CA-AUがあり、これがJ-Link
やDrag-and-drop Mass Storage Device (MSD) programmingを実現しています。

今回使っている Raytac の MDBT50Q–DB は nRF52840 DK にLEDやスイッチのピン配置を合わせています。なので PCA10056 のサンプルを基に開発していきます。

C:\Nordic\SDK\examples\
の中にあるプロジェクトを基にするのですが、myprojectsフォルダを作ってそこにコピーします。

c:\Nordic\SDK\myprojectsを作ります。

そして、
C:\Nordic\SDK\examples\peripheral\blinkey
のプロジェクトフォルダをコピーし、myprojectsフォルダに入れます。

C:\Nordic\SDK\myprojects\peripheral\blinkey

というフォルダにします。
コピーが終わったらいらないフォルダ pca10040,pca10040e,pca10059を削除しておきます。

なお、フォルダの構成を上記例とは別にすることができますが、SDKとの相対パスが変更になる場合はプロジェクトファイルを書き換える必要があります。

https://shizuk.sakura.ne.jp/bluetooth/nrf52/mkproduct.html
これを参考にしてください。

さて、
C:\Nordic\SDK\myprojects\peripheral\blinky\pca10056\mbr\ses\blinky_pca10056_mbr.emProject
を開きます。

「Build」 - 「Build and Run」

とすると、ボードにプログラムが書き込まれ、LEDが点灯します

IMG_20181117_094843.jpg

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした