最近暑いですね。暑いと言っても30℃前後ですが、ずーっと北海道に住んでる身としてはつらい。部屋で座ってるだけでも汗が出てきます。
今回、オペアンプが1回路欲しい基板があったので、試しにSTM32F3を買ってみました。秋月で扱ってる唯一のF3チップである、STM32F303K8Tです。1個400円くらいです。変換基盤も合わせると500円位しますが。
32ピンQFPで、0.8mmピッチなのではんだ付けもしやすいです。
このチップは72MHzまで(HSIは64MHzまで)ですが、Cortex-M4コアを持ち、FPUも内蔵しているようです。オペアンプやコンパレータ、タッチセンサのようなアナログ回路もいろいろ載せています。
QFPのはんだ付けは何年ぶりかなーという感じです。久しぶりすぎてコツとか忘れてます。
0.5mmピッチだとガーッとハンダ盛って吸い取り線で抜いたりしてましたが、0.8mmピッチならコテを滑らすだけで綺麗に抜けていきますね。楽でいい。
電源周りはデータシートに書いてあるとおりに作りました。
VDDの0.1uFとVDDAの0.01uF、リセットの遅延の0.1uFを変換基盤の上に実装、VDDの4.7uFとVDDAの1uFはユニ基板側に実装しています。VDDAとVDDの間には470Ωのチップインダクタを入れてみました。
また、BOOT0とその横にあるPB7を短絡し、47kでプルダウンし、タクトスイッチでVDDに引っ張り、BOOT0とUSER SWを兼用しています。
32pinパッケージではBOOT1ピンがありません。大型のパッケージではBOOT0がHの場合に、BOOT1がLならシステムメモリから、BOOT1がHならRAMから起動する、といった感じになっていたと思いますが、それができません。BOOT0がHの場合は毎回ブートローダが起動するようです。
そもそもマイコンの電源が切れたらRAMに入ってるプログラムは消えるので、毎回何らかの手段でRAMに転送する必要があります。ブートローダでRAMに転送するなら、ブートローダからRAMに飛ぶコマンドを叩けばいいし、Flashからのプログラムで起動するならそこからRAMに飛べばいい、ということなのでしょう。
テスト基板にはFT232の6pinコネクタがあり、電源はここから5Vを得て3.3Vに変換しています。STM32F303K8にはUSB Phyが無いので、USBブートローダを使用できません。ということで、以前F1用に作ったUART経由のブートローダでプログラムを書き込んでいます。
F1の場合はイレースを0x43コマンドで行いますが、F3にはこれがないので、0x44コマンドを追加しました。
とりあえず、CubeMXでクロックの設定(HSIの8MHzから64MHzを作る)と、ユーザースイッチやユーザーLEDの設定を行い、RTOSは使用せず、メインループの中でLEDをトグルし、ユーザースイッチの状態に応じてforループの回数を変えてディレイする、という処理にしてみました。
何の問題もなく、気味が悪いくらいあっさりと動作しました。
ということで、これからFreeRTOSを走らせて、それからオペアンプやらの動作確認に移ろうと思います。
0 件のコメント:
コメントを投稿