FDD エミュレータ
FDDエミュレーターについて解説します。
DFU直接接続モードを使用した書き換え方法
Gotekで使用しているSTM32には、直接ケーブルをつないでプログラミングを行うDFUモードが存在します。
DFUとはDirect Firmware Updateの略で、直接システムメモリにアクセスできるわけです。
DFUモードでは、USBケーブルを直接接続して書き換えを行います。これはBlue PillやBlack Pillを使用し、STM32Duinoにスケッチを書き込む要領と全く同じです。
利点と欠点
利点的には、USB-シリアル変換アダプタおよびその接続が一切不要で、Gotekの場合必要なのはUSBのA-Aケーブルと、ジャンパピン、そして1,2本のジャンパー線のみ、コストも安く抑えられます。
欠点的には、Windows10(Version 1909)で行う場合、画面右下に左のような警告と警告音がやたら出てくるということです。
(ただし出てこないこともあるようですし書き換え用ソフトで認識されれば問題はない)
最終的には左下のように、デバイスマネージャーには認識されるようになっていますが、精神衛生上あまりよくはない気がします。
また実はこの方法は、HxC for Gotekでは使用できません。
HxC for Gotekの書き換えを行う場合は、USB-シリアルアダプタを接続する方法でないと書き換えができません。
ジャンパの接続
書き換えを行うための準備として、まずジャンパを接続して、電源投入時にBootloaderモードになるようにします。
(ピンの位置などの詳細はハードウェアの項目を参照してください)
実際には、ジャンパはS0のみジャンパをつなぎ、プログラミングコネクタのところは、BOOT0と+3.3V、TXと5V(3.3Vのほうがいいとはおもいますが5Vトレラントのはずなのでこれでも問題はありません)を接続しておきます。
これで電源投入時に自動的にDFUモードになります。
※余談ですが、厳密にいうとDFUモードは何種類かあるようです。今回の場合はUSB直接接続でのDFUモードのようで、USB-シリアル接続の場合はシリアル接続でのDFUモードになるようです。
私は面倒だったのでプログラミングコネクタにはピンヘッダを取り付け、その上にドングルのようにかぶせられるアダプタをつけて同様の接続になるようにしました。
USBケーブルの接続
A-A USBケーブルの片方をGotekに、片方をPCに差し込めば準備完了です。
(給電はUSBから行われますので電源を別途繋ぐ必要はありません)
なお、Win8やそれ以前で認識しない場合は、DFUドライバを別途インストールする必要があるかもしれません。
(そのトラブルシューティングについてはここでは解説を行いません。ケーブルが違っていてもやってることは同じ、つまりコネクタの口が違うだけなので、STM32Duinoなどの接続で検索すると結構出てくると思いますので、そちらをご参照ください)
ソフトウェアからの認識
書き換え方法については、インターフェースの選択以外はUSB-シリアルと共通ですので、 ここでは相違点であるインターフェースの違いによる操作の違いを中心に説明します。
ソフトウェアの詳細については、ソフトウェア使用方法の項目をご覧ください。
ここでは、STM32CubeProgrammerを使用します。
Gotekを接続し、STM32CubeProgrammerを起動すると、左のような画面になります。(まだ接続されていません)
画面右上のインターフェース選択ボタン(写真では「USB」にすでになっていますが)を押します。
インターフェースはここで選択可能です。
今回はUSBダイレクトで繋ぐので、「USB」を選択します。
選択したら、「Connect」ボタンをクリックします。
「Connect」ボタンをクリックすると、この画面が出てくることがあります。
書き換えにはプロテクトを外すことが必要なので、「Ok」をクリックします。
正常にプロテクトが外せると、左のようなメッセージが出ますので、ここも「Ok」をクリックして画面を消します。
実はまだこの段階では接続されていない可能性があります。
右上のステータスを確認して「Not connected」とでていたら、接続されていませんので再度「Connect」ボタンをクリックします。
(上記のメッセージが出てくる場合はだいたいこうなるようですが、そのまま接続されることもあるようなので、必ず右上のステータスは確認しましょう)
右上のステータスが「Connected」になり、データやログが表示されたら接続完了です。