How to Select the Best STM32 Microcontroller for Your Project
The STM32 is a popular family of 32-bit microcontrollers from ST Microelectronics which are all based on ARM Cortex-M architectures.
But it’s a huge family that includes numerous variants.
In fact, Digikey shows 3,954 different STM32 microcontroller versions available!
This includes low-end versions intended to replace cheap 8-bit microcontrollers, low-power versions for mobile applications, wireless versions for IoT, and even ultra high-performance versions that can run up to 600MHz.
It can be an overwhelming process trying to figure out which version to select, so in this video I’m going to help you select the best STM32 for your specific project.
The STM32 family is split into 8 different sub-families or series including:
STM32 Series:
F series Original series. 90nm process
L series Low-power series. 90nm process
U series Low-power performance. Only U5 right now. 40nm process
H series Highest performance series. 40nm process
G series Budget series. 90nm process
C series Ultra low-cost series. Only C0 right now.
W series Wireless series- BLE, Zigbee, Thread, and long-range version with LoRaWan
MP series Microprocessors (Not covered in this video)
Before we dig into specifics for each STM32 series, it’s important to understand the differences between the various ARM Cortex-M processor core versions which all STM32’s use.
Cortex-M variations:
Cortex-M0 Most basic, low cost
Cortex-M0+ Most energy efficient, smallest core, lowest cost, Memory Protection Unit (MPU)
Cortex-M3 Mid-point between cost and performance. High-performance, real-time processing for cost-constrained applications.
Cortex-M4 Adds DSP, optional FPU, higher max clock speed, same DMIPS/MHz as M3
Cortex-M4F Commonly (but not always used) to signify an M4 with an optional FPU
Cortex-M7 2x DMIPS/MHZ as M3/M4, optional double-precision FPU, Higher clock speed
Cortex-M33 Enhanced security features, FPU, DSP extension, 20% greater performance than M4. Uses ARMv8 instruction set, versus all other M cores use ARMv7.
Grouped by processor core(s):
STM32F0 Cortex-M0 @ 48MHz
STM32C0 Cortex-M0+ @ 48MHz
STM32G0 Cortex-M0+ @ 64MHz
STM32L0 Cortex-M0+ @ 32MHz
STM32F1 Cortex-M3 @ 72MHz
STM32F2 Cortex-M3 @ 120MHz
STM32L1 Cortex-M3 @ 32MHz
STM32F3 Cortex-M4F @ 72MHz
STM32F4 Cortex-M4F @ 180MHz
STM32G4 Cortex-M4F @ 170MHz
STM32L4 Cortex-M4F @ 80MHz
STM32L4+ Cortex-M4F @ 120MHz
STM32H5 Cortex-M33 @ 250MHz
STM32L5 Cortex-M33 @ 110MHz
STM32U5 Cortex-M33 @ 160MHz
STM32F7 Cortex-M7F @ 216MHz
STM32H7 Cortex-M7F @ 600MHz + Cortex-M4 @ 240MHz
STM32WL Cortex-M4 @ 48MHz + Cortex-M0+ @ 48MHz -Long-range LoRaWAN
STM32WB Cortex-M4 @ 64MHz + Cortex-M0+ @ 32MHz – BLE5.4 + ZigBee + Thread
STM32WBA Cortex-M33 @ 100MHz – BLE5.4 + ZigBee + Thread
STM32WB0 Cortex-M0+ @ 64MHz – BLE5.3
Prioritize performance, power consumption, security, wireless, and advanced features:
Priority – Performance:
– F and H series are highest performance
– F2 or F3 for moderate performance
– F4 for high performance
– F7, or H5 for very high performance
– H7 for highest level of performance 40nm process allows highest clock speeds
Priority – Power consumption:
L and U series (U5) have lowest power consumption with most low-power modes
The L-series is the primary low-power series.
The U5 is a new low-power option that uses their 40nm process instead of the 90nm process which allows it to have higher performance with higher clock speed than the L-series.
Most of the L-series is based on a Cortex-M4 core, but the L5 and U5 both instead use the Cortex-M33 core.
Priority – Security:
Select model based on Cortex-M33 core which include enhanced security features with an security extension called TrustZone.
STM32L5, STM32U5, or STM32H5 all based on Cortex-M33
STM32WBA based on M33 with BLE, Zigbee, Thread
Priority- Wireless:
STM32WL LoRaWAN
STM32WB BLE5.4 / ZigBee / Thread
STM32WBA BLE5.4 / ZigBee / Thread
STM32WB0 BLE5.3 – Coming soon
Priority – By Advanced Features:
Camera interface F4, F7 or H7
LCD-TFT display controller F4, F7 or H7
MIPI-DSI display controller A few select models of F4 and F7
Graphics accelerator F4, F7, H7
Single-precision FPU F4, F7, H5, H7
Double-precision FPU F7 and H7
External Memory Controller F2, F4, F7, H5, and H7
Priority – Cost:
C0, G series are optimized for lowest cost. F0 and F1 are also lower cost.
The C0 is the cheapest of all STM32’s and it’s designed to replace simple, low-cost 8/16-bit microcontrollers.
The G-series is the next cheapest group of STM32 microcontrollers.
Grouped by processor series with lowest Digikey cost:
STM32C0 $0.38 @ 4900
STM32G0 $0.63 @ 5,000
STM32L0 $0.68 @ 5,032
STM32F0 $0.71 @ 5,000
STM32WB0 BLE5.3 $1.36
STM32L4 $1.83 @ 2,940
STM32WB Dual-core – BLE5.4/ZigBee/Thread $1.91 @ 4,940
STM32H5 $1.92 @ 4,960
STM32F1 $2.03 @ 500
STM32F3 $2.09 @ 3,000
STM32F4 $2.13 @ 2,500
STM32L1 $2.31 @ 2,400
STM32G4 $2.58 @ 3,000
STM32WBA BLE5.4 + ZigBee + Thread $2.79 @ 2,400
STM32F7 $3.44 @ 2,400
STM32WL Dual-core – LoRaWAN $3.59 @ 1,560
STM32U5 $3.60 @ 2,500
STM32L5 $4.71 @ 1,040
STM32H7 Single-core – $4.90 @ 990
STM32F2 $5.38 @ 1,000
STM32H7 Dual-core – $12.45 @ 800
Other content you may like:
- Which ESP32 is Best for Your Project? [YouTube]
- How to Select the Best Electronic Development Board to Prototype Your New Product
- Introduction to the ESP32 Family of Wireless Microcontrollers (Updated 2024)
- ESP32 in a Commercial Product? – From Prototype to Production [YouTube]
- How to Select the Microcontroller for Your New Product