STM32
STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M33F, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM, flash memory, debugging interface, and various peripherals.
Overview
The STM32 is a family of microcontroller ICs based on the 32-bit RISC ARM Cortex-M33F, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, and Cortex-M0 cores. STMicroelectronics licenses the ARM Processor IP from ARM Holdings. The ARM core designs have numerous configurable options, and ST chooses the individual configuration to use for each design. ST attaches their own peripherals to the core before converting the design into a silicon die. The following tables summarize the STM32 microcontroller families.History
The STM32 is the third ARM family by STMicroelectronics. It follows their earlier STR9 family based on the ARM9E core, and STR7 family based on the ARM7TDMI core. The following is the history of how the STM32 family has evolved.- In October 2006, STMicroelectronics announced that it licensed the ARM Cortex-M3 core.
- In June 2007, ST announced the STM32 F1-series based on the ARM Cortex-M3.
- In November 2007, ST announced the low-cost "STM32-PerformanceStick" development kit in partner with .
- In October 2009, ST announced that new ARM chips would be built using the 90 nm process.
- In April 2010, ST announced the STM32 L1-series chips.
- In September 2010, ST announced the STM32VLDISCOVERY board.
- In November 2010, ST announced the STM32 F2-series chips based on the ARM Cortex-M3 core, and future development of chips based on the ARM Cortex-M4 and ARM Cortex-M3 cores.
- In February 2011, ST announced the STM32L-DISCOVERY board.
- In March 2011, ST announced the expansion of their STM32 L1-series chips with flash densities of 256 KB and 384 KB.
- In September 2011, ST announced the STM32 F4-series chips based on the ARM Cortex-M4F core and STM32F4DISCOVERY board.
- In February 2012, ST announced the STM32 F0-series chips based on the ARM Cortex-M0 core.
- In May 2012, ST announced the STM32F0DISCOVERY board.
- In June 2012, ST announced the STM32 F3-series chips based on the ARM Cortex-M4F core.
- In September 2012, ST announced full-production of STM32 F3-series chips and STM32F3DISCOVERY board. The STM32 F050-series will also be available in a TSSOP20 package.
- In January 2013, ST announced full Java support for STM32 F2 and F4-series chips.
- In February 2013, ST announced STM32 Embedded Coder support for MATLAB and Simulink.
- In February 2013, ST announced the STM32 F4x9-series chips.
- In April 2013, ST announced the STM32 F401-series chips.
- In July 2013, ST announced the STM32 F030-series chips. The STM32 F030-series will also be available in a TSSOP20 package.
- In September 2013, ST announced the STM32F401C-DISCO and STM32F429I-DISCO boards.
- In October 2013, ST announced the STM32F0308DISCOVERY board.
- In December 2013, ST announced that it is joining the mbed project.
- In January 2014, ST announced the STM32 F0x2-series chips, STM32F072B-DISCO board, and STM32072B-EVAL board.
- In February 2014, ST announced the STM32 L0-series chips based on the ARM Cortex-M0+ core.
- In February 2014, ST announced multiple STM32 Nucleo boards with Arduino headers and mbed IDE.
- In February 2014, ST announced the release of free STM32Cube software tool with graphical configurator and C code generator.
- In April 2014, ST announced the STM32F30x chips are now available in full production. A new NUCLEO-F302R8 board was also announced.
- In September 2014, ST announced the STM32 F7 series, the first chips based on the Cortex-M7F core.
- In October 2016, ST announced the STM32H7 series based on the ARM Cortex-M7F core. The device runs at 400 MHz and is produced using 40 nm technology.
- In November 2017, ST announced the STM32L4+ series, an upgrade to the STM32L4 series Cortex-M4 MCUs.
- In October 2018, ST announced the STM32L5 series, ultra-low-power MCUs based on the new ARM Cortex-M33 core with a variety of security features, such as TrustZone, Secure Boot, active IO tamper detection, Secure Firmware Install loader, certified cryptolib etc.
Series
STM32 H7
The STM32 H7-series is a group of high performance STM32 microcontrollers based on the ARM Cortex-M7F core with double-precision floating point unit and optional second Cortex-M4F core with single-precision floating point. Cortex-M7F core can reach working frequency up to 480 MHz, while Cortex-M4F - up to 240 MHz. Each of these cores can work independently or as master/slave core.The STM32H7 Series is the first series of STM32 microcontrollers in 40 nm process technology and the first series of ARM Cortex-M7-based microcontrollers
able to run up to 480 MHz, allowing a performance boost versus previous series of Cortex-M microcontrollers, reaching new performance records of 1027 DMIPS and 2400 CoreMark.
STM32 F7
The STM32 F7-series is a group of STM32 microcontrollers based on the ARM Cortex-M7F core. Many of the F7 series are pin-to-pin compatible with the STM32 F4-series.Core:
- ARM Cortex-M7F core at a maximum clock rate of 216 MHz.
STM32 F4
- Core:
- * ARM Cortex-M4F core at a maximum clock rate of 84 / 100 / 168 / 180 MHz.
- Memory:
- * Static RAM consists of up to 192 KB general-purpose, 64 KB core-coupled memory, 4 KB battery-backed, 80 bytes battery-backed with tamper-detection erase.
- * Flash consists of 512 / 1024 / 2048 KB general-purpose, 30 KB system boot, 512 bytes one-time programmable, 16 option bytes.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * Common peripherals included in all IC packages are USB 2.0 OTG HS and FS, two CAN 2.0B, one SPI + two SPI or full-duplex I²S, three I²C, four USART, two UART, SDIO for SD/MMC cards, twelve 16-bit timers, two 32-bit timers, two watchdog timers, temperature sensor, 16 or 24 channels into three ADCs, two DACs, 51 to 140 GPIOs, sixteen DMA, improved real-time clock, cyclic redundancy check engine, random number generator engine. Larger IC packages add 8/16-bit external memory bus capabilities.
- * The STM32F4x7 models add ethernet MAC and camera interface.
- * The STM32F41x/43x models add a cryptographic processor for DES / TDES / AES, and a hash processor for SHA-1 and MD5.
- * The STM32F4x9 models add a LCD-TFT controller.
- Oscillators consists of internal, optional external.
- IC packages: WLCSP64, LQFP64, LQFP100, LQFP144, LQFP176, UFBGA176. STM32F429/439 also offers LQFP208 and UFBGA216.
- Operating voltage range is 1.8 to 3.6 volt.
STM32 F3
- Core:
- * ARM Cortex-M4F core at a maximum clock rate of 72 MHz.
- Memory:
- * Static RAM consists of 16 / 24 / 32 / 40 KB general purpose with hardware parity check, 0 / 8 KB core coupled memory with hardware parity check, 64 / 128 bytes battery-backed with tamper-detection erase.
- * Flash consists of 64 / 128 / 256 KB general purpose, 8 KB system boot, and option bytes.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * Each F3-series includes various peripherals that vary from line to line.
- Oscillators consists of internal, optional external.
- IC packages: LQFP48, LQFP64, LQFP100, UFBGA100.
- Operating voltage range is 2.0 to 3.6 volt.
The four ADCs can be simultaneously sampled making a wide range of precision analog control equipment possible. It is also possible to use a hardware scheduler for the multiplexer array, allowing good timing accuracy when sampling more than 4 channels, independent of the main processor thread. The sampling and multiplexing trigger can be controlled from a variety of sources including timers and built-in comparators, allowing for irregular sampling intervals where needed.
The op-amps inputs feature 2-to-1 analog multiplexer, allowing for a total of eight analog channels to be pre-processed using the op-amp; all the op-amp outputs can be internally connected to ADCs.
STM32 F2
The STM32 F2-series of STM32 microcontrollers based on the ARM Cortex-M3 core. It is the most recent and fastest Cortex-M3 series. The F2 is pin-to-pin compatible with the STM32 F4-series. The summary for this series is:- Core:
- * ARM Cortex-M3 core at a maximum clock rate of 120 MHz.
- Memory:
- * Static RAM consists of 64 / 96 / 128 KB general purpose, 4 KB battery-backed, 80 bytes battery-backed with tamper-detection erase.
- * Flash consists of 128 / 256 / 512 / 768 / 1024 KB general purpose, 30 KB system boot, 512 bytes one-time programmable, 16 option bytes.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * Common peripherals included in all IC packages are USB 2.0 OTG HS, two CAN 2.0B, one SPI + two SPI or I²S, three I²C, four USART, two UART, SDIO/MMC, twelve 16-bit timers, two 32-bit timers, two watchdog timers, temperature sensor, 16 or 24 channels into three ADCs, two DACs, 51 to 140 GPIOs, sixteen DMA, real-time clock, cyclic redundancy check engine, random number generator engine. Larger IC packages add 8/16-bit external memory bus capabilities.
- * The STM32F2x7 models add Ethernet MAC, camera interface, USB 2.0 OTG FS.
- * The STM32F21x models add a cryptographic processor for DES / TDES / AES, and a hash processor for SHA-1 and MD5.
- Oscillators consists of internal, optional external.
- IC packages: WLCSP64, LQFP64, LQFP100, LQFP144, LQFP176, UFBGA176.
- Operating voltage range is 1.8 to 3.6 volt.
STM32 F1
- Core:
- * ARM Cortex-M3 core at a maximum clock rate of 24 / 36 / 48 / 72 MHz.
- Memory:
- * Static RAM consists of 4 / 6 / 8 / 10 / 16 / 20 / 24 / 32 / 48 / 64 / 80 / 96 KB.
- * Flash consists of 16 / 32 / 64 / 128 / 256 / 384 / 512 / 768 / 1024 KB.
- Peripherals:
- * Each F1-series includes various peripherals that vary from line to line.
- IC packages: VFQFPN36, VFQFPN48, LQFP48, WLCSP64, TFBGA64, LQFP64, LQFP100, LFBGA100, LQFP144, LFBGA144.
STM32 F0
- Core:
- * ARM Cortex-M0 core at a maximum clock rate of 48 MHz.
- * Cortex-M0 options include the SysTick Timer.
- Memory:
- * Static RAM consists of 4 / 6 / 8 / 16 / 32 KB general purpose with hardware parity checking.
- * Flash consists of 16 / 32 / 64 / 128 / 256 KB general purpose.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * Each F0-series includes various peripherals that vary from line to line.
- Oscillators consists of internal, optional external.
- IC packages: TSSOP20, UFQFPN32, LQFP/UFQFN48, LQFP64, LQFP/UFBGA100.
- Operating voltage range is 2.0 to 3.6 volt with the possibility to go down to 1.65 V.
STM32 G4
- Core:
- * ARM Cortex-M4F core at a maximum clock rate of 170 MHz with FPU and DSP instructions
- Mathematical accelerators:
- * CORDIC
- * FMAC
- Memory:
- * Flash memory with error-correcting code and sizes of 128 to 512 KB.
- * Static RAM sizes of 32 to 128 KB with hardware parity checking and CCM-SRAM routine booster, 32x 32-bit battery-backed registers with tamper-detection erase.
- Rich advanced analog peripherals
- ADC with hardware oversampling up to 4 Msps
- High-resolution timer version 2
- USB Type-C interface with Power Delivery including physical layer
- Securable memory area
- AES hardware encryption
STM32 G0
- Core:
- * ARM Cortex-M0+ core at a maximum clock rate of 64 MHz.
- * Debug interface is SWD with breakpoints and watchpoints. JTAG debugging isn't supported.
- Memory:
- * Static RAM sizes of 8 to 128 KB general purpose with hardware parity checking, 5x 32-bit battery-backed registers with tamper-detection erase.
- * Flash sizes of 16 to 512 KB.
STM32 L5
- ARM Cortex-M33 32-bit core
- 110 MHz max CPU frequency
STM32 L4+
Main features:
- ARM 32-bit Cortex-M4 core
- 120 MHz max CPU frequency
- VDD from 1.71 V to 3.6 V
- Ultra low power consumption: down to 41 μA/MHz, 20 nA power consumption in power-down mode.
- Up to 2048 KB Flash, up to 640 KB SRAM
- Rich and advanced peripherals, including TFT-LCD controller, Chrom-ART Accelerator, Camera interface etc.
STM32 L4
- ARM 32-bit Cortex-M4 core
- 80 MHz max CPU frequency
- VDD from 1.65 V to 3.6 V
- 256 KB Flash, 64 KB SRAM
- General purpose timers, SPI/I2S, I2C, USART, 12-bit ADC with 10 channels, GPIO with external interrupt capability, RTC
- Random number generator.
STM32 L1
- Core:
- * ARM Cortex-M3 core at a maximum clock rate of 32 MHz.
- Memory:
- * Static RAM consists of 10 / 16 / 32 / 48 / 80 KB general purpose, 80 bytes with tamper-detection erase.
- * Flash consists of 32 / 64 / 128 / 256 / 384 / 512 KB general purpose with ECC, 4 / 8 KB system boot, 32 option bytes, EEPROM consists of 4 / 8 / 12 / 16 KB data storage with ECC.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * Common peripherals included in all IC packages are USB 2.0 FS, two SPI, two I²C, three USART, eight 16-bit timers, two watchdog timers, temperature sensor, 16 to 24 channels into one ADC, two DACs, 37 to 83 GPIOs, seven DMA, real-time clock, cyclic redundancy check engine. The STM32FL152 line adds a LCD controller.
- Oscillators consists of internal, optional external.
- IC packages: UFQFPN48, LQFP48, LQFP64, TFBGA64, LQFP100, UFBGA100.
- Operating voltage range is 1.65 to 3.6 volt.
STM32 L0
- Core:
- * ARM Cortex-M0+ core at a maximum clock rate of 32 MHz.
- * Debug interface is SWD with breakpoints and watchpoints. JTAG debugging isn't supported.
- Memory:
- * Static RAM sizes of 8 KB general purpose with hardware parity checking, 20 bytes battery-backed with tamper-detection erase.
- * Flash sizes of 32 or 64 KB general purpose.
- * EEPROM sizes of 2 KB.
- * ROM which contains a boot loader with optional reprogramming of the flash from USART1, USART2, SPI1, SPI2.
- * Each chip has a factory-programmed 96-bit unique device identifier number.
- Peripherals:
- * two USART, one low-power UART, two I²C, two SPI or one I²S, one full-speed USB.
- * one 12-bit ADC with multiplexer, one 12-bit DAC, two analog comparators, temperature sensor.
- * timers, low-power timers, watchdog timers, 5 V-tolerant GPIOs, real-time clock, DMA controller, CRC engine.
- * capacitive touch sense and 32-bit random number generator, LCD controller, 128-bit AES engine.
- Oscillators consists of optional external 1 to 24 MHz crystal or oscillator, optional external 32.768 kHz crystal or ceramic resonator, multiple internal oscillators, and one PLL.
- IC packages are LQFP48, LQFP64, TFBGA64.
- Operating voltage range is 1.8 to 3.6 volt, including a programmable brownout detector.
Development boards
Arduino boards
The following are Arduino header-compatible boards with STM32 microcontrollers. The Nucleo boards also have Arduino headers.- board by Leaflabs has a STM32F103RB microcontroller. A C/C++ library called is available to make it easier to migrate from Arduino.
- board by Olimex has a STM32F103RBT6 microcontroller and similar to the Maple board.
- Netduino with support for.NET Micro Framework
Nucleo boards
; Nucleo-32 boards
- This family has 32-pin STM32 ICs and Arduino Nano male pin headers.
- Low power ICs are L011, L031, L412, L432. Mainstream ICs are F031, F042, F301, F303, G031, G431. High performance ICs are n/a.
- board for MCU with 48 MHz Cortex-M0 core, 32 KB flash, 4 KB SRAM.
- board for MCU with 48 MHz Cortex-M0 core, 32 KB flash, 6 KB SRAM.
- board for MCU with 72 MHz Cortex-M4F core, 64 KB flash, 16 KB SRAM.
- board for MCU with 72 MHz Cortex-M4F core, 64 KB flash, 16 KB SRAM.
- board for MCU. Announced in Nucleo-32 datasheet.
- board for MCU with 170 MHz Cortex-M4F core, 128 KB flash, 16 KB SRAM, 6 KB SRAM, 10 KB CCM SRAM, STLINK-V3E.
- board for MCU with 32 MHz Cortex-M0+ core, 16 KB flash, 2 KB SRAM, 0.5 KB EEPROM.
- board for MCU with 32 MHz Cortex-M0+ core, 32 KB flash, 8 KB SRAM, 1 KB EEPROM.
- board for MCU with 80 MHz Cortex-M4F core, 128 KB flash, 32 KB SRAM, 8 KB SRAM, external quad-SPI memory interface.
- board for MCU with 80 MHz Cortex-M4F core, 256 KB flash, 48 KB SRAM, 16 KB SRAM, external quad-SPI memory interface.
- This family has 64-pin STM32 ICs, Arduino Uno Rev3 female headers, and ST Morpho male pin headers.
- Low power ICs are L053, L073, L152, L433, L452, L452, L476. Mainstream ICs are F030, F070, F072, F091, F103, F302, F303, F334. High performance ICs are F401, F410, F411, F446.
- board for MCU with 48 MHz Cortex-M0 core, 64 KB flash, 8 KB SRAM.
- board for MCU with 48 MHz Cortex-M0 core, 128 KB flash, 16 KB SRAM.
- board for MCU with 48 MHz Cortex-M0 core, 128 KB flash, 16 KB SRAM.
- board for MCU with 48 MHz Cortex-M0 core, 256 KB flash, 32 KB SRAM.
- board for MCU with 72 MHz Cortex-M3 core, 128 KB flash, 20 KB SRAM, external static memory interface.
- board for MCU with 72 MHz Cortex-M4F core, 64 KB flash, 16 KB SRAM.
- board for MCU with 72 MHz Cortex-M4F core, 512 KB flash, 32 KB SRAM, 48 KB SRAM, external static memory interface.
- board for MCU with 72 MHz Cortex-M4F core, 64 KB flash, 16 KB SRAM.
- board for MCU with 84 MHz Cortex-M4F core, 512 KB flash, 96 KB SRAM.
- board for MCU with 100 MHz Cortex-M4F core, 128 KB flash, 32 KB SRAM.
- board for MCU with 100 MHz Cortex-M4F core, 512 KB flash, 128 KB SRAM.
- board for MCU with 180 MHz Cortex-M4F core, 512 KB flash, 128 KB SRAM, external quad-SPI memory interface, external flexible memory interface.
- board for MCU with 32 MHz Cortex-M0+ core, 64 KB flash, 8 KB SRAM, 2 KB EEPROM.
- board for MCU with 32 MHz Cortex-M0+ core, 192 KB flash, 20 KB SRAM, 6 KB EEPROM.
- board for MCU with 32 MHz Cortex-M3 core, 512 KB flash, 80 KB SRAM, 16 KB EEPROM.
- board for MCU with 80 MHz Cortex-M4F core, 256 KB flash, 48 KB SRAM, 16 KB SRAM, external quad-SPI memory interface, SMPS power.
- board for MCU with 80 MHz Cortex-M4F core, 512 KB flash, 128 KB SRAM, 32 KB SRAM, external quad-SPI memory interface, SMPS power.
- board for MCU with 80 MHz Cortex-M4F core, 512 KB flash, 128 KB SRAM, 32 KB SRAM, external quad-SPI memory interface.
- board for MCU with 80 MHz Cortex-M4F core, 1024 KB flash, 96 KB SRAM, 32 KB SRAM, external quad-SPI memory interface, external static memory interface.
- board for MCU with 64 MHz Cortex-M0+ core, 128 KB flash, 32 KB SRAM.
- This family has 144-pin STM32 ICs, Arduino Uno Rev3 female headers, ST Zio female headers, ST Morpho male pin headers, second Micro-AB USB connector, and RJ45 Ethernet connector.
- Low power ICs are L496, L496-P, L4A6, L4R5, L4R5-P. Mainstream IC is F303. High performance ICs are F207, F412, F413, F429, F439, F446, F722, F746, F756, F767, H743.
- board for MCU with 120 MHz Cortex-M3 core, 1024 KB flash, 128 KB SRAM, 4 KB battery-back SRAM, external static memory interface, ethernet.
- board for MCU with 72 MHz Cortex-M4F core, 512 KB flash, 32 KB SRAM, 48 KB SRAM, external static memory interface.
- board for MCU with 100 MHz Cortex-M4F core, 1024 KB flash, 256 KB SRAM, external quad-SPI memory interface, external static memory interface.
- board for MCU with 180 MHz Cortex-M4F core, 2048 KB flash, 256 KB SRAM, 4 KB battery-back SRAM, external flexible memory interface, ethernet.
- board for MCU with 180 MHz Cortex-M4F core, 2048 KB flash, 256 KB SRAM, 4 KB battery-back SRAM, external flexible memory interface, ethernet, cryptographic acceleration.
- board for MCU with 180 MHz Cortex-M4F core, 512 KB flash, 128 KB SRAM, 4 KB battery-back SRAM, external quad-SPI memory interface, external flexible memory interface.
- board for MCU with 216 MHz Cortex-M7F core, 1024 KB flash, 336 KB SRAM, 4 KB battery-back SRAM, 1 KB OTP, external quad-SPI memory interface, external flexible memory interface, ethernet.
- board for MCU with 216 MHz Cortex-M7F-DP core, 2048 KB flash, 528 KB SRAM, 4 KB battery-back SRAM, external quad-SPI memory interface, external flexible memory interface, ethernet.
- Note: The unofficial suffix "-DP" means the ARM core includes double-precision floating point unit, where as all other chips are single-precision only.
Discovery boards
Each board includes an on-board ST-LINK for programming and debugging via a Mini-B USB connector. The power for each board is provided by a choice of the 5 V via the USB cable, or an external 5 V power supply. They can be used as output power supplies of 3 V or 5 V. All Discovery boards also include a voltage regulator, reset button, user button, multiple LEDs, SWD header on top of each board, and rows of header pins on the bottom.
An open-source project was created to allow Linux to communicate with the ST-LINK debugger.
ChibiOS/RT, a free RTOS, has been ported to run on some of the Discovery boards.
;STM32L476GDISCOVERY
- A for microcontroller with 80 MHz ARM Cortex-M4F core, 1024 KB flash, 128 KB RAM in LQFP100 package
- A for microcontroller with 180 MHz ARM Cortex-M4F core, 2048 KB flash, 256 KB RAM, 4 KB battery-backed RAM in LQFP144 package.
- This board includes an integrated debugger via Mini-B USB connector, 8 MB SDRAM, 2.4-inch 320x200 TFT LCD color display, touchscreen controller, gyroscope, 2 user LEDs, user button, reset button, Full-Speed USB OTG to second Micro-AB USB connector, and two 32x2 male pin headers.
- A for microcontroller with 168 MHz ARM Cortex-M4F core, 1024 KB flash, 192 KB RAM, 4 KB battery-backed RAM in LQFP100 package.
- This board includes an integrated debugger via Mini-B USB connector, accelerometer, microphone, audio codec, 3.5 mm audio jack, 4 user LEDs, user button, reset button, Full-Speed USB OTG to second Micro-AB USB connector, and two 25x2 male pin headers.
- A separate baseboard is available.
- A for microcontroller with 84 MHz ARM Cortex-M4F core, 256 KB flash, 64 KB RAM in LQFP100 package.
- This board includes an integrated debugger via Mini-B USB connector, accelerometer/compass, gyroscope, microphone, audio codec, 3.5 mm audio jack, 4 user LEDs, user button, reset button, Full-Speed USB OTG to second Micro-AB USB connector, and two 25x2 male pin headers.
- A for microcontroller with 72 MHz ARM Cortex-M4F core, 256 KB flash, 48 KB RAM in LQFP100 package.
- This board includes an integrated debugger via Mini-B USB connector, accelerometer/compass, gyroscope, 8 user LEDs, user button, reset button, Full-Speed USB to second Mini-B USB connector, and two 25x2 male pin headers.
- A for microcontroller with 24 MHz ARM Cortex-M3 core, 128 KB flash, 8 KB RAM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
- A for microcontroller with 32 MHz ARM Cortex-M3 core, 128 KB flash, 16 KB RAM, 4 KB EEPROM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 24-segment LCD, touch sensors, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
- This board is currently End-Of-Life and replaced by the 32L152CDISCOVERY board.
- A for microcontroller with 32 MHz ARM Cortex-M3 core, 256 KB flash, 32 KB RAM, 8 KB EEPROM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 24-segment LCD, touch sensors, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
- A for microcontroller with 32 MHz ARM Cortex-M3 core, 256 KB flash, 16 KB RAM, 4 KB EEPROM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 33x1 male pin headers.
- A for microcontroller with 48 MHz ARM Cortex-M0 core, 128 KB flash, 16 KB RAM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, gyroscope, 4 user LEDs, user button, reset button, linear touch keys, Full-Speed USB to second Mini-B USB connector, and two 33x1 male pin headers.
- A for microcontroller with 48 MHz ARM Cortex-M0 core, 64 KB flash, 8 KB RAM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 33x1 male pin headers.
- A prototyping perfboard with 0.1-inch grid of holes is included.
- A for microcontroller with 48 MHz ARM Cortex-M0 core, 64 KB flash, 8 KB RAM in LQFP64 package.
- This board includes an integrated debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 33x1 male pin headers.
- A prototyping perfboard with 0.1-inch grid of holes is included.
Evaluation boards
;STM32W-RFCKIT:
- An RF for STM32 W-series.
- It contains two boards, each with a STM32W108 SoC microcontroller in VFQFPN40 and VFQFPN48 packages.
- The evaluation board has a built-in 2.4 GHz IEEE 802.15.4 transceiver and Lower MAC. The SoC contains 128-Kbyte flash and 8-Kbyte RAM memory. Flash memory is upgradable too via USB. It has an ARM Serial Wire Debug interface and is designed to be powered by USB or with 2 AAA batteries. There are two user-defined LEDs and five push buttons to create easy-to-use remote functions.
A ready-to-use Java development kits for its STM32 microcontrollers. The STM3220G-JAVA Starter Kit combines an evaluation version of IS2T's MicroEJ® Software Development Kit and the STM32F2 series microcontroller evaluation board providing everything engineers need to start their projects.
MicroEJ provides extended features to create, simulate, test and deploy Java applications in embedded systems. Support for Graphical User Interface development includes a widget library, design tools including storyboarding, and tools for customizing fonts. STM32 microcontrollers that embed Java have a Part Number that ends with J like .
Partner boards
The following evaluation kits are sold by partners of STMicroelectronics and listed on the ST website.;STM32-PerformanceStick:
- An for STM32 F1-series.
- It contains a microcontroller at 72 MHz with 128 KB flash and 20 KB RAM in LQFP64 package.
- This board also includes in-circuit debugger via USB, 3 V battery, LEDs, edge card connector.
- The price is approximately US$65.
- A for a variety of STM32 variants, which allows users to create their applications using an application programming interface to implement device peripherals and a range of evaluation features on the EvoPrimer base including TFT color touchscreen, graphical user interface, joy stick, codec-based audio, SD card, IrDA and standard peripherals such as USB, USART, SPI, I2C, CAN, etc.
- EvoPrimer target boards are available for several variants including STM32F103, STM32F107, STM32L152 and STM32F407.
- The EvoPrimer base includes a device programming and application debugging interface and comes with a Raisonance software tool set for coding, compiling and debugging the user's application.
- The CircleOS utility allows the user to code their applications relying on an application programming interface, making it possible to program the application without having to master the configuration of device peripherals.
- The price is US$100 to $120.
Development tools
Cortex-M
STM32
;Design utilities- , by STMicroelectronics, a freeware package for Windows, Mac OS X and Linux that is a graphical software configuration tool that allows generating C initialization code using graphical wizards. The package was first release in February 2014 with graphical peripheral allocation support for every STM32 chip. As of January 2015, the tool supports all STM32 series. It can generate source code usable directly on the most current ARM Cortex-M IDEs, including the free IDE. The source code generated by STM32CubeMX is licensed under the 3-clause BSD License, making it suitable for commercial as well as open-source applications. STM32CubeMX is likely an evolution of the former tool, because the saved "IOC" configuration file from STM32CubeMX shows the word "MicroXplorer" in it. A 32-bit Java Runtime Environment must be installed prior to running STM32CubeMX.
- Simulink, by MathWorks provides model-based design solutions to design embedded systems. The and the provide parameter tuning, signal monitoring and one-click deployment of Simulink algorithms to STM32 boards with access to peripherals like ADC, PWM, GPIOs, I²C, SPI, SCI, TCP/IP, UDP, etc.
- , by STMicroelectronics, a freeware package for Windows to help debug and diagnose STM32 applications while they are running by reading and displaying their variables in real-time. STM-STUDIO connects to any STM32 using any ST-LINK type of device via JTAG or SWD debug bus protocols. It can log captured data to a file and replay later. It parses debugging information from the ELF application executable file. A 32-bit Java Runtime Environment must be installed prior to running STM-STUDIO. The STM32 ST-LINK Utility must be installed prior to running STM-STUDIO.
- , by , a freeware IDE running on Windows, Linux and Mac OS X to develop, debug and diagnose STM32 applications. System Workbench for STM32 can be used to develop on any STM32 using any ST-LINK/V2 type of device via JTAG or SWD debug bus protocols. It is based on Eclipse and the GNU GCC toolchain and supports out-of-the-box all ST-provided evaluation boards. A 32-bit Java Runtime Environment will automatically be installed if needed as well as the STM32 ST-LINK driver.
- , by Sysprogs, a debug plugin for Microsoft Visual Studio that allows developing and debugging STM32 applications.
- , by Comsytec, a debug plugin for that includes compiler, debugger, project wizard for STM32.
- , by STMicroelectronics, a freeware package for Windows to perform in-system programming of STM32 microcontrollers using the USB-based interface device via JTAG or SWD debug bus protocols. This software can upgrade the firmware in the ST-LINK device, which includes the embedded ST-LINK on all of the STM32 DISCOVERY boards. During installation of this utility, a USB driver is installed to provide a communication interface with the ST-LINK device, which in turn also allows various IDEs to use the ST-LINK for debugging.
- , by STMicroelectronics, a freeware package for Windows to perform in-system programming of the flash in STM32 microcontrollers using a USB-based ST-LINK device.
- , by STMicroelectronics, a freeware package for Windows to load DFU programs into the flash of USB-based STM32 microcontrollers.
- , an open source multi-platform ST-LINK/V2 client, based on QT.
- , an opensource ST-LINK/V2 client for linux
- , an opensource ST-LINK/V2 programmer and debug tool with simple command-line interface for Linux, Mac OS X and Windows written in Python 3.
All STM32 microcontrollers have a ROM'ed bootloader that supports loading a binary image into its flash memory using one or more peripherals. Since all STM32 bootloaders support loading from the USART peripheral and most boards connect the USART to RS-232 or a USB-to-UART adapter IC, thus it's a universal method to program the STM32 microcontroller. This method requires the target to have a way to enable/disable booting from the ROM'ed bootloader.
- , an open source program for Windows and Linux to perform in-system programming of the STM32 flash via its USART.
- , an open source multi-platform Python script to perform in-system programming of the STM32 flash via its USART. Python and must be installed prior to running stm32loader.
- Standard Eclipse Java IDE STM32Java
- Standard peripheral library.
- embOS
- FreeRTOS
- USB device library.
- DSP library.
- Encryption library.
- Motor control library.
- MP3 / WMA / Speex codecs and audio engine.
- Self-test routines.
Documentation
A typical top-down documentation tree is: manufacturer website, manufacturer marketing slides, manufacturer datasheet for the exact physical chip, manufacturer detailed reference manual that describes common peripherals and aspects of a physical chip family, ARM core generic user guide, ARM core technical reference manual, ARM architecture reference manual that describes the instruction set.
;STM32 documentation tree :
- STM32 website.
- STM32 marketing slides.
- STM32 datasheet.
- STM32 reference manual.
- ARM core website.
- ARM core generic user guide.
- ARM core technical reference manual.
- ARM architecture reference manual.
Part number decoding
STM32F051R8STM32xxwwyz
- xx – Family
- ww – subtype: differs in equipment of peripherals and this depend on certain family
- y – Package pin count
- z – FLASH memory size
Code | Core | Max freq | Max FLASH | Max SRAM | Target |
F0 | CortexM0 | 48 | 256 | 32 | Mainstream |
F1 | CortexM3 | 72 | 1024 | 96 | Mainstream |
F2 | CortexM3 | 120 | 1024 | 128 | High performance |
F3 | CortexM4 | 72 | 512 | 80 | Mainstream |
F4 | CortexM4 | 180 | 2048 | 384 | High performance |
G0 | CortexM0+ | 64 | 128 | 36 | Mainstream |
G4 | CortexM4 | 170 | 512 | 128 | Mainstream |
F7 | CortexM7 | 216 | 2048 | 512 | High performance |
H7 | CortexM7 | 480 | 2048 | 1024 | High performance |
L0 | CortexM0+ | 32 | 192 | 20 | Ultra low power |
L1 | CortexM3 | 32 | 512 | 80 | Ultra low power |
L4 | CortexM4 | 80 | 1024 | 320 | Ultra low power |
L4+ | CortexM4 | 120 | 2048 | 640 | Ultra low power |
L5 | CortexM33 | 110 | 512 | 256 | Ultra low power |
Code | Number of pins |
A | 169 |
B | 208 |
C | 48 |
F | 20 |
G | 28 |
H | 40 |
I | 176 |
J | 8/72 |
K | 32 |
M | 81 |
N | 216 |
Q | 132 |
R | 64 |
T | 36 |
U | 63 |
V | 100 |
Z | 144 |
Code | FLASH size |
4 | 16 |
6 | 32 |
8 | 64 |
B | 128 |
Z | 192 |
C | 256 |
D | 384 |
E | 512 |
F | 768 |
G | 1024 |
H | 1536 |
I | 2048 |