STM32マイコンを使ってみた。部品箱の肥やしになっているSTM32L010を使用。秋月で買ったもので95円と書いてあったのだが、今サイトを見ると200円と書いてあるためどうやら値上げ前から放って置かれていたものらしい。

書き込み方法としては書き込み機の自作などもあるらしいものの、FT2232などの余分はないというかあっても消費したくない。ちょうどしばらく前にSTM32F4 Nucleoボードを買っていたのでそれを使うことにした。
まずNucleoボード上のSTM32に書き込めることを確認した。STM32CubeMXでCMakeプロジェクトを生成→VSCodeのSTM32CubeIDE拡張で読み込み→実行という感じで行けた。
続いてNucleoボードのST-Link互換SWD機能で書き込んだ。以下のページを参考にするとSWDCLK/SWDIO/リセットの3本と電源さえ取り出せば良いらしい。このページだと切り離さないと書き込めないように書いてあったが、自分が実験したところではジャンパCN2さえ外せば問題なかった。
回路図を確認してどういう仕組みでジャンパで切り替わっているのか確認しようと思ったが、いまひとつわからない。
https://www.st.com/resource/en/schematic_pack/mb1136-default-c04_schematic.pdf
デバッガに繋いで動かす分にはBOOTは配線しなくてもよかった。スタンドアロンで動かしたいときは必要なのかもしれない。ブート関係の仕組みについてはデータシートではなくドキュメントAN2606にまとまっているようなのだが、これまたよくわからなかった。
https://akizukidenshi.com/goodsaffix/stm32l010f4.pdf
VSCodeのSTM32CubeIDEでやっても実行・デバッグしかできないので、MPLAB IPEに相当するようなもう少しST-Linkの扱いに特化したツールが欲しい。調べたらSTM32CubeProgrammerというのがあるようだった。CLIもある。これで諸々やりたいことはできた。
STM32_Programmer_CLI -c port=SWD -d hoge.elf 0x8000000 -s というコマンドで書き込めたが、アドレス指定はデバイスによらず固定で良いのだろうか。さすがにそんなことは無い気がするが。
Categories: 未分類