今回は、ようやく書込みに成功したOpenOCDでの方法について。ST-LinkとOpenOCDを使って、BL652にファームウェアを書き込むことができた。

OpenOCD

前回、Laird社の書込みソフトでは書込みができなかったので、別のSWDの書込みソフトを使うことにした。

BL652に使われているのはnRF52832というチップである。そのため、Nordic社のソフトが使えることはわかった。しかし、こちらもやはりJ-Link対応らしい。開発ボードに実装されているオンボードのJ-Linkも使えるらしいが、持っていない。

Nordic社の書込みソフト J-Linkと同社のUSBデバイスに対応している(Nordic社Webページより)

他の書込み手段を探していると、OpenOCDを使う方法が見つかった。これはSTM32をやっているときにも何度も目にしたことがあるので知っていたソフトだが、まだ使ったことはなかった。

OpenOCDでの書込み手順

OpenOCDを使った書込み方法にも、組み合わせるソフトでいろいろなやり方があるらしい。今回はできるだけ余計な環境構築をしたくないので、OpenOCDだけをコマンドラインから使う方法にした。

ST-LinkをOpenOCDで使うには、ドライバをWinUSBに入れ替えないといけないので、Zadigのツールで変更した。

ZadigのツールでドライバをWinUSBに入れ替える

ST-LinkとBL652の接続は、3.3V、GND、SWDIO、SWCLKの4本。

OpenOCDの設定ファイルを作成した。ST-Linkを指定し、ターゲットにnrf52を指定。

source [find interface/stlink.cfg]
source [find target/nrf52.cfg]

作成した設定ファイルを指定して、コマンドラインからOpenOCDを実行した。

OpenOCDの実行画面

後はTelnetで操作することになるので、Tera TermからTelnetで接続した。

Tera Termの接続設定

書込みには以下のように実行。ファイル名は、BL652のアップデート用のHEXファイルをリネームしたものである。

書込みの実行画面

これで無事に書込みが完了した。

動作確認

UwTerminalXに戻って接続を試してみると、ちゃんと応答があった。バージョンも上がっている。SmartBASICのソフトの書込みもできて、BLEの動作も確認できた。

完全に消去されているかと思ったら、ライセンスコードは消えずに残っていた。どうやらOpenOCDで書込みする場合でも、ライセンスコードの部分は残して消去してくれるらしい。

まとめ

だいぶ手間がかかったが、何とか使える状態まで戻すことができた。単に戻ってきただけなので、怖ろしく無駄な作業時間である。しかし、苦労しただけあって妙な達成感があった。

これで新しくBL652を購入してきても、安心してファームウェアのアップデートをできるので、まったくの無駄ではないと思いたい。