STLink/v2を使うとドライブとして見えるnucleo、そういう機能をSTLink/v2が持ってるかの様に見えるのですが、STLink/v2が、そのドライブに見えて書き込みできるファームウェアがターゲットに書きこまれている場合にのみ有効な手段です。
ST公式からSTLink Utilityというものを入手してファームウェアアップデートというのをすれば書きこまれるみたいですが。
ですのでSTLink/v2を使ってドライブに投げ込んで書き込みをする、 のに必要なのはnucleoボードとして存在しているターゲットmcuと、ファームウェアのアップデートです。
※以下は古い情報。
STM32 NucleoボードにはSTLink/v2が搭載されていて、これはボードから切断して単体で使うことが出来るように設計されています。
Nucleoボードはバイナリファイルをドラッグアンドドロップで書き込みできる手軽なもので、この機能はSTLink/v2がもっているものです。
メリットは特別な書き込みソフトが必要ないこと。
USB接続してドライブとして見えさえすれば、プログラムをビルドして出来上がったbinファイルをドラッグアンドドロップで書き込めるのでとても手軽ですし、Windows以外でも環境にとらわれずにSTM32ボードをプログラミング可能になるのでとても有効な手段だと思います。
とはいえ、切断して使えなくなるのではないかと不安になったりして実際に切断するのはなかなか勇気のいるものですが
実際にやってみました。
STM32 Nucleo F446REのSTLink/v2で STM32 F4 Discoveryへ書き込みが出来ています。
当然バイナリファイルのドラッグアンドドロップで、です。
接続はUSBのついている方を上として、SWD端子の上から以下の様になっています。
1: target VDD(入力用)
2: SWCLK
3: GND
4: SWDIO
5: NRST
6: SWO
この中で1と6は未接続で可。
捕捉としてSTLink/v2のJP1は電源コネクタになっています、同じくSTLink/v2のUSB側を上として、左が 3.3Vとなっています。
ターゲットへパワーを供給するにはこの端子を利用すると便利でしょう。
一体何をどこにつなぐのかについて、
F446の場合、このようになっています。これはF4 Discovery(F407)でも端子自体は同じでした。
PA13とPA14にそれぞれSWDIO, SWCLKを接続。
あとは電源とNRSTを接続。
すべて接続後にSTLink/v2をPCに接続するとドライブが表示されます。
もしも接続が間違えている場合、ドライブの中にFAIL.TXTというファイルが出来ていますので、その場合接続を再確認してUSBを接続しなおします。
ドライブの名前はNODE_F***というように、(今回のパターンではF446から取り出しているので NODE_F446) もともとのNucleoの名前が反映されていますが、すくなくともF4 Discoveryには書き込みできています。
まだ実験不足ですが、狙いとしてはこのSTLink/v2を利用してF103やF303などに書き込みをしたい。
(チップ単体がaitendoや秋月から入手可能だったり、F103チップ利用のボードが安価で手に入るなどメリットが大きい)
※STM32F103RCの端子も調べてみた感じPA13、PA14で機能は変わらないので共通かな??