This is an old revision of the document!
The STM32 family is developed and manufactured by STMicroelectronics. They are considered advanced and efficient and are known for great technical documentation, versatility, performance, energy efficiency, and reliability. They are also highly configurable and provide a wide range of features.
For a long time, STM32 delivered MCUs without radio modules; thus, they required external radio communication interfaces for IoT applications. Recently, a series of chips have been available with built-in radio modules, mostly using IEEE 802.15.4 (Zigbee, Thread, and other wireless sensor network protocols) rather than 802.11 (WiFi).
STM manufacturer provides developers with development kits, some of which can accommodate popular Arduino shields. They also provide a development SDK based on the popular Eclipse platform (implemented with Java, thus cross-platform). They also ensure at least 10 years of availability and support.
STM32 MCUs are known for their energy-efficient operation, making them suitable for battery-powered and low-power IoT applications.
Industrial grade series can handle video processing, TFT displays, and so on, thanks to the built-in performance options such as an independent vectorised interrupt system and DMA.
STM32 SoCs use ARM Cortex-based cores, starting from M0 to M7 [1]. Some of the SoCs integrate 2 cores, such as in the case of the radio-equipped models, where the main core is supported by the extra one (usually M0+), which handles wireless communication protocols. All MCUs are 32-bit. Some of the STM32 MCUs tend to tolerate a wider range of powering voltages. Thus, they may operate on raw battery cells without needing a voltage conversion and stabilisation.
There are 5 major series of the microcontrollers and microprocessors manufactured by STM:
All STM32 use ARM Cortex cores, either single, double or in pair with another ARM core coprocessor, such as in the case of the industrial grade (MP1) microprocessors and wireless (STM32W) microcontrollers series.
Maximum frequencies depend on the ARM Core model and are between 32MHz for Cortex M0+ cores and 550MHz for H7. Industrial series MP1 hits even 1GHz.
Built-in RAM, flash, and EEPROM sizes depend on the family of chips and the exact model within this family. Ultra-low-power devices such as STM32L0 microcontroller have only 2kB of RAM, 128B of EEPROM, and 16kB of flash. Conversely, the STM32H7 microcontroller can have up to 1184kB of RAM and 2MB of built-in flash. Most MCUs can extend the memory externally with SPI (even up to dual QSPI interface). Each STM32 series has its variations that vary in the built-in memory size.
Only the STM32 W series provides radio connectivity integrated into the MCU. Currently, there are 4 chip series (and each has its variations regarding enclosure size, memory size (both RAM and flash), number of GPIO pins available, and some advanced functions such as secure keys management, secure boot, etc.:
Each series has its variations, e.g., the STM32 WL series has STM32WLE5 and STM32WL54 that do not support LoRa, as well as versions STM32WLE5 and STM32WL55 with LoRa.
The STM32 family provides all peripherals and interfaces, but availability and amount depend on the family, series, and particular model. Using a peripheral bus matrix, STM32 MCUs connect the CPU core to various peripheral modules. This matrix allows for flexible routing of communication between the CPU and peripherals. Each peripheral block has associated control registers allowing configuring and controlling their operation. Those registers can be used to set parameters, enable or disable features, and monitor the status of the peripherals.
Peripherals include:
STM32 has efficient and highly configurable clocks, an NVIC interrupt controller (Nested Vectored Interrupt Controller), and a DMA that, along with timers, provide great capabilities for Real-Time applications of high performance and reliability. Figure 1 presents a sample STM32G4 configuration for clocks.
Some STM32 MCUs provide computing performance high enough to handle image and video processing, e.g. STM32F7 and STM32H7 series have hardware-accelerated jpeg (and thus mjpeg) encoding and decoding. MP1 series can be equipped with an optional GPU for 3D acceleration. Some of the MCUs include a built-in TFT display controller.
A detailed hardware summary is present in the following subchapters:
the tables ##REF:stm32hwhp##, 1, 2 and 3.
[pczekalski]Add series hw specification
Series: | CPU (Core/Cores) | RAM (*-not all chips/versions) | Flash / EEPROM | Interfaces (*-not all chips/versions) | Voltage (*-not all chips/versions) | Other features (*-not all chips/versions) |
---|---|---|---|---|---|---|
STM32C0 | Cortex M0+@48MHz | 6kB or 12kB | 16kB or 32kB | I2C SPI I2S 2xUSART ADC | 2.0V to 3.6V | 5×16-bit Timers IWDG (Independent Watchdog) WWDG (Window Watchdog) |
STM32F0 | Cortex M0@48MHz | From 4kB up to 32kB 20B backup data* | From 16kB to 256kB | 2xI2C 2xSPI I2S up to 8 USART* CAN* USB* 12-bit DAC* CEC (HDMI-CEC)* 12-bit ADC | 1.8V for low-voltage product line* 2.0V to 3.6V* 2.4V to 3.6V* | 2xWatchdog Hardware CRC Internal RC PLL RTC Calendar 16 and 32-bit Timers Temperature Sensor Multiple Channel DMA Comparator* Unique ID Touch Sense* |
STM32G0 | Cortex M0+@64MHz | up to 144 (SRAM) | 16kB to 512kB Securable Memory Area* | USART SPI I2C 12-bit ADC (2.5 MSPS) 12-bit DAC 2 channel* Low-Power UART* USB-C Power Delivery* USB DEV/HOST 2.0 FS CAN-FD* | 1.7V to 3.6V* 2.0V to 3.6V* | 2xWatchdog RTC PLL Main Oscillator and 32kHz Oscillator Temperature Sensor AES-256* Random Number Generator* DMA Comparator* 32-bit Timer* 16-bit MC Timer 16-bit Timer Low-Power Timer* |
STM32F1 | Cortex M3@(24/36/48/72)MHz | 4kB to 96kB | 16kB to 1MB | USART SPI I2C 3×12-bit ADC 2×12-bit DAC USB 2.0 FS* FSMC* CAN 2.0B* I2S* SDIO* Ethernet IEEE1588* CEC (HDMI-CEC)* | 2.0V to 3.6V, GPIOs are 5V tolerant | 16 and 32-bit Timers Temperature Sensor 3-phase MC Timer* |
STM32F3 | Cortex M4@72MHz (DSP+FPU) | 16kB to 80kB CCM-SRAM* | 16kB to 512kB | USART SPI I2C USB 2.0 FS* CAN 2.0B* I2S Up to 4 12-bit ADC* 3×16-bit ADC* | 1.8V for low-voltage product line 2.0V to 3.6V | Routine Booster (CCM) DMA 16 and 32-bit Timers Hardware CRC Low and High-Speed Oscillators RTC Temperature Sensor Capacitive Touch Sensing 2xUltrafast Comparators* Up to 7 Fast Comparators* Up to 4 Op-amp (PGA)* High-Resolution Timer* Advanced 16-bit PWM Timer |
STM32G4 | Cortex M4@170MHz (DSP+FPU) | Up to 112kB* 128kB* CCM-SRAM up to 16kB* CCM-SRAM 32kB* | 32kB to 512kB Flash Memory with ECC | USART SPI I2C SAI 3/5 12-bit ADC* 4/7 12-bit DAC FSMC* Quad-SPI CAN-FD USB-C Power Delivery USB 2.0 DEV/FS* | 1.71V to 3.6V | Math Acceleration (FMAC, Cordic) 4/6 Op-amps (PGA)* Up to 3 Ultrafast Comparators* ART Accelerator Advanced Motor Control Timers Multiple DMA with DMAMUX PLL, Temperature Sensor Vbat Battery Voltage Mode High Resolution Timer* |
Series: | CPU (Core/Cores) | RAM (*-not all chips/versions) | Flash / EEPROM | Interfaces (*-not all chips/versions) | Voltage (*-not all chips/versions) | Other features (*-not all chips/versions) |
---|---|---|---|---|---|---|
SMT32L0 | Cortex M0@32MHz | up to 20kB | 128kB/192kB flash 512B/6K EEPROM | 12-bit ADC (1.14Msps) USART USART SPI I2C LP UART PVD (Programmable Voltage Detector)* USB 2.0 FS* 2×12-bitDAC* | Dynamic Voltage Scaling Down to 1.8V* Down to 1.65V* | Dynamic Voltage Scaling 5 Clock Sources Advanced RTC with Calibration 16-bit Timers Low Power Timers 2x Watchdog DMA AES-128 Temperature Sensor* Segment LCD Driver (4×52/8×48)* Random Number Generator* Touch Sense* 2xUltra Low PPower Comparators |
STM32L4 | Cortex-M4@80MHz (DSP+FPU) | 40kB to 320kB | 64kB to 1024kB | USART UART SPI I2C Quad-SPI 1/2 SAI+Audio PLL* SWP (Bank Swap Pin) 1/2 CAN* 1/2 12-bit DAC* FSMC 4/8 Sigma Delta Interfaces* 1-3 12-bit ADC (5Msps) with 16-bit Over-sampling USB 2.0 OTG* USD 2.0 DEV* | 1.71V to 3.6V | ART Accelerator Chrom-ART Graphic Accelerator 16 and 32-bit Timers Temperature Sensor Vbat Battery Voltage Mode Unique ID Capacitive Touch Sensing Hardware Crypto AES-128/256* Hardware SHA-256* 1/2 Op Amps |
STM32L4+ | Cortex-M4@120MHz (DSP+FPU) | 320/640kB | 512kB to 2048kB | USART UART SPI I2C 2xQuad-SPI SAI+Audio PLL* CAN Camera Interface 2×12-bit DAC* SDIO FSMC 4/8 Sigma Delta Interfaces* 1/3 12-bit ADC (5Msps) with 16-bit Over-sampling USB 2.0 OTG TFT Display Interface* MIPI-DSI* | 1.71V to 3.6V | 2xWatchdog |
STM32L5 | Cortex M33@110MHz (TrustZone+DSP+FPU) | 256kB | 256kB to 512kB | USART UART SPI I2C Octo-SPI FMC* SAI+Audio PLL* CAN-FD 2x 4ch Sigma Delta Interfaces* 2×12-bit DAC* 2×12-bit ADC (5 Msps) with 16-bit Over-sampling USB 2.0 DEV USB 2.0 HS USB-C Power Delivery | 1.71V to 3.6V | 16 and 32-bit Timers ART Accelerator Hardware Accelerated SHA Random Number Generator Temperature Sensor Vbat Battery Voltage Mode Unique ID Capacitive Touch Sensing 2xOp Amps 2xComparators Hardware Crypto AES, PKA, OTFDEC 128/256-bit* |
STM32U5 | Cortex M33@160MHz (TrustZone+DSP+FPU) | 274kB/786kB/2514kB Dual bank flash* | 128kB to 4096kB | SDIO 1/2 Octo-SPI* Hexadeca-SPI* FSMC* HSPI* USB 2.0 FS* USB 2.0 HS* USB-C Power Delivery* TFT-LCI and DSI Interfaces* 2×12-bit DAC* 1/2 14-bit ADC (2 Msps)* 1×12-bit ADC (2Msps) USART UART LPUART SPI I2C CAN-FD ADF* Camera* MDF* SAI* SD/MMC* | 1.71V to 3.6V | 16 and 32-bit Timers 2xAdvanced Motor Control Timers 4xUltra Low Power Timers Neo-Chrom GPU* Chrom-ART Graphic Accelerator* Hardware Crypto AES 128/256, PKA, OTFDEC 128/256-bit* 2xWatchdog RTC 2xOp Amps 2xComparators Hardware Accelerated SHA and MD5 Random Number Generator Capacitive Touch Sensing LPDMA Temperature Sensor Unique ID |
Series: | CPU (Core/Cores) | RAM (*-not all chips/versions) | Flash / EEPROM | Interfaces (*-not all chips/versions) | Voltage (*-not all chips/versions) | Wireless communication (*-not all chips/versions) | Other features (*-not all chips/versions) |
---|---|---|---|---|---|---|---|
STM32WL | Cortex M4@48MHz Cortex M0+@48MHz* | Up to 64kB | Up to 256kB | USART LPUART SPI I2C I2S 1×12-bit DAC 1×12-bit ADC | 1.8V to 3.6V LDO with DC-to-DC converter built-in | Multi-Modulation Sub-GHz Radio 150MHz-960MHz 2xProgrammable Power Outputs LoRa* (G)FSK (G)MSK BPSK | 16 and 32-bit Timers ART Accelerator Hardware Crypto AES 128/256, PKA Random Number Generator PCROP/WRP Temperature Sensor Unique ID DMA 2xUltra Low Power Comparators RTC Low Power Timer |
STM32WB0 | |||||||
STM32WB | |||||||
STM32WBA |
STM provides developers with popular development boards virtually for any family of MCUs. There are also available 3rd party development boards, mostly from the Chinese manufacturers.
There are three types of development boards available: