準備というかすでに製作は始まっているのですが、次に作っているモジュールは VCA です。VCA ユニットで終わりではなくあれは部品です。ユニットはもっとたくさん作らないといけませんが後でじっくりやることにして、モジュール制御部の試作を開始します。マイクロコントローラは今まで AVR を主に使っていましたがコスト・速度の面からSTMicro の STM32 に乗り換えられないかと考えています。Rings が STM32 を使っている影響もあります。コードを学んで信号処理も始められればと。
VCA に使うマイクロコントローラの候補は STM32C011F6P6です。6KB の SRAM、32KBのフラッシュメモリ、クロック 48MHz 20 ピンとかなりの高性能ですが値段が1ドル程度と安い。このデバイスで VCA の制御部が作れるか検討します。デバイスはもう入手済みなので、本日はこれを使えるようにするのが作業内容です。入手したのは TSSOP ですからそのままでは試作はやりづらく、ブレイクアウトボードに載せます。

れいによって基板をプレヒートしつつホットエアガンを使って取り付け。特に問題なしです。

電源として昨日検討した MC34063 を使った降圧回路を一緒に使ってみます。STM32 コントローラの電源は 3.3V なので、昨日の 5V 版とは回路定数が変わります。回路定数計算スクリプトで再計算、問題なく 3.3V が出ました。まずは LED 点滅と UART でのシリアル通信をやってみます。ブレッドボード上で配線をします。プログラマはなるべく純正を使う派で ST-Link/v2 を入手してありました。マニュアルとデータシートと首っ引きで SWD 接続します。

STM32CubeProgrammer を使って、デバイスが認識されることを確認。ここは少してこずりました。以下注意事項
- 接続は SWDIO、SWCLK、RESET、GND をつなげば良い。SWO は別にいらない(何の接続かわかってません)
- ST-Link/v2 の JTAG1 ピン (VAPP) と 19ピン (VDD) をつなぐ。VAPP はアプリ側の電源につなぐものらしいが安全のためにこのようにドングルに閉じた接続にしても良い。VAPP に電圧を入れないとデバイスが認識されない
さてではプログラム書きです。STM32CubeIDE という IDE を使うのが基本なようです。早速インストール。
IDE の使い方ですが、STMicro が詳しいドキュメントを公開しています。
https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32
https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32_system_peripherals
ですが、初めてだとなんかちょっと頭に入らない。とっかかりにはデジキーのチュートリアル動画がとても分かりやすくて良かったです。英語で結構な早口ですけれども活舌が良いのかかなり聞き取りやすいです。初めての人が疑問に思うようなところを丁寧に説明していてすんなり頭に入ります。お勧めです。
さて、デバイスを選んでプロジェクトを作成すると、見た目の雰囲気は少し PSoC Creator に似ています。コードは HAL という抽象化レイヤがかぶっていてデバイスごとのレジスタの設定などは IDE が面倒を見てくれるようです。データシートのレジスタ表とにらめっこしなくても良くてありがたし。それから IDE はエクリプスが土台なようです。勝手知ったる IDE なので使い方について困ることは特にありませんでした。ありがたし。

LED チカチカとシリアル通信はできました。順調順調。