たくさんあるSTM32 Nucleoシリーズの中から自分に合ったものを選ぶ


STM32 NucleoはArduinoと同等な価格・アクセシビリティでありながら、ARMを使ったOS寄りなコードで動かせるので便利な時は便利。ただ毎回「たくさんある中のどのモデルがよいのか」で小一時間悩んでしまう、というか情報を見つけるのに手間取る。

そこでSTM32全体のシリーズ構成とともに、どういうときにどのNucleoが良さそうかを選べる指針となるようなページを作っておこうと思う。

大まかな指針

  1. クロック周波数: 番号が大きいもの、High-performanceをうたったタイプ (たとえばF3..., F4..., F7...シリーズ)の方が速い
  2. フラッシュメモリサイズ: 型番の最後の記号が大きいほうが大きい(たとえば...8よりは...A...Cの方が大きい)
  3. ADCの数: 基本的には、ピン数の多いMCUの載ったもの (...Rxとか...Vxとか...Zxといった記号で終わる型番)のほうが多い
  4. DACの数: モデルによる
  5. タイマの数: モデルによる
  6. 消費電力: Lではじまるシリーズ、とくに-Pで終わるシリーズがよい

STM32 シリーズ構成

ST microelectronicsのページには、この画像がある:

  • シリーズごとに計算能力が違う(最初の画像の横軸)。能力が下がるほど、一般には安価。
  • メインストリーム以外でも、より特定用途に最適化したモデルが存在する(High-performanceやLow-powerのように)
  • STM32 NucleoでカバーされているMCUは、すべてのSTM32から見るとほんの一部。

具体的なラインナップ(2019年1月現在; 型番はNucleoになっているもののみ):

Mainstream

エントリーモデル的な位置付け。

  • 多くのモデル(F1以外)にDACとコンパレータを標準装備
  • ADCの数もそこそこ(F1以外)。
シリーズ Nucleo-32 Nucleo-64 Nucleo-144
F0 F031K6, F042K6 F030R8, F070RB, F072RB, F091RC ×
G0 × G070RB, G071RB ×
F1 × F103RB ×
F3 F301K8, F303K8 F302R8, F303RE, F334R8 F303ZE

High-performance

ハイエンド機(計算能力が強化されたモデル)。

  • メインストリームよりもクロックが概して高速
  • 確かFPUがついている(FPUはF3にもついている)
  • 16bitタイマに加えて32bitタイマも標準装備。
  • ただしDACやコンパレータは省かれている場合が多いので注意。
シリーズ Nucleo-32 Nucleo-64 Nucleo-144
F2 × × F207ZG
F4 × F401RE, F410RB, F411RE, F446RE F412ZG, F413ZH, F429ZI, F439ZI
F7 × × F722ZE, F746ZG, F756ZG, F767ZI
H7 × × H743ZI

Ultra low-power

計算能力と引き換えに省電力をうたったモデル。

  • 概してクロック周波数が低い
  • その他のスペックはメインストリームのモデルと遜色ないように見える
シリーズ Nucleo-32 Nucleo-64 Nucleo-144
L0 L011K4, L031K6 L010RB, L053R8, L073RZ ×
L1 × L152RE ×
L4 L412KB, L432KC L412RB-P, L433RC-P, L452RE, L452RE-P, L476RG L496ZG, L496ZG-P
L4+ × × L4A6ZG, L4R5ZI, L4R5ZI-P
L5 × × ×

Wireless

シリーズ Nucleo-32 Nucleo-64 Nucleo-144
WB × × ×

Nucleoの分類

Nucleoの型番の読み方

大まかには、Nucleoの型番 ≒ STM32 MCUの型番。
型番はSTM32 MCUと同じものを使っている。

1+2 3+4 5 6 7
意味 シリーズ名 プロダクトID ピン数(パッケージ) フラッシュメモリサイズ Nucleo拡張機能
F334R8 F334R8 F301K8 (32ピン), F334R8 (64ピン), F207ZG (144ピン) F031K6 (32kB), F301K8 (64kB) L433RC-P

ピン数とフォームファクタ:Nucleo-32/64/144

型番の数字の後の"C"やら"R"やらは、大まかにはI/Oピンの本数で決まっている。

12-bit ADCの数も、これにある程度比例する形で決まっている。シリーズにもよるけれど、たとえば32ピンなら8–12個、64ピンなら15–25個、100ピン以上なら20–40個程度。

STM32 Nucleoには32ピン型(K)と64ピン型(R)、144ピン型(Z)のSTM32 MCUが載っていて、これに対応する形でNucleoにも3種類のフォームファクタがある。

おそらく一番メジャーなのはNucleo-64で、以下のような形(以下、いずれもSTMからのリンク):

これがNucleo-32:

これがNucleo-144:

文字 MCUのパッケージ
C LQFP48 / UFQFPN48
E WLCSP25L
F TSSOP20
G UFQFPN28
K LQFP32 / UFQFPN32
T WLCSP36L
R LQFP64
V LQFP100
Z LQFP144

フラッシュメモリサイズ

ピン数のIDの後にくる文字はフラッシュメモリのサイズを反映しているようだ。

文字 フラッシュサイズ
6 32kB
8 64kB
B 128kB
C 256kB
D 384kB
E 512kB
F 768kB
G 1024kB
H 1536kB
I 2048kB

Nucleo拡張機能

上記の例のように"-P"がつくボードにはDC/DCコンバータが内蔵されていて、RUN時(書き込んだプログラムを動かすとき)にはそこから給電する。電圧の無駄がなくなるので省電力になるようだ。

個別スペック(I/Oなど)

コメントは、64ピンモデルのNucleoのスペックを見て得た感想。

Mainstream

F0 series

「標準構成」のNucleo。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F030R8 64 Cortex-M0 48MHz 7 16
F031K6 32 Cortex-M0 48MHz 5 1 10
F042K6 32 Cortex-M0 48MHz 5 1 10
F070RB 64 Cortex-M0 48MHz 8 16
F072RB 64 Cortex-M0 48MHz 8 1 16 1 2 2
F091RC 64 Cortex-M0 48MHz 8 1 16 1 2 2

G0 series

標準構成でも、「計算多め」の方にステータスが振ってある。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
G070RB 64 Cortex-M0+ 64MHz 8 1
G071RB 64 Cortex-M0+ 64MHz 10 1 2 2

F1 series

「最小構成」モデル。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F103RB 64 Cortex-M3 72MHz 4

F3 series

「標準構成」の高機能エディションで、FPUが積んである。計算能力高め、出力多め。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F301K8 32 5 1 8 1 2
F302R8 64 5 1 15 1 3
F303K8 32 7 1 9 3 2
F303RE 64 9 1 22 2 7
F303ZE 144 10 1 40 2 7
F334R8 64 7 1 12 3 3

High-performance

F2 series

ハイエンド系の中でも中間的なバランスのもの。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F207ZG 144 12 2 24 × 2 ×

F4 series

F2シリーズに比べてタイマ機能強化、出力少なめ。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F401RE 64 Cortex-M4 84MHz 6 2 16
F410RB 64 Cortex-M4 84MHz 6 2 16
F411RE 64 Cortex-M4 100MHz 6 2 16
F412ZG 144 Cortex-M4 100MHz 12 2 16
F413ZH 144 Cortex-M4 100MHz 13 2 16 2
F429ZI 144 Cortex-M4 180MHz 12 2 24 2
F439ZI 144 Cortex-M4 180MHz 12 2 24 2
F446RE 64 Cortex-M4 180MHz 12 2 16 2
F446ZE 64 Cortex-M4 180MHz 12 2 24 2

F7 series

F4よりさらに高速。I/OまわりはF4とほぼ同等。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
F722ZE 144 Cortex-M7 216MHz 12 2 16 2
F746ZG 144 Cortex-M7 216MHz 12 2 24 2
F756ZG 144 Cortex-M7 216MHz 12 2 24 2
F767ZI 144 Cortex-M7 216MHz 12 2 24 2

H7 series

最高速のモデル。I/Oまわりもメインストリーム系より充実。とくに16-bit ADCがついているのが特徴か。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
H743ZI 144 Cortex-M7 400MHz 18 2 20 2 2

Ultra low-power

シリーズ コア クロック周波数(最大) 備考
L0 Cortex-M0+ 32 MHz M0コアの標準モデル
L1 Cortex-M3 32 MHz タイマ機能・I/O多め
L4 Cortex-M4 80 MHz 計算能力強化モデル
L4+ Cortex-M4 80–120 MHz L4をたぶんちょっと改良

L0 series

L系の中の標準モデル。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
L010RB 64 Cortex-M0+ 32MHz 3 2
L011K4 32 Cortex-M0+ 32MHz 3 10 2
L031K6 32 Cortex-M0+ 32MHz 4 10 2
L053R8 64 Cortex-M0+ 32MHz 5 16 1 2
L073RZ 64 Cortex-M0+ 32MHz 7 16 2 2

L1 series

L0に比べてタイマ機能・I/O多め。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
L152RE 64 Cortex-M3 32MHz 8 1 21 2 2

L4 series

L0から計算能力(速度)を強化したモデル。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
L412KB(/RB-P) 32(64) Cortex-M4 80MHz 5 1 10 1
L432KC(/RC-P) 32(64) Cortex-M4 80MHz 7 1 10 2 2
L452RE(-P) 64 Cortex-M4 80MHz 8 1 16 1 2
L476RG 64 Cortex-M4 80MHz 11 2 16 2 2
L496ZG(-P) 144 Cortex-M4 80MHz 11 2 24 2 2

L4+ series

L4を(たぶん)ちょっと改良したモデル。

モデル ピン数 コア クロック周波数 16-bitタイマ 32-bitタイマ 12-bit ADC 16-bit ADC 12-bit DAC コンパレータ
L4A6ZG 144 Cortex-M4 80MHz 11 2 24 2 2
L4R5ZI(-P) 144 Cortex-M4 120MHz 11 2 16 2 2