This is an old revision of the document!


STM32 General Overview

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.

Hardware

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:

  • High-performance series with Cortex M3 up to Cortex M7.
  • Mainstream series with Cortex M0 to Cortex M7.
  • Ultra-low power series with Cortex M0+, via Cortex M4, up to Cortex M33.
  • Wireless series, with Cortex M4, Cortex M33 and radio coprocessor Cortex M0+.
  • Industrial grade MP1 microprocessor series, with a mixture of Cortex A7 and Cortex M4 cores (some chips use only A7 core).
The MP1 series is a raw microprocessor that requires external RAM, Flash, and Input-Output; it is also currently extended with 64-bit versions. It works with Linux and Android and can be equipped with Neural Processing Units (NPU) and 3D graphics processing units (GPU). As they are RAW microprocessors, they are not considered in the scope of this book to be directly IoT applications, eventually in a scenario of the advanced Fog class devices.
Beside STM32 series there is also a SPC5 series, designated for automotive industry. Those MCUs are Power PC architecture-based.

Processor

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.

The majority of the MCUs are marked as F family. This series is currently replaced with a next-generation G family of chips.

Memory

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.

Networking

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.:

  • STM32 WL series [2] introducing LoRaWAN, Sigfox, W-MBUS, mioty, and virtually other protocols compatible with (G)FSK, (G)MSK, and BPSK modulations in a single chip,
  • STM32 WB0 series [3] designed for energy-efficient applications and Bluetooth 5.3 only,
  • STM32 WB series [4] with Zigbee, Thread (OpenThread), Matter and Bluetooth 5.4 and BLE, Zephyr and Cordio stacks,
  • STM32 WBA series [5] with Bluetooth 5.3.

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.

Peripherals

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:

  • GPIO,
  • timers (including hardware-based pulse generation such as PWM and watchdog timers),
  • embedded system protocol interfaces: UART (USART), SPI (even up to dual QSPI), I2C, CAN
  • ADC and DAC converters,
  • USB, Ethernet, SDIO, camera (CSI), display (DSI),
  • RTC interface,
  • DMA,
  • interrupt controller,
  • security and cryptography functions modules.

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.

Figure 1: STM32G4 clock configuration capabilities

Video subsystem

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.

Hardware summary

A detailed hardware summary is present in the following subchapters:

the tables ##REF:stm32hwhp##, ##REF:stm32hwms##, 1 and 2.

[pczekalski]Add series hw specification

Table 1: STM32 Ultra Low Power series
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
Table 2: STM32 Wireless series
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:

  • Nucleo series that share pinout with Arduino, enabling an easy use of Arduino shields. They provide developers with a built-in ST-link hardware debugger.
  • Discovery kits, bigger in size and usually rich in connectors, frequently equipped with external sensors such as MEMS (gyro, accelerometer), microphone, LEDs and so on. They provide developers with a built-in ST-link hardware debugger.
  • Evaluation boards are a more advanced version of the Discovery Kits, equipped with a display, external memory, etc. Their purpose is to demonstrate all capabilities of the particular MCU.
en/iot-open/hardware2/stm32.1698513464.txt.gz · Last modified: 2023/10/28 17:17 by pczekalski
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0