ARM Cortex-M microcontrollers are 32-bit processor cores designed specifically for embedded applications. They are optimized for low-power consumption and provide a balance of performance, features, and cost that make them suitable for a wide range of embedded systems.
Overview of ARM Cortex M
The ARM Cortex-M series is a range of energy efficient, low cost 32-bit RISC ARM processor cores licensed by Arm Holdings. The ‘M’ stands for microcontroller. Cortex-M cores are designed for embedded applications requiring a low power, low cost processor.
ARM Cortex-M cores have a streamlined instruction set optimized for low-power operation. They feature a simplified interrupt handling scheme called Nested Vectored Interrupt Controller (NVIC) which reduces interrupt latency. The cores have built-in sleep modes to reduce power consumption when idle.
The Cortex-M series has 3 main families – Cortex-M0/M0+, Cortex-M3, and Cortex-M4. Each family scales in performance, features and energy efficiency. The Cortex-M0 is the smallest and simplest 32-bit core intended for replacement of 8/16-bit MCUs. Cortex-M4 provides DSP instructions for more advanced signal processing.
Key Features of Cortex M cores
- 32-bit RISC Instruction Set – Improved code density over 8/16-bit MCUs
- Thumb-2 Instruction Set – Balances performance and code size
- NVIC for Low Latency Interrupts
- Wake-up Interrupt Controller (WIC) – Manages wake up from sleep modes
- Advanced Sleep Modes – Reduces dynamic and static power
- Memory Protection Unit (MPU) – Improves software robustness (some cores)
- DSP instructions – Accelerates signal processing (Cortex-M4)
- Single cycle I/O – Fast GPIO and peripheral access
- Debug Access Port (DAP) – Debugging and programming interface
Cortex-M0/M0+
The Cortex-M0 and Cortex-M0+ are the simplest and most energy efficient cores in the Cortex-M series. Key features:
- 32-bit RISC architecture, up to 256KB Flash and 36KB SRAM
- Streamlined pipeline – Only 3 stages for lower power
- No MPU or DSP instructions
- Replacement for 8/16-bit microcontrollers
- Lowest power and cost
The Cortex-M0+ core adds more single cycle I/O, improved sleep modes, and higher energy efficiency over the M0. It operates at lower voltages down to 1.25V. The Cortex-M0+ is often used in battery powered and energy harvesting applications.
Cortex-M3
The Cortex-M3 offers greater performance over the M0/M0+ for applications needing more computing power. Key features:
- 3-stage pipeline, optional MPU
- Operation down to 1.2V
- DSP instructions, improved multiply performance
- Larger memory support, up to 1MB Flash and 160KB RAM
- Used in automation, motor control, utility meters
The Cortex-M3 provides a good balance between power and performance. It is popular in many embedded applications including industrial, medical, consumer devices.
Cortex-M4
The Cortex-M4 provides the highest performance in the Cortex-M series with an optional floating point unit (FPU). Key features:
- Optional single precision FPU
- DSP and SIMD instructions
- Memory Protection Unit
- L1 cache support
- Used in automation, graphics, audio products
The Cortex-M4 is often used where floating point capability or advanced signal processing is needed. Example applications include motor control, industrial automation, audio/video processing, and control systems.
Software Development
Cortex-M cores are supported by industry standard embedded development tools including:
- IDEs – ARM Keil MDK, IAR EWARM, GCC-based IDEs
- Debuggers – Segger J-Link, ULINKplus, others
- RTOS – FreeRTOS, uC/OS, Micrium uC/OS, ARM CMSIS-RTOS
- Stacks – AWS IoT, Azure RTOS
Cortex-M programming is typically done in C and assembly language. Managed languages like .NET Micro can also be used. The ARM CMSIS libraries provide consistent software interfaces across Cortex-M cores.
Example Cortex M Microcontrollers
Here are some example MCUs from major vendors using Cortex-M cores:
- STM32 – Cortex-M0, M3, M4 cores
- NXP LPC – Cortex-M0, M3, M4 cores
- Microchip SAM D/E/L/C – Cortex-M0+, M3, M4
- TI Tiva-C – Cortex-M4F
- Silicon Labs EFM32 – Cortex-M0+, M3, M4
- Nordic nRF52 – Cortex-M4F
There are thousands of MCU models from these and other vendors using Cortex-M cores optimized for different applications.
Conclusion
In summary, ARM Cortex-M microcontrollers provide an excellent combination of performance, power efficiency, and cost for embedded applications. The range of Cortex-M cores scale to meet needs from low-power IoT sensors to advanced motor control. Cortex-M’s large software ecosystem and broad availability from most MCU vendors makes it an extremely popular choice for 32-bit embedded development.