【mbed】STM32 Nucleoが(ようやく)Yosemite対応!

Pocket

STMicroelectronicsのARM系マイコン「STM32」を搭載したmbed対応のボード「Nucleo」シリーズが便利です。arduino互換IOと追加のIOポートがついた20〜80MHzのARMコアが搭載されたボードが1枚1500円くらいという手頃な値段で販売されています。

ARMが構築しているmbed環境は、無料のオンラインの開発環境でコーディング・コンパイルしたり、他人のライブラリのインポートができたりする上に、マイコンボードへのプログラムの書き込みがドラッグ&ドロップでできるなど、非常に便利です。開発言語がC++なことも、プログラムの見通しをよくしてくれるので◯。

[tmkm-amazon]B00O0RM35O[/tmkm-amazon]

mbedの導入方法を紹介したウェブ

mbed.org上のIDEのスクリーンショット

mbed_org_IDE

問題: Yosemite+NucleoでUSBでマウントできない&プログラム書き込めない

ということで、開発環境がクラウド上にあるため開発マシンの制約がなく、Macが使えるのもmbedの大きな利点です。ぼくもMacで実験装置制御用のプログラムを開発していたのですが、2014年にMac OS X Yosemiteが公開されて以降、STM32 Nucleoシリーズは、プログラム書き込みに必須のUSB接続でのディスクのマウントができなくなってしまいました(USBで接続すると、フォーマットが適切ではない、というダイアログが表示されるだけでマウントされない)。

Yosemite対応のアップデート手順

長いこと時間がかかりましたが、2015年4月になってようやくSTMicroelectronicsから、Yosemiteとの相性問題を解決するためのNucleo側のファームウエアアップデートを公開しました。これまでのファームウエアアップデートはWindows環境が必要だったのですが、今回から素晴らしいことにMacでも動作するJavaのアップデータになっています。

STSW-LINK007 – ST-LINK/V2-1 firmware upgradeで、Nucleo_update_download_buttonボタンをクリックしてアップデータをダウンロード・展開してください。

stsw-link007→NewAppliMacLinuxWindows→STLinkUpgrade.jarがアップデータです。Javaがインストールされていれば、以下のアイコンをダブルクリックすればアップデータのウインドウが表示されます(Javaがインストールされていない場合は、java.comのYosemite用のページを参照してください)。

STLink_updater

アップデータの初期画面

アップデータを起動後、Nucleoを接続します。この時は今まで通りのエラーダイアログがでますが、そのまま閉じてください。その後、

1. アップデータで「Refresh device list」をクリック

2. プルダウンメニューに接続されたボードの情報が表示されます。

STLink_update_1

3. Open in update modeをクリック

4. Upgradeをクリック

すると、以下のスクリーンショットのようになり、30秒ほどでアップグレードが完了します。

STLink_update_2

アップグレード完了後、NucleoボードがUSB接続されると、これまで通りUSBディスクとしてマウントされ、mbedでコンパイル・ダウンロードしたバイナリファイルをドラッグ&ドロップすると書き込みと実行ができるようになります。