最近暑いですね。暑いと言っても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 件のコメント:
コメントを投稿