STM32C0はぢめました


個人ぶろぐでは一番のりかな!?


てわけでリリースしたばかりのSTM32C0シリーズに手を出しました。
立ち位置的にはSTM32G0から機能をシュリンクし、コストを下げて
8/16bitの価格帯に32bitを持ち込む戦略のようです。


評価基板もDiscovery/Nucleo系がすでにリリースされており、
ねむいさんはSTM32C031C6-NUCLEO基板を入手しました。


ところで2021年以降のNucleoはコネクタがUSB-MicroBに変わっているので
ご注意ください…!


そんでもってAVCCが3.3Vに接続されてませんのでご注意ください…
これで30分はまった…orz

基本的な使い方はSTM32G0と全く変わりません。つまりG0からC0への
移植も全く苦ではありませんでした。

ちなみにSTM32CubeC0ライブラリもGithubに登場しております。
STMicro公式からもダウンロードできますが更新が遅く落とすために
登録があって面倒なのでGithubから落としたほうが楽です。



ちなみにuSecディレイに使っている一般タイマですが、HALが微妙に
バージョンアップしていて構造体変数が1個追加されてやがりました。
実はSTM32G0から追加されていたようですが普通に動作してたのでずっと
気づかず、STM32C0では最初うまく動作しなかったところで初めて
気づき30分ほど足止めを喰らいましたorzマニュアルはちゃんと読もう。


というわけでいつものI2Cデバイスをぶら下げて動作させてみます。


こんな感じで何事もなく動作しました☆
AVCCがジャンパされてなかったり変数設定の漏れがあったり
何事もあった気がしたけど気のせいです。




おっとその前に、順番が入れ違いましたがOpenOCDはまだ公式には
STM32C0シリーズのフラッシュ書き込みに対応していませんがgerritに
パッチが上がっています
。こいつを適用したOpenOCDをビルドして
さらにSTM32C0用書き込みスクリプトも準備して書き込んでみます。

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink-dap.cfg -c "transport select dapdirect_swd" -f target/stm32c0x_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.12.0+dev-00075-g79caea874 (2023-02-23-23:36)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
dapdirect_swd
Info : STLINK V2J38M27 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.227154
Info : Unable to match requested speed 500 kHz, using 480 kHz
Info : Unable to match requested speed 500 kHz, using 480 kHz
Info : clock speed 480 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x0bc11477
Info : [stm32c0x.cpu] Cortex-M0+ r0p1 processor detected
Info : [stm32c0x.cpu] target has 4 breakpoints, 2 watchpoints
Info : starting gdb server for stm32c0x.cpu on 3333
Info : Listening on port 3333 for gdb connections
[stm32c0x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x08001918 msp: 0x20003000
Info : device idcode = 0x10006453 (STM32C03xx - Rev A : 0x1000)
Info : RDP level 0 (0xAA)
Info : flash size = 32 KiB
Info : flash mode : single-bank
Warn : Adding extra erase range, 0x08006070 .. 0x080067ff
Info : wrote 24688 bytes from file main.elf in 1.217141s (19.808 KiB/s)
Info : verified 24688 bytes in 0.269830s (89.350 KiB/s)
shutdown command invoked

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

なおOpenOCDでは内部的にはG0と同じくフラッシュ書き込みルーチンが
L4シリーズと同じ扱いになっています。


そんなわけでSTM32C0にも対応したOpenOCDのWindowsバイナリ
すでにおきぱにて公開しております!STM32C0を手に入れた人は
バンバン使っていただけるとありがたいです!

ついでにNUCLEO向けのテストプログラムも公開しております。
新規プロジェクトの取っ掛かりにご利用ください!!

Comments

Post a Comment








Go to top of page