Nordic Nrf528xxを使ってみよう nrf52840 Uno Arduino編(MDBT50Q)

Nordic Nrf528xxを使ってみよう nrf52832 Arduino編です。

nrf52840 MDBT50Q を搭載したArduino Unoを使ってみましょう。
![7182C20F-DA6D-4ED6-A3C5-2B63B460F928.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/24164963-b62e-cc79-36e9-aa63163b2d76.jpeg)


まずは、adafruitのArduinoのライブラリをインストールしましょう。

### ボード設定
__ファイル⇒環境設定__
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/0715080d-483c-59a2-b879-5ac8815e95ef.png)

追加のボードマネージャーURLに
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json 
を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/aa951e01-2ddb-3a74-7fba-7437a5e4803c.png)

ツール⇒ボード⇒ボードマネージャーを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/47154472-4bc4-df86-8132-9a7b2b9626b9.png)

Adafruit nrf52 for Adafruitをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/e69dba86-531b-8f25-4897-9c6f2941f386.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/25223eec-d4b8-c81d-b62a-5a3f98eb869a.png)

次にボードを
ツール⇒ボード⇒Nordic nRF52840DK (PCA10056)を選択します。

これで、nrf52840DKの設定で書き込むことが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/08fca1a7-b0f5-535e-f689-e80d8bacd979.png)

### コンパイル
ブートローダーを書き込み済みの場合は、これでコンパイルを押すと、書き込み出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/891cb661-eb29-b2ca-e88e-d5ad99d36ae0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/283db515-3b95-6915-9548-8b5b6c709a25.png)

### ブートローダーの書き込み
まずは、Githubからブートローダーをダウンロードします。
https://github.com/adafruit/Adafruit_nRF52_Arduino/tree/master/bootloader/pca10056

J-Linkを接続し、nRFConncetを開きます。(DKボードの場合はJーLINKが搭載されています)
*注意；J-Linkは基本電源出力がありません。
J-Linkの電源ピン問題
https://qiita.com/usashirou/items/09c86e01d37ef1db9244

接続しているデバイスを選択し、Readをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a2572a1b-230b-b086-acef-cab628b1a791.png)
これで、中のファームウェアの内容を見る事が可能です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/194fff8b-3695-4257-d575-f230d0a2920d.png)
Add Hex Filesで先ほどダウンロードしたブートローダーを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a32f376d-1230-7a4d-0aa2-39e5bb93196e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b6383d57-0514-9024-0f28-4adef0d5353e.png)
Erase and Writeをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/d496854d-0b2a-21de-b323-45c1f12a72cd.png)
すると、デバイスマネージャー等で見えない、または、見えてもエラーになっていたものがポートに変化すると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/74d4cf84-472e-ee50-229e-cd9a211861ee.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/340ce3a0-058d-246e-75af-e0408a47c449.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/dfd7fe84-aa2c-0e40-5dfb-5b5dd7d8decf.png)
ArduinoIdeにおいてもポートとして見えていれば問題ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/912c82ef-7d2c-c0a9-fe21-ecaa2480d052.png)

### Arduino Core for Adafruit Bluefruit nRF52 Boards
ボードマネージャーの内容になります。
https://github.com/adafruit/Adafruit_nRF52_Arduino