前回、BL652のファームウェアアップデートを失敗して、ブランク状態になってしまったところまでを書いた。シリアル接続でのアップデートソフトでは、まったく応答しなくなってしまったので、何か別の方法でファームウェアを書き込まなくてはならない。

今回は試行錯誤した経緯についてである(実際に書込みに成功した方法は次回)。

動作モードの調査

STM32などのマイコンでよくある話として、もともとチップに内蔵されているブートローダーを起動するモードが設けられている場合がある。特定の端子をHiまたはLoに接続して起動することで、別のモードで動作させることができる、といったものが多い。

BL652でも同じような機能がないのか調べてみた。VSPモードやOTAでのアップデートといったものが見つかったが、いずれもファームウェアに搭載されている機能であり、ファームウェアそのものの書込みに使えるものではなかった。

VSPモードについて(BL652データシートより)

OTAはファームウェアの書込みには使えない(Laird社Webページより)

BL652で使われているチップは、nRF52832というチップである。こちらのチップからも調べてみたが、特に動作モードについての情報は見当たらなかった。

この時点で、シリアルポートからの書込みは断念した。

SWD用の書込みソフトからの書込み

シリアルポートが無理となると、SWDを使った書込みということになる。SWD経由でファームウェアをアップデートするソフトもLaird社から提供されている。

SWDというと、STM32マイコンでも普段のデバッグに使用しているものだ。STM32では、ST-Linkというデバッガを使用している。残念ながら、Laird社のソフトでサポートされているデバッガは、J-Linkのみであった。しかし、調べてみると、ST-LinkをJ-Link化することができるらしい。J-LinkのメーカーであるSEGGER社のWebページから、ツールをダウンロードすることができた。

早速試してみたが、確かにJ-Linkとして使えるようになったものの、BL652への書込みはできなかった。接続するターゲットのデバイスが、ST社のものに限定されているのである。Webページにその記載があり、ドライバでも動作を禁止しているようだった。

ターゲットとして接続できるのはST社のデバイスだけ(SEGGER社Webページより)