Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

ARM Community: ARM Cortex-M - How could you choose your microcontroller? - ARM Community

Jump to content

ARM Cortex-M - How could you choose your microcontroller?

As Richard York pointed out in his recent blog, the ARM Cortex-M processor series is now 7 years old during which time it has achieved huge success. Its instruction set makes it extremely suited to microcontrollers (MCUs) and embedded applications, but you can also find it as a companion processor to beefier Cortex-A processor-based applications. An example is the Texas Instruments OMAP™ 5 platform which includes two ARM Cortex-M4 processors for offloading real-time processing from the Cortex-A15 processor to improve low-level control and responsiveness of mobile devices.

In this post, we will concentrate on standalone MCU devices and highlight a few items to consider when choosing the most appropriate processor for your next design. As the ARM Cortex-M series has hundreds of references available, we will not be able to pinpoint the exact part number you need, but rather help your selection.

For this, we will look at:

CPU Choice - On-chip peripherals - Development tools

NXP Rewards on ARM Cortex-M Products

   

A. CPU Choice

Currently, ARM has four Cortex-M cores available.

  1. 1- The ARM Cortex-M0 processor is the smallest of the family. With power consumption of perhaps 14μW/MHz and implementations from under 12k gates, it represents a very small, power-efficient core. Cortex-M0 Documentation on ARM Infocenter.
  2. 2- The ARM Cortex-M1 processor is optimised specifically for FPGA use, enabling a small ARM processor to be embedded within the configurable fabric.
  3. 3- The ARM Cortex-M3 processor is the most mature member of the series. I would call it very versatile as you can find a wide range of clock speed, even up to 150 MHz with the NXP LPC1800. Cortex-M3 Documentation.
  4. 4- The ARM Cortex-M4 processor is the newest member of the family to be released.. It has received many awards since 2010 and in 2011 the EDN Innovation of the Year Award. It has specialist Digital Signal processing (DSP) instructions making it an ideal candidate for Digital Signal Control applications. Some versions also include a Floating Point Unit (FPU) for when you need extra precision or calculation power. Cortex-M4 Documentation.

Once you have an idea of the core best suited for your application, you can go to our new ARM MCU Resource Center to find silicon with the RAM, Flash, EEPROM you need. The ARM Processor Licensees page gives a higher level view.

   

B. On-chip peripherals

The CPU is only a small part of the MCU needs and choosing your product based on which peripherals you want is probably a way I would personally advise.

Being quite biased towards communications, I would start by looking at which network my MCU needs to support. In automotive, CAN (Controller Area Network) and LIN (Local Interconnect Network) are predominant, but Cortex-M MCUs are also excelling at Ethernet, ZigBee… and of course simpler serial protocols like I2C, UART and SPI! The ARM MCU Resource Center does include the number of ADC and DAC channels.

You can find below a table to help you compare the different peripheral sets. Some MCUs are available standalone, but are still targeted at very specific applications: i.e. ZigBee

Silicon Vendor

Cortex-M0

Cortex-M3

Cortex-M4

Fujitsu

FM3

Texas Instruments

Stellaris®

Nuvoton

NuMicro®

NXP

LPC1xxx

LPC1xxx

LPC4300

STMicroelectronics

STM32

Analog Devices

ADuCRF101

Atmel

SAM3

Broadcom

BCM4330 (WiFi)

Cypress Semiconductor

PSoC® 5

Dust Networks

DN6000 (~ZigBee)

Ember

EM300 (ZigBee)

Energy Micro

EFM32 Zero Gecko

EFM32 Gecko

EFR4D Draco (Radio)

EFM32 Giant Gecko

Freescale Semiconductor

Kinetis

Samsung

S3FN

S3FM

Toshiba

TX03

Triad Semiconductor

Mocha-1 (VCA)

ON Semiconductor

Q32M210 (Mixed Signal)

Holtek

HT32

   

C. Development Tools

Whether you program bare metal or are using an RTOS, you will be more than likely to use an IDE. At this stage, you are advised to look for a development environment supporting the Cortex Microcontroller Software Interface Standard (CMSIS). This standard is really all for the programmer! As you make abstraction from the hardware, it means you can change MCU target for your next projects without starting from scratch. By changing a parameter, your code will be recompiled to make best use of the instruction set available on your device.

For instance if you start your motor control application on a Cortex-M3 processor but then decide to use the Cortex-M4 DSP instructions for more efficiency, with CMISIS it’s just a “define” and a re-compile away!

Of course, Keil MDK (ARM Microcontroller Development Kit) fully supports CMSIS, but there are many other IDEs supplied by ARM tools partners. Finally, for cheap and quick prototypes on the ARM Cortex-M3 processor, I can recommend mbed and LPCXpresso, or the ARM Microcontroller Prototyping System (MPS) which enables software to be developed before device silicon is available, and allows comparison of the Cortex-M processors in order to choose the one most suitable for the intended price and performance of your device. But here again, a wealth of Partners are also providing high quality development tools.

Finally, two good companions for your Cortex-M development are books from ARM Joseph Yiu, The Definitive Guide to the Cortex-M3 and the newest The Definitive Guide to the Cortex-M0… Quoting ARM30 as promo code ;p

What did I forget?

PS: Today is your last chance to submit your entry to Freescale Kinetis Make It Challenge. Time is running out quickly!

 

Alban Rampon - 冉昂理, Partnership Marketing Specialist, ARM, is an electronics engineer experienced in Automotive as well as Consumer and Industrial product design. He loves spending a lot of his time helping engineers worldwide with specialist questions in electronics and microcontrollers/networks in particular. Being a keen trainer helps Alban giving straight and understandable answers, always thriving to the highest standard of quality. Today Alban uses both his technical knowledge and customer dedication to develop and strengthen ARM Connected Community relationships. Through networking and promotion, he helps ARM Partners getting successful products to the market. You are very welcome to drop Alban an email if you have any question or wish to report inappropriate content/behaviour on the Forums/Blogs.
All company and product names appearing in the ARM Blogs are trademarks and/or registered trademarks of ARM Limited per ARM’s official trademark list. All other product or service names mentioned herein are the trademarks of their respective owners.

0 Comments On This Entry

Please log in above to add a comment or register for an account