hantas's blog

ブログ移転しました→ http://blog.taniho.net/

STM32F401 nucleo boardあれこれ

秋月でnucleo boardを買ったはいいものの,何もわからず押入れの奥で眠らせている人向けの記事です。
必要な資料の見つけ方,開発の始め方,初期設定の仕方,基板分離の仕方などについて触れていきます。

あらかじめ用意しておきたいドキュメント等

nucleo board

NUCLEO-F401RE STM32 Nucleo-64 development board with STM32F401RET6 MCU, supports Arduino and ST morpho connectivity - STMicroelectronics

  • User Manual / UM1724: STM32 Nucleo-64 boards
    nucleo boardのユーザーマニュアルです

STM32F401RE

STM32F401RE STM32 Dynamic Efficiency MCU, ARM Cortex-M4 core with DSP and FPU, up to 512 Kbytes Flash, 84 MHz CPU, Art Accelerator - STMicroelectronics

  • 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つの選択肢があります。

  1. マイクロマウス界隈で有名な方が作成された書き込みソフトがあります。
    STM32 FLASH Writer Program Using Python
    ただし,僕の環境では適切なmotファイルが生成されなかったため,binファイルを書き込めるように改造して使っています。
  2. 公式のツールを使いましょう。
    STSW-LINK004 STM32 ST-LINK utility - STMicroelectronics

初期設定

クロック設定

WindowsExcelが導入されている場合は非常に簡単です。
STSW-STM32091 Clock configuration tool for STM32F40x/41x microcontrollers (AN3988) - STMicroelectronics
このエクセルシートを実行し,適切な入力クロックなどを記入して更新,生成されたファイルをプロジェクトに入れるだけです。

ここでHSIは内部クリスタル(マイコンに内蔵されています),HSEは外付されたクリスタルです。

このクロック設定を有効化するため,電源投入時にSystemInit()関数を呼び出してあげましょう。

基板分離

nucleo boardはST-Linkとマイコンボード本体を分離できるように設計されています(すごいっ)。
そのために確認しておくべきことをまとめておきます。
"UM1724: STM32 Nucleo-64 boards"を見ながら作業してください。

  1. 5.1 Cuttable PCBに概要が書かれています。
  2. 書き込み手段
    主に次の2つの手法があります。
    • SWD(JTAGみたいなやつ)を使って書き込む場合,5.2.4 Using ST-LINK/V2-1 to program/debug an external STM32 applicationを見ながら,ST-Linkとマイコンボードを接続します。
      この時,ジャンパ抵抗をいくつか付け替える必要があります。
    • USARTを使って書き込む場合,書き込み用のピンを確認して書き込み器と接続します。(Miceで主流な方法は,FT234ボードを接続します。GNDも接続するように)
  3. 電源
    電源は外部から入れてやる必要があります。電圧はいろいろと選択肢があります。 その時,ジャンパピンを動かして電源を外部入力できるようにしてあげましょう。
  4. 外部クリスタル
    必要な場合,外部クリスタルを接続できます。 同時にコンデンサもつける必要があります。
    またその場合,ジャンパ抵抗をいくつか付け替える必要があります。

とりあえずここまで。何かあれば追記します。