Advanced architecture

ARM Cortex-M #

When it comes to more powerful microcontroller boards, a vast majority uses the ARM Cortex-M processor core family because they are low-cost and energy-efficient integrated circuits.

The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Though they are most often the main component of microcontroller chips, sometimes they are embedded inside other types of chips too. The Cortex-M family consists of Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55.

Quoted from wikipedia.

ARM company is only designing the processor core architecture so you will probably read something similar to:

The board is powered by Atmel’s SAMD21 MCU, which features a 32-bit ARM Cortex® M0+ core.

Quoted from Arduino Zero page.

which means that the Atmel manufacturer designed their SAMD21 MCU based on the ARM Cortex® M0+ core design.

Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, … #

The family variants M0, M0+, M1, … correspond to a given architecture and instruction set. For instance:

The Cortex-M0 / M0+ / M1 implement the ARMv6-M architecture, the Cortex-M3 implements the ARMv7-M architecture, the Cortex-M4 / Cortex-M7 implements the ARMv7E-M architecture, the Cortex-M23 / M33 / M35P implement the ARMv8-M architecture, and the Cortex-M55 implements the ARMv8.1-M architecture.

Quoted from wikipedia.

More details can be found on the wikipedia page.

ARM Cortex-M board examples #

Here are some boards using these families of ARM microcontrollers. There are plenty of them.

  • Arduino Zero and Adafruit Feather M0:

    • These boards are powered by Atmel’s SAMD21 MCU, which features a 32-bit ARM Cortex® M0+ core arduino-m0 feather-m0
  • Teensy boards

    • The Teensy 3.2 board is powered by NXP Semiconductors/Freescale MCU, which features a 32-bit ARM Cortex® M4 core teensy32
  • STM32 Nucleo 32

    • The board is powered by an STM32F303K8T6 MCU, which features a 32-bit ARM Cortex® M4F core stm32-nucleo
  • Raspberry Pico

    • The board is powered by RP2040, which features a 32-bit ARM Cortex® M0 core PICO-Image-2

ESP8286/ESP32 #

Another famous microcontroller branch is the ESP8286/ESP32 from Expressif. The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability. The ESP32 is the successor of the ESP8286 and “employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules”, quoted from wikipedia. They are therefore not following and using the ARM Cortex-M architecture but the Tensilica Xtensa LX6/7 architecture.

esp32-wroom

Many ESP8286/ESP32-based boards are available on the market and their embedded WiFi make them very easy to be connected to the Internet. Below are the Heltec WiFi LoRa 32 with a small embedded OLED screen and the more common Node-MCU based on ESP32-WROOM.

heltec_wroom

Look at the Advanced boards/Boards with WiFi section for an example on how to use the embedded WiFi features.

Enjoy!

2021 - Congduc Pham