前回、デバッガ&ライタST-LINKの話を行いました。
次は、自作STM32F446汎用基板の書込みと動作確認を行っていきます。
これから確認しながら行うため自作汎用基板の回路図を再掲載
ハードウェアをセッティング
今回は、Nucleoに標準搭載されているST-LINKを使って書込みしてみます。
- Nucleoの基板の、CN2のジャンパを外す
- NucleoのCN4(SWD)と自作汎用基板のJ3(SWD)をピンソケットケーブルで接続
- NucleoとパソコンをUSBminiケーブルで接続
- 自作汎用基板とパソコンをAE-FT234X経由で接続(5V,GND,Tx,Rx)
STM32CubeMXのセット
自作汎用基板のピン設定をSTM32CubeMXで行っていきます。
- 8MHzの共振子を接続
- 32.768kHzの水晶振動子を接続
- SWDの接続
- USARTの引き出し
- USB_OTGの引き出し
- プログラマブルLEDの名前をD2に
- スイッチの名前をSW1に
プロジェクト新規作成
前に作ったNucleoプロジェクトをClose Allした後、新しくProjectを画像の手順で作成します。
実装したマイコンの型番は、STM32F446RCT6なので、以下のように入力してマイコンを選択します。
名前を入力して、Finishを押します。
STM32CubeMXの画面になります。
Pinout & Configuration
GPIO_Output&GPIO_Input
簡単なところから始めると、PA5はLEDに繋がっているので、outputに切り替えていきます。
PA5のピン領域で左クリック、GPIO_Outputを選択。
切り替わりました。
名前をシルクに合わせてD2に変更していきます。
PA5の場所で右クリック、Enter User Laberを選択。
D2を入力してEnterキーを押す。
変更完了です。
同じようにPC13のピンも、GPIO_Inputに設定してSW1に変更。
周波数設定
次は、クロック入力周りの、8MHzの共振子と、32.768kHzの水晶振動子を設定していきます。
System CoreのRCCを選択して、HSEとLSEを両方共Crystalを選択すると、ピン領域が緑色に変わり設定されます。
周波数の入力は、隣のタブであるをクリック。
画像のように、左側のInput frequencyのLSEのところに”32.768″を、HSEのところに”8″を入力します。
真ん中の更新アイコンを押すと、周辺回路で使用する周波数が自動で変更されます。
ST-LINK(SWD)
ST-LINK経由による書込やデバッグが行えるようにするには、
System CoreのSYSをクリックして、DebugにSerial Wireを選択すると、下記のようにPA13、PA14、PB3,のピン領域が変更されます。
USART&USB OTG
通信周りである、USARTとUSB_OTGをセットしていきます。
Connectivityをクリックして、USART3をクリック。Asynchronous(非同期)を選択します。
USB_OTG_FSをクリックして、OTG/Dual_Role_Deviceを選択します。
これでSTM32CubeMXの設定は完了したので、保存します。
そうすると、コードを生成するか聞かれるのでYesボンタをクリックします。
生成コード確認と書込
main.cを開いて、91〜93行目に自動でコードが生成されているのを確認したら、
D2のLEDを点滅させるプログラムを入力して、コンパイル&ST-LINK経由で書き込みしてみます。
無事、1Hzの周期でLEDが点滅してくれました。
次は、UARTとUSB経由での書込みを行ってみます。