macOS SierraからNucleoに書き込みできないとき

Nucleo-L432KCにmacOS Sierraから書き込めない

数日前に雷ガンマ線実験の新しい電源管理ボードのマイコンとして使っている、mbedマイコン「Nucleo-L432KC 」に新しいプログラムを書き込もうと思ったところ、MacからではUSBドライブとして認識されるものの、プログラムの花にファイルをドラッグドロップしても、ファイルとしてコピーされるだけでマイコンそのものへの書き込みとリセットが動きませんでした。

新しいファームウエアのダウンロード

2ヶ月ほど前に、このボードを受け取った直後に試験したときはプログラムの書き込みはMacからできたので、困ってしまいました。特に設定を変えたわけでもないので、弱ったなと思っていたところ、何年か前にもファームウェアをアップデートすると書き込めるようになったことがあることを思い出しました。

それで、ST MicroのNucleo-L432KCのウェブサイトから、新しいファームウエアのインストーラ(STSW-LINK007)をダウンロードしてみます。以下のスクリーンショットの水色の「ソフトウエア入手」ボタンをクリックすると、ライセンス契約の画面がでるのでACCEPTをクリック。メールアドレスを登録すると、そのメールアドレスにダウンロード用のリンクが送られてきます。

インストーラの起動

NucleoをUSBケーブルでMacに接続してから、インストーラのアイコンをダブルクリックします。

インストーラはJavaのプログラムなので、Homebrew等をつかって

1
2
3
brew cask install java

としてインストールしておきます。

インストーラの初回の実行ではセキュリティ設定によって起動がキャンセルされるかもしれません。システム環境設定→ セキュリティのウインドウを開いて、実行を許可するボタンをクリックしてから再度インストーラをダブルクリックすると起動できます。

ファームウエアの書き込み

以下のようなウインドウが出てきます。一番左上のドロップダウンメニューにST-LINK/…と言う文字が出ていれば接続したボードが認識されています。Open in update modeをクリックすると、ファームウエアの書き込みモードでボードを接続しなおしてくれます。

Upgradeボタンをクリックするとファームウェアの書き込みが始まります。書き込みは10秒くらいで終わると思います。

ファームウエアの更新後、プログラムを書き込めるようになりました

よかったです。これで無事にMacで開発がつづけられます。さっそく電源管理ボードに新しく搭載してもらったI2C シリアルROM (EEPROM)のAT24C512Cの動作を確認したところ、書き込み・読み出しができることがわかりました。実はEEPROMに自分のプログラムからアクセスするのは初めてだったので、新しく使えるデバイスが増えて、ちょっと感動です。(最初、自分で書いた回路図に書かれていたAT24C1024Cという部品番号を信じて、256バイト単位でアクセスしたら書き込みも読み出しもできなくてはまったのですが、P板.comでの部品実装の際に、部品の入手性の問題で実際にはAT24C512Cを実装してもらっていたことがわかりました。AT24C512のブロックサイズである128バイト単位でのアクセスに変更したところ、ちゃんと動作することが確認できました)。