(初学者です)
STM32マイコンのチップ単体の書き込みに関することです。どんな種類があるのか簡単に説明します。各書き込み方法の詳細は、説明しません。
#はじめに
STM32 32bitマイコンを利用する際、最小のピン数で書き込みたい。
そのため、書き込みに必要なピン数を調べるため、各書き込み方法を比較してみました。
一応この記事ではSTM32L432KCU6に書き込む際に困り、調べたことを書いているので、STM32のもっと高性能なF7とか、MP1に関してはどうなってるかわかりません。
#STM32マイコンの書き込み方法の種類
STM32マイコンの書き込み方式ではJTAGやSWD(Serial Wire Debug)、シリアル通信(UART)、DFU(Device Firmware Upgrade)などが存在します。
方式名 | 必要ピン数 | 説明 |
---|---|---|
SWD | 2+電源 | デバッガにより書き込む |
JTAG | 4+電源 | デバッガにより書き込む |
UART | 2+電源 | 汎用シリアル変換により書き込む+ブートローダの起動が必要なため、BOOT0ピンを切り替える必要あり |
DFU | 2+電源 | USBで直接接続して書き込む+ブートローダの起動が必要なため、BOOT0ピンを切り替える必要あり |
※ここではプログラムの書き込みに必要なピンの本数です。トレースをする場合は、SWDは3線+電源が必要です。 | ||
追記2020/03/10 SWDによる変数の値の確認などのデバッグは2線+電源で動作できそうです(STM32CubeIDEでOpenOCDにて確認)。シリアルワイヤビューワや文字出力を利用する場合(トレース)は3線+電源が必要っぽいです。 | ||
※BOOT0ピンを切り替えるということは、ピンが1本増えるか、スイッチが必要になります。(ここではBOOT1は省略) | ||
※DFUは対応していない製品もあるかも(調べてないです)。 | ||
STM32CubeIDEでは、デバッグ構成で、SWDかJTAGを選択することができます。 |
#結論
書き込みピンの本数的に、おすすめはSWDです。DFUもデバッガが必要なく、USBで書きこめることは面白いが、デバッガをもってたら、いらん子かも?
STM32CubeIDEでの書き込みも、初期設定ならSWDで書き込まれます。
SWDでは、SWDIOとSWCLKの2線で書き込むことができ、トレースをするには、SWOを接続する必要がある(多分)。
注: これらは書き込みに限った話であり、デバッグの性能を比べると、SWD以外の書き込み方法にも利点があるかも。
#####参考サイト↓