STM32を表面実装で使いたい!けどどうやって回路設計すればいいの?どんな周辺部品が必要なの?という方向けの記事です。
難しいことを考えずにシンプルに回路設計してみましょう!
この記事では複雑なことは扱わず、とりあえずSTM32マイコンを動かすために最低限必要な回路を作る、というのを目標とします。
はじめに
今回はSTM32F446REという部品を表面実装するという前提で、STM32に必要な周辺回路を設計します。
STM32F446RE以外のマイコンでも同じように設計できるので、ぜひ参考にしてみてください。
何が必要なの?
STM32マイコンの必要なものは主につです。
- マイコン本体
- コンデンサ
- 書き込み回路
- (発振回路)
- (GPIOの配線)
これだけです!
設計しよう
それでは始めましょう。今回はKiCADで設計していきます。
以下、μFをuFと表記しています。
マイコンを置く
電源をGNDにつなぐ
VSSとVSSAというピンをGNDにつないでください。
また、VBATと4つのVDDを3.3Vにつないでください。
VDDAはまだおいておいてください。アナログ用の電源なので後でノイズ対策の回路を通して電源につなぎます。
コンデンサをつける
まずVCAPというピンに4.7uFのコンデンサをつけてGNDに落とします。
次に、VDDの部分にコンデンサを付けます。
VBATとVDDに一つずつ100nFのコンデンサを付けます。また、追加で4.7uFのコンデンサを一つずつ付けます。
最後にアナログ電源用のVDDAピンに100nFと1uFのコンデンサをつけて、フェライトビーズを通して3.3Vにつなぎます。
これで電源周りは終わりです。
書き込み回路
書き込みはUART書き込みが楽です。
BOOT0ピンをHIGHにすることでUART1かUART3からプログラムを書き込めるようになります。今回はUART1を使います。
UART1はRXがPA10、TXがPA9です。
これをPCとつなげます。別でUSB-シリアル変換を使うのであればUARTのままピンソケットなどで出せばよいですし、基板にUSBコネクタを実装するのであればUSB-シリアル変換回路も作りましょう。
そして、BOOT0の切り替えのためのスライドスイッチとリセットのためのタクトスイッチをつけます。
これで完成です!!
発振回路
水晶発振器を用意して外部発振回路をつけても良いのですが、基本的には内部にある発振回路で十分なため、初心者の方は特に気にしなくてよいと思います。
この後
入出力のピン割り当てを決めるときにはSTM32CubeIDEを使うと便利です。
どのピンでどんな機能(UART、I2C、ADCなど)が使えるのかがすぐわかり、その条件の下で割り当てを考えられます。
回路設計が終わって基板設計をする際には、電源ピンにつけたコンデンサはできるだけそのピンの近くに配置するということだけ気を付けてください。ノイズがマイコンに入らないようにするためのコンデンサなので近くに置かないと意味がないです。
最後に
STM32はなんだか難しそうなイメージがありますが、ただ動く回路を作るだけなら意外と難しくなさそうですよね。ぜひやってみてください。
より詳しいことを知りたい人は以下の資料が参考になると思います。