DfuSe

STMicroelectronics 社の発売しているマイコンは、DfuSe(=Device firmware upgrade STMicroelectronics extension )というものに対応している。これは、hexやbinといったプログラム本体のバイナリと一緒に、書き込みのためのメタデータが入っているファイル(これをDFUファイルというらしい)を、USB経由でターゲットに手軽に焼ける仕組みである。これの仕組みを用いると、高価な JTAG ICE を購入せずにファームを焼くことができるので、動作確認の手間が減り、大変便利である。なお、DfuSeに関する情報は、STMicroelectronicsのHPから多く提供されている。

ところが、肝心の「マイコンをDfuseモードで起動する方法」に関する情報が全くない。つまり、DfuSeを使うためのツール、デバイスドライバのインストール方法はスタートアップマニュアルに記述されているのに、どうすれば接続したマイコンが「PCから見てデバイスと認識されるか」が記述されていないのである(もしかしたらドキュメントの探し方が悪いだけかもしれないが)。

そこで行き詰まってしまったので、やけっぱちになってgoogle先生に相談してみたら面白い答えが見つかった。

[質問者]
DfuSeのデモを行いたいんだけど、PCが認識してくれないんですよ。多分STMのDeviceをDFUモードで起動する方法があると思うんだけど、それを教えてもらえないですか。

[回答者]
まず、DfuSe用のブートローダhttp://hogehoge,,, から落として、JTAGなり何なりを使って焼いてNE!その状態で電源入れればDFUモードになるよ!
STMicroelectronicsのフォーラムより、超適当訳

ええええええええええええ

DfuSeってプログラム領域に書き込むブートローダだったんですか。ハードウェアでサポートしてると思って感動したのに(´ω`)ていうか最初JTAG使わなくていいからすごいと思ったのに、結局使うんかい!こういう情報を前面に押し出してほしい、などと思ってしまった私はまだまだ甘ちゃんです、はい。

ちなみに、Design Wave 5月号にはいってるおまけ基盤の中に入ってるブートローダもこれらしい。思わぬところで話がつながると面白い、と思った今日この頃であった。