Computing stuff tied to the physical world

STM32F1’s and all that jazz

ST Microelectronics makes a lot of different microcontroller chips:

Microcontrollers FM141

We’re only interested in the ARM Cortex chips here, i.e. the STM32’s:

  • the F0 series is Cortex M0
  • the F1 and F2 series are Cortex M3 (faster)
  • the F3 and F4 series are Cortex M4 (w/ floating point)
  • the F7 series is Cortex M7 (high end, just out)
  • the Lx series are low-power variants (but not as many features)

All of these are available in a variety of packages, and with different numbers of pins. It’s easy to get lost in this jungle, and the fact that they are called “STM32F<blah><blah>” isn’t very helpful, but STM has adopted some simple conventions across their entire range.

Let’s take STM32F103R8T6 as example:

  • STM32 is obvious: the manufacturer and the 32-bit ARM family
  • F1 (also “F1xx”): it’s an ARM Cortex M3 with hardware multiply and divide
  • 03 (or rather “F103”): a specific µC with a specific set of built-in peripherals
  • looking at the datasheet, we can also tell that this series runs at up to 72 MHz
  • R is the pin count: “T” is 36, “C” is 48, “R” is 64, “V” is “100”, etc
  • 8 is the memory size: “8” is 64 KB flash, “B” is 128 KB, “C” is 256 KB, etc
  • T is the package type: “T” is LQFP, “V” is “VFQFPN”, etc
  • 6 is the temperature range: “6” is -40 .. +85 °C

For software development, what matters most is the “F103” (architecture) and the “8” (memory size and some h/w trade-offs). The rest is just tedious and confusing, mostly.

We’re going to stick to “F103” for the time being. Which is a world in itself, by the way.

[Back to article index]