ST-Link v2 をWindows10上のOpenOCDで利用できるようにする。
手元の環境ではST-Link v2 のファームウェアのアップグレード、ST-Link v2をOpenOCDで利用するためにデバイスドライバのインストール(変更)が必要であった。
また、必要と好みに応じて、ST-Link Utility やST-Link v2のデバイスドライバのインストールも行う。
株式会社ベストテクノロジーのWebのOpenOCDのページが大変参考になった。
目次
ST-Link v2
いわゆる中華 ST-Link v2 を利用した。Aliexpress でUS$2 くらいであった。
OpenOCDで利用できるようにするためにはファームウェアのバージョンアップが必要であった。
Aliexpressの配送
この記事の本題からは外れるがAliexpressの配送日数について。
この途上日誌では購入価格の記録をしているので、利用しているAliexpress の価格を示していることがあるが、Aliexpressの利用を勧めているわけではない。利用には注意が必要であり、トラブルも皆無でない。
安い小物については、配送にかかる日数に注意が必要である。
Aliexpressで送料無料の小物の場合によく使われる方法の一つである China Post Ordinary Small Packet Plus では15日から29日くらいで到着書いてある場合が多い。実際にその程度の日数かかるので、急いでいる場合は国内在庫のものを買った方が良いであろう。本記事のST-Link v2 なら国内在庫でも500円程度と安い。
ちなみに、Aliexpressで送料無料の小物の場合によく使われる別の方法である SunYou Economic Air Mail は、30日から50日で到着と書いてある通りに経験上1か月以上かかっていると思うので、気長に待てない場合には選択しない方が無難と思う。配送に時間がかかると届いたころにはやる気が失せてしまっていることもあるので。
ST-Link v2 のファームウェアバージョンアップ
ST Microelectronicsのアップグレード・アプリケーションを利用してファームウェアのアップロードを行う。
アップグレード・アプリケーションのダウンロード
ST Microelectronicsの次のWebからファームウェアアップグレードのためのアプリケーションをダウンロードする。
STSW-LINK007: ST-LINK, ST-LINK/V2, ST-LINK/V2-1 firmware upgrade
ダウンロードのためには、ライセンスへの同意、名前、メールアドレスの記入が必要である。メールアドレスに、ダウンロードのためのリンクが送信される。そのリンクをクリックすることで、en.stsw-link007.zip がダウンロードされる。
アップグレード・アプリケーションの実行
en.stsw-link007.zip を展開し、その中の stsw-link007\Windows\ST-LinkUpgrade.exe を実行する。
アプリケーションを実行すると次のように表示されるので「Device Connect」ボタンをクリックする。
接続されると、現在のファームウェアのバージョンと更新するバージョンが表示される。問題がなければ「Yes >>>>」ボタンをクリックしてアップグレードを実行する。
アップグレードが成功すると次のようなパネルが表示される。
バージョンアップされたことが、現状のバージョンからわかる。
ST-Link Utilityのインストール
必要と好みに応じて、ST-Link Utilityをインストールしてもよい。
ST-Link Utilityのダウンロード
ST Microelectronicsの次のWebからST-Link Utilityをダウンロードする。
STSW-LINK004 : STM32 ST-LINK utility
ダウンロードのためには、ライセンスへの同意、名前、メールアドレスの記入が必要である。メールアドレスに、ダウンロードのためのリンクが送信される。そのリンクをクリックすることで、en.stsw-link004.zip がダウンロードされる。
ST-Link Utilityインストーラの実行
en.stsw-link004.zip を展開し、STM32 ST-LINK Utility v4.2.0 setup.exe を実行する。
ライセンスの同意をする。
インストールするフォルダを選択する。
インストールが行われる。
ST-Link デバイスドライバのインストール
ST-Link Utility を利用するためには、ST Microelectronics の ST-Link用ドライバが必要である。OpenOCDしか使わない場合にはインストールしなくてもよい。
ST-Link デバイスドライバ・インストーラのダウンロード
ST Microelectronicsの次のWebからST-Link のデバイスドライバ・インストーラをダウンロードする。
STSW-LINK009 : ST-LINK, ST-LINK/V2, ST-LINK/V2-1 USB driver signed for Windows7, Windows8, Windows10
ダウンロードのためには、ライセンスへの同意、名前、メールアドレスの記入が必要である。メールアドレスに、ダウンロードのためのリンクが送信される。そのリンクをクリックすることで、en.stsw-link009.zip がダウンロードされる。
ST-Link デバイスドライバ・インストーラの実行
en.stsw-link009.zip を展開し、その中の stsw-link009\dpinst_amd64.exe を実行する。32bit Windowsの場合には、stsw-link009\dpinst_x86.exe を実行する。
指示にしたがってドライバをインストールする。
デバイスドライバを WinUSB にする
OpenOCDから ST-Link v2 を使うために、デバイスドライバを WinUSB にする必要がある。
デバイスドライバの設定には、Zadig を用いる。
Zadigのダウンロード
https://zadig.akeo.ie/ からデバイスドライバを置き換えるための Zadig をダウンロードする。
ページの下のリンクをクリックして、ダウンロードする。
執筆時点では、zadig-2.4.exe が最新であり、それをダウンロードした。
Zadigの起動
Zadig を起動して、より新しいバージョンがある場合には、ダウンロードが促される。必要に応じてダウンロードする。
ドライバの変更(インストール)
ST-Link のドライバを変更(設定)する必要があるので、対象となる「STM32 STLink」を注意深く探して、選択する。
「STM32 STLink」が見つからない場合には、メニューの「Options」の「List All Devices」を選択してから再度探す。
また、インストールするドライバは WinUSB (の最新のもの)を選ぶ。
以下は、ST-Linkのデバイスドライバは何もインストールされていない状態から、ドライバをWinUSB (v6.1.7600.16385)にしようとしている。
ST-Linkのデバイスドライバがインストールされている場合には「(NONE)」の部分にはそのインストールされているドライバが表示される。
「Install Driver」をクリックすることでドライバがインストールされる。
インストールができたら、その旨がパネルで表示される。
緑の矢印の左側の現在のドライバを見ることで、変更ができたことを確認できる。
ST-Link v2 のLEDによる状態表示
nRF52832 と ST-Link v2 を4線のSWDで接続し、OpenOCDを起動したところ、ST-Link v2 のLEDが赤青点滅をし、時に赤点灯になるようだ。
STM32 ST-LINK/V2 書き込み ( http://ccwo.hatenablog.jp/entry/2017/09/04/033816 ) の記事に示されているST-Link/V2 Statusによれば(手元のST-Link v2に合わせてgreenを青と表記)、赤青点滅はターゲットとなるプロセッサとPCが(ST-Link/V2を介して)データ交換中、赤点灯はPCとST-Link/V2の通信が確立済みとのこと。他に、赤点滅はUSB enumeration 中(通信の確立過程)、青点灯はST-Link/V2とプロセッサの通信完了とのこと。
赤がPCと ST-Link、青がST-Linkとプロセッサの状態を示すということのようだ。ただし、赤青両方が点灯すると(RedとGreenの同時点灯でOrangeなら)ST-Linkとプロセッサの間の通信失敗とのこと。
コメント
STマイクロが配布しているドライバの実体はWinUSBなので
あえてZadigを導入する必要はないです。
逆にSTLink/v2-1などで仮想COMが使えなくなるなどの弊害が
でますのでご注意ください。
OpenOCDについては現在では通用しない古い情報がSEOによって
検索上位を占領してしまっており本当に有用な情報が埋もれて
初心者の参入を阻んでしまっているのが現実です。