今更STM32G0はぢめました

皆様あけましておめでとうございました!!
今年は初詣期間が2か月くらいあるそうなので全然遅くはないですね(手遅れ



さて、先月さらっと紹介したSTM32G0、秋月さんのところで9月に発売されていたのを
12月にようやく手に入れ、そして今ようやく記事にしてみた次第です。



STM32もついに8pinの世界に足を踏み入れてしまいましたがコアのほうもCorte-M0
じゃなくてM0+にパワーアップしています。しかしながらメモリ容量32kb、SRAMも
8kbもあるという小さなボディに大きな力を秘めているわけです!!


メモリ構造も慣れ親しんだSTM32の伝統のアドレス配置で移植も苦ではありません!


このマイコン用のプロジェクトの作成に当たってはSTM32G0-DISCOを参考にさせて
もらっております。

しかしピン数さすがに少なすぎできついですねこれ…どうしたらいいものか…



7,8ピンはSWDで潰れる…そして6ピンはLEDに使用済み…
この小規模なマイコンでもきることはやはり一つ…!I2C!!
PA9がリマップ済みになってるようなので用検討ですね…


ひとまずLチカできるレベルのプロジェクトをF0のプロジェクトをベースに拵えて
見ました…確認用の基板もやっけつ仕事で昔のLPC810基板に乗っけました。

デバッガの接続は定番のSWDです。8PinがSWCLK,7PinがSWDIOあとは電源の配線を
すればつながります。また、購入直後のSTM32G0の接続ではnReset(4Pin)の接続は
特に不要です!(重要)将来的にnResetをGPIO化して使う際には逆に邪魔になって
しまいますので…


OpenOCDはすでにG0シリーズの多くに対応しております。ねむいさんもG0用の
フラッシュ書き込み用のcfgを作成しました。
すでにOpenOCDのバイナリに収録済みです!


まずはVersaloonで書き込みしたところです。

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/vsllink_swd.cfg -f target/stm32g0x_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.11.0-rc1+dev-00032-gbd1adcffe (2021-01-23-19:37)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : VSLLink SWD mode enabled
swd
Info : Versaloon(0x15)by Simon(compiled on Sep 16 2014)
Info : USB_TO_XXX abilities: 0x0000176E:0x010001EF:0xC0000007
Info : clock speed 500 kHz
Info : SWD DPIDR 0x0bc11477
Info : stm32g0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for stm32g0x.cpu on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x08000c9c msp: 0x20002000
Info : device idcode = 0x10016466 (STM32G03/G04xx - Rev Z : 0x1001)
Info : flash size = 32kbytes
Info : flash mode : single-bank
Info : Padding image section 1 at 0x08000eac with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08000eb0 .. 0x08000fff
Info : wrote 3760 bytes from file main.elf in 0.188402s (19.490 KiB/s)
Info : verified 3756 bytes in 0.029309s (125.148 KiB/s)
shutdown command invoked

> Process Exit Code: 0
> Time Taken: 00:01



Win10ではレジスタウインドウ使えませんがInsightのデバッグもすいすい
できちゃいます。


お次はSTLink(STM32-NucleoのSTLink/V2-1)でHLAデバイスとして
書き込んでみます。
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink.cfg -c "transport select hla_swd" -f target/stm32g0x_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.11.0-rc1+dev-00032-gbd1adcffe (2021-01-23-19:37)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 500 kHz
Info : STLINK V2J33M25 (API v2) VID:PID 0483:3752
Info : Target voltage: 3.272439
Info : stm32g0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for stm32g0x.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x08000c9c msp: 0x20002000
Info : device idcode = 0x10016466 (STM32G03/G04xx - Rev Z : 0x1001)
Info : flash size = 32kbytes
Info : flash mode : single-bank
Info : Padding image section 1 at 0x08000eac with 4 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08000eb0 .. 0x08000fff
Info : wrote 3760 bytes from file main.elf in 0.156605s (23.447 KiB/s)
Info : verified 3756 bytes in 0.031977s (114.706 KiB/s)
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
shutdown command invoked

> Process Exit Code: 0
> Time Taken: 00:01


こんな感じでサクッと書くこむことができます。


ということでSTM32も8bitマイコンの牙城に続々と乗り込んできたおかげで
小粒マイコンも立派にSTM32として使えるような局面が出てくると思います。

今回はLEDの点滅だけですが豊富なメモリ資源とCPUスピードを利用してI2C
デバイスの制御にちゃれんぢしてみようと思います!

注:プロジェクトはまだ作成中のためもうしばらくお待ちください。

Go to top of page