Mbed StudioとDAPLinkでEVK-NINA-B1を試す

 

はじめに

ublox社のEVK-NINA-B1開発ボードは、BLE通信モジュールNINA-B1が搭載されたボードです。

ボード

ソフトを書きこむためのライターも基板上に搭載されているので、この基板だけで開発を行うことができます。

EVK-NINA-B1のUSBコネクタとパソコンをUSB接続すると、フォルダが表示されるので焼き込むファイルをドラッグ&ドロップするだけでソフトを焼くことができます。

ライターのソフトは、SEGGER社のJ-Linkが使われています。

 

Mbed Studioで開発したい場合には、ライターのソフトをDAPLinkにした方が便利です。ソースプログラムにブレークポイントを設定して、デバッグすることができるようになります。

 

以降の説明では、EVK-NINA-B1のライターをDAPLinkに変更する方法を記載します。

 

必要なもの

結局は、ライター用のCPUにDAPLinkのファームウェアを焼けばよいだけです。

CPUには、Atmel(現Microchip)のATSAM3U2Cが使われていて、そのCPU用のDAPLinkファームウェアは無償でダウンロードできます(詳細は後述)。

 

昔は、EVK-NINA-B1を2つ用意して一方のライターから、もう一方のATSAM3U2Cに焼きこむことができたようなのですが、現在同じことを行おうとすると、

警告メッセージ

と表示され、EVK-NINA-B1のライターからはATSAM3U2Cを焼けなくなっています。

(J-Linkの焼き込みソフトJ-Flash Liteで、デバイスをATSAM3U2Cを選択すると表示されます)

 

そのため、ATSAM3U2Cを焼くためのライターが別途必要になります。ライターは何でも良いのですが、弊社ではJ-Linkがありましたので、それを使用しました。

J-Link

 

焼き込みピン

焼き込みピンは、表面と裏面にあるのですが、半田付けしやすい裏面を使いました。

ピン配置

2x5のコネクタが無かったので、2x6で代用しました。

焼き込みピン2

 

完全消去

EVK-NINA-B1のATSAM3U2Cのソフトは、プロテクトがされているためコネクトに失敗します。

コマンド1

ATSAM3U2CのERASEピンにHigh電圧を入れると、完全に消去することができます(内部プルダウン抵抗が付いているので、3.3Vを直接付けてOKです)。

完全消去1

EVK-NINA-B1の基板上の3.3VピンをERASEピンに入れます。完全消去前は、DS5,6のLEDが点滅しているのが完全消去に成功すると消えます。

この状態にすると、コネクトに成功します。

コマンド2

 

ブートローダー書き込み

ブートローダーといわれるソフトを焼きこみます。ブートローダーを焼きこむと、ファームウェアの焼き込みをドラッグ&ドロップで行えるようになります。

ATSAM3U2CのDAPLink用のブートローダーは、

https://github.com/ARMmbed/DAPLink/releases/download/0244_bootloader_test/0244_bootloader_release_package_d3095115.zip

の中の、0244_sam3u2c_bl_0x5000.binというファイルになります。

 

別途用意したライターを使用して、0244_sam3u2c_bl_0x5000.binを焼きます。弊社ではJ-Linkを使用しました。一度 Erase Chipしてから、焼き込むと成功します。

J-Link

電源を一度切り、USBコネクタとパソコンをUSBケーブルで接続すると、パソコンに"MAINTENACE"フォルダが認識されます。

 

DAPLinkブートローダーのアップデート

詳しい流れは、https://os.mbed.com/users/MACRUM/notebook/daplink-bootloader-update/に記載されています。

USB接続

このフォルダにドラッグ&ドロップすれば自動で焼きこまれるようになります。ここから先は別途用意したライターは使うことは無くなります。

 

ブートローダーの残り部分を焼きこみます。”0244_sam3u2c_bootloader_update_0x5000.bin”というファイルをドラッグ&ドロップします。再度、電源を入れ直し、"MAINTENANCE"のフォルダが開くことを確認します。

 

インターフェースファームウェアの書き込み

DAPLinkのファームウェアは、新しいバージョンに更新されていくため、ここで記載したバージョンより新しいものが存在するかもしれません。新しいバージョンがあれば、そちらを使用されることを推奨いたします。

 

EVK-NINA-B1用のDAPLinkのファームウェアは、https://github.com/ARMmbed/DAPLink/releases/download/v0254/0254_release_package_f499eb6e.zipからダウンロードできます。

この中の”0254_sam3u2c_ublox_evk_nina_b1_0x5000.bin”ファイルを"MAINTENANCE"フォルダにドラッグ&ドロップします。"MAINTENANCE"フォルダの代わりに"DAPLINK"フォルダが開くようになります。

DAPLinkフォルダ

以上で、EVK-NINA-B1のライターをDAPLinkに変更する作業は終了になります。

 

MAINTENANCEフォルダを再度開くには

USB接続して、再度MAINTENANCEフォルダを開く必要がある場合には、RESETスイッチを押しながらUSBを接続するように記載されていますが、このRESETスイッチというものは、nRESETピンのことではありません。

EVK-NINA-B1基板上のRESETスイッチのことでもありません。基板上のRESETスイッチは、NINA-B1モジュールのRESETスイッチになります。

RESETスイッチ

ATSAM3U2CのRESETスイッチは、24ピンのRA25になります。このピンは、EVK-NINA-B1の基板上に配線されていません(下から2番目)。上の画像は、RESETスイッチを取り付けたものになります。RA25はプルアップされているのでGNDに落とすスイッチを取り付けるだけです。

このRESETスイッチを押しながら、USBを接続すると"MAINTENANCE"フォルダが表示されます。

 

Mbed Studioで試す

Mbed Studio

ライターをDAPLinkに変更したEVK-NINA-B1をパソコンに接続した状態で、Mbed Studioを立ち上げると"Target"の部分が自動で認識されます。

試しにLEDが点滅するだけのファームウェアをダウンロードしてみます。Mbed OSのバージョンに注意してください。バージョンは5でないと焼けません(2021/3/3現在)。

LED点滅ソフト

ブレークポイントを設定して、デバッグを実行すると

デバッグ画面

となります。

 

終わりに

最初は、EVK-NINA-B1を2台だけでDAPLinkに変更しようとしたのですが、うまくいかなかったので調べてみました。パターンが剥がれたり(自分のせい)、ERASEピンが必要だったり、RESETスイッチが無かったりしましたが、その甲斐あってかEVK-NINA-B1の全体像が分かりました。

パターン剥がれ

ちなみに、RESETピンはDAPLinkのソースコードから発見できます。gpio.cファイル内のgpio_get_sw_reset()関数で、RESETスイッチの有無をチェックしています。ピン番号は、IO_Config.hに記載されているのでPA25ピンがRESETスイッチであることが分かります。

 


(2021/3/3 記載)

宣伝させてください

宣伝するよう上司に言われてしまったので、宣伝させてください。

弊社では、2021年3月現在BLEメッシュを使用した多点計測用のセンサータグを開発しています。既に315MHz帯や429MHz帯のセンサータグは製品としてあるのですが、狭い範囲で多点計測するのに適したものが無かったので開発を進めています。

まずは、BLEメッシュで集めたものを920MHzもしくは429MHzで上流に上げていく形にする予定です。何か興味がありましたらinfo@nomura-e.co.jpまで何でも結構ですのでご連絡ください。


(2021/3/3 現在)