ARM microcontrollers are small, low-power microprocessors based on the ARM processor architecture. They are designed for use in embedded systems such as consumer electronics, toys, appliances, industrial equipment and Internet of Things (IoT) devices. Some key features of ARM microcontrollers include:
- Low power consumption – ARM cores are designed to provide good performance at very low power draw, making them ideal for battery-powered devices.
- Small footprint – ARM microcontrollers integrate a processor core along with memory and peripherals in a small package, reducing the overall size and cost of the final product.
- Real-time performance – The ARM architecture provides fast interrupt response times for real-time embedded control.
- Scalability – ARM offers a wide range of cores optimized for different performance points allowing developers to scale up or down for their application.
- Development tools – There are many low-cost development boards and software tools available for programming ARM microcontrollers.
ARM Processor Architecture
ARM processors utilize a RISC (reduced instruction set computer) architecture which emphasizes efficiency over complexity. The key features of the ARM architecture include:
- 32-bit instruction set – Provides a good balance of high performance and small code size.
- Load/store architecture – All data processing operations only occur on registers, simplifying the microarchitecture.
- Conditional execution – Most ARM instructions can be conditionally executed based on status flags, maximizing execution efficiency.
- Thumb instruction set – A 16-bit compressed subset of the ARM instructions that provides greater code density.
- On-chip debug/trace – Hardware debug modules are integrated on most ARM cores for software debugging.
- SIMD instructions – ARMv6 added media instructions for improved multimedia performance.
- TrustZone – Security extensions provide trusted/non-trusted execution environments.
The RISC principles and Thumb instruction compression allow ARM processors to achieve high performance at very low power consumption levels. This makes them an excellent fit for embedded systems where resources are constrained.
ARM Core Families
ARM offers a variety of core designs optimized for different applications. Some of the most popular ARM cores used in microcontrollers include:
- Cortex-M – Designed for microcontroller and deeply embedded applications. Very small in size and low power consumption. Ideal for IoT edge devices.
- Cortex-R – Used in mission-critical hard real-time systems. Provides very predictable timing behavior.
- Cortex-A – Application processor cores designed for high performance demands. Used in mobile devices and other consumer electronics.
Within each family, there are also different cores optimized for higher or lower performance levels. For example, in the Cortex-M family:
- Cortex-M0/M0+ – Ultra low power 32-bit cores aimed at simple cost-sensitive applications.
- Cortex-M3 – Mid-range core with memory protection unit and basic DSP capabilities.
- Cortex-M4 – Adds single-precision floating point unit and optional DSP extension.
- Cortex-M7 – Highest performance M-series core with superscalar dual-issue pipeline.
This range of options allows developers to select an ARM core that provides the right level of performance, power, area and cost for their specific design goals.
ARM Microcontroller Vendors
Many semiconductor companies license ARM cores and integrate them into their microcontroller products. Some of the leading vendors of ARM-based microcontrollers include:
- STMicroelectronics – Industry leader in ARM microcontrollers with the widest range of Cortex-M cores. Families include STM32 and STM8.
- NXP – Top vendor of Cortex-M cores. Major families include LPC and Kinetis MCUs.
- Microchip – Acquired Atmel and now offers the SAM line of ARM Cortex-M based microcontrollers.
- Cypress Semiconductor – Manufactures the PSoC series with integrated programmable analog.
- Renesas – Leading Japanese semiconductor supplier with RX and RA ARM-based MCUs.
- Infineon – Offers XMC microcontrollers with optional ARM cores and industrial peripherals.
These companies compete by integrating various types of peripherals, memory configurations, packages, tools and software libraries tailored to different applications and market segments.
Programming ARM microcontrollers requires an integrated development environment (IDE) and/or compiler toolchain. Some options include:
- ARM Keil MDK – Complete IDE and toolchain designed specifically for ARM processors. Includes C compiler, debugger and simulation.
- IAR Embedded Workbench – Popular IDE and toolchain with advanced code optimizations for size and speed.
- GCC ARM Embedded – Open source toolchain using GCC compiler and GDB debugger, available free of charge.
- mbed – ARM’s free cloud-based IDE and software platform for rapid prototyping on Cortex-M cores.
- Microchip MPLAB – Integrated development platform for Microchip and Atmel ARM-based microcontrollers.
Most microcontroller vendors also offer low cost discovery or evaluation boards to help prototype and test ARM-based designs. Debugging is typically done through JTAG/SWD interfaces.
From an application programming perspective, ARM microcontrollers can be programmed using:
- C/C++ languages – Compiled using ARM toolchain down to machine code.
- Assembly language – Provides full access to all CPU instructions and registers.
- Arduino IDE – Popular open-source electronics prototyping platform using C/C++.
- mbed – Web-based dev environment using C/C++ for rapid IoT application development.
Standard embedded C libraries, like CMSIS and mbed, provide useful software abstractions for peripherals and CPU core functionality. This speeds up development time when compared to coding at the register level.
ARM Microcontroller Applications
Due to their compact size, low cost and power efficiency, ARM microcontrollers are ubiquitous in many embedded systems. Example applications include:
- Consumer electronics – Smartphones, tablets, smart watches, media players, etc.
- IoT endpoints – Smart sensors, home automation devices, wearables, etc.
- Industrial – Motor controls, robotics, HMI interfaces, etc.
- Automotive – Engine control units, infotainment, driver assist systems.
- Home appliances – Microwaves, washing machines, smart meters, etc.
- Toys – Remote control cars, video game systems, interactive toys.
- Medical devices – Blood analysis machines, insulin pumps, ultrasound machines.
ARM microcontrollers provide an ideal combination of performance, power efficiency, size and cost for demanding embedded applications. Their flexibility allows them to be tailored to meet the needs of products ranging from small sensor nodes to advanced driver assist systems.
In summary, ARM microcontrollers are RISC-based, 32-bit embedded processors designed to provide high performance with very low power consumption. They are used ubiquitously in consumer electronics, IoT devices, industrial equipment, medical devices and many other embedded applications. With their solid CPU architecture, comprehensive toolchain support and wide vendor adoption, ARM microcontrollers will continue to be the premier choice for low-power, cost-sensitive embedded designs.