STM32F401 nucleo boardあれこれ
秋月でnucleo boardを買ったはいいものの,何もわからず押入れの奥で眠らせている人向けの記事です。
必要な資料の見つけ方,開発の始め方,初期設定の仕方,基板分離の仕方などについて触れていきます。
あらかじめ用意しておきたいドキュメント等
nucleo board
- User Manual / UM1724: STM32 Nucleo-64 boards
nucleo boardのユーザーマニュアルです
STM32F401RE
- Product Specifications / DS10086: ARM® Cortex®-M4 32b MCU+FPU, 105 DMIPS, 512KB Flash/96KB RAM, 11 TIMs, 1 ADC, 11 comm. interfaces
各機能の概要を確認します ピン配置が掲載されています - Reference Manual / RM0368: STM32F401xB/C and STM32F401xD/E advanced ARM®-based 32-bit MCUs
各機能の詳細を確認できます - Application Note / AN2606: STM32 microcontroller system memory boot mode
ブートモードの詳細が書かれています
他にも有用なドキュメントがあるので必要に応じてこのページを参照しましょう。
開発環境の導入
Linuxの場合はこちらの記事を参考にしてください(近々書き直します)
STM32 Nucleo Boardの開発環境構築 - hantas's blog
Windowsは,まだβですがEm::Blocksがいいと思います。
(CoIDEはSTM32F401に対応していません)
Home - Em::Blocks
書き込み環境ですが,Windowsの場合2つの選択肢があります。
- マイクロマウス界隈で有名な方が作成された書き込みソフトがあります。
STM32 FLASH Writer Program Using Python
ただし,僕の環境では適切なmotファイルが生成されなかったため,binファイルを書き込めるように改造して使っています。 - 公式のツールを使いましょう。
STSW-LINK004 STM32 ST-LINK utility - STMicroelectronics
初期設定
クロック設定
WindowsでExcelが導入されている場合は非常に簡単です。
STSW-STM32091 Clock configuration tool for STM32F40x/41x microcontrollers (AN3988) - STMicroelectronics
このエクセルシートを実行し,適切な入力クロックなどを記入して更新,生成されたファイルをプロジェクトに入れるだけです。
ここでHSIは内部クリスタル(マイコンに内蔵されています),HSEは外付されたクリスタルです。
このクロック設定を有効化するため,電源投入時にSystemInit()関数を呼び出してあげましょう。
基板分離
nucleo boardはST-Linkとマイコンボード本体を分離できるように設計されています(すごいっ)。
そのために確認しておくべきことをまとめておきます。
"UM1724: STM32 Nucleo-64 boards"を見ながら作業してください。
- 5.1 Cuttable PCBに概要が書かれています。
- 書き込み手段
主に次の2つの手法があります。 - 電源
電源は外部から入れてやる必要があります。電圧はいろいろと選択肢があります。 その時,ジャンパピンを動かして電源を外部入力できるようにしてあげましょう。 - 外部クリスタル
必要な場合,外部クリスタルを接続できます。 同時にコンデンサもつける必要があります。
またその場合,ジャンパ抵抗をいくつか付け替える必要があります。
とりあえずここまで。何かあれば追記します。