前回、BL652のファームウェアアップデートを失敗して、ブランク状態になってしまったところまでを書いた。シリアル接続でのアップデートソフトでは、まったく応答しなくなってしまったので、何か別の方法でファームウェアを書き込まなくてはならない。
今回は試行錯誤した経緯についてである(実際に書込みに成功した方法は次回)。
動作モードの調査
STM32などのマイコンでよくある話として、もともとチップに内蔵されているブートローダーを起動するモードが設けられている場合がある。特定の端子をHiまたはLoに接続して起動することで、別のモードで動作させることができる、といったものが多い。
BL652でも同じような機能がないのか調べてみた。VSPモードやOTAでのアップデートといったものが見つかったが、いずれもファームウェアに搭載されている機能であり、ファームウェアそのものの書込みに使えるものではなかった。
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ページにその記載があり、ドライバでも動作を禁止しているようだった。