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:
NXP Rewards on ARM Cortex-M Products
A. CPU Choice
Currently, ARM has four Cortex-M cores available.
- 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- 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- 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
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.
0 Comments On This Entry
Please log in above to add a comment or register for an account
The Continuing Hazards of Dhrystone
on May 16 2013 10:24 AM
Make versus buy: it's about risk management!
on May 15 2013 02:29 PM
Accelerated Internet of Things (IoT) development with ARM mbed and Xively
on May 14 2013 12:21 PM
Embedded Systems and M2M Expo 2013: Deep Embedded, Consumer and Enterprise
on May 13 2013 10:26 AM
How ARM Compiler detects stack overflows or malicious tampering
on May 07 2013 06:50 PM