The STM32 Mainstream series is considered a versatile family of MCUs. It is a reasonable balance between power consumption, cost and application flexibility. It is worth mentioning that the Mainstream series is considered a long-shelf-life one, with support and availability of chips exceeding 10 years.
Mainstream series CPUs are based on ARM Cortex M0/M0+, M3 and M4 and RAM flash memory sizes are in a wide range, from 16kB for simple applications up to 1MB to handle even the most demanding tasks. However, there are no radio modules built in, so IoT applications require an external RF coprocessor/radio device.
A short review of the MCUs and their features is presented in table 1. Note each row in the table represents a family of devices, and a particular configuration depends on the exact MCU model. Thus, developers, when looking for specific features, should refer to the manufacturer's specifications and list of currently available devices [1].
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* |