The important features of a microcontroller that cannot be avoided are its small size, its ability to consume low power, its low cost, the maximum number of input/output ports and its fast processing capability. Again, if a microcontroller has all these features, however, is not capable to interface with the real world, then it would be of no use – especially, in an industrial automation scenario, where there might be a load of sensors and actuators to interface with. The current market offers microcontrollers from many leading manufacturers like Atmel, Texas Instruments, Microchip and Infineon to name a few.
What is the ARM Cortex-M core?
The ARM Cortex-M is a group of 32-bit RISC ARM processor core that is licensed by ARM. This group consists of Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3 and Cortex-M4 and these are designed to be used for microcontroller applications. Most of the Cortex-M based microcontrollers are used in Industrial automation applications due to their lower cost, increasing connectivity, better code reuse and improved energy efficiency. This ARM Cortex-M core provides the pipeline processing of data, which means that the data is executed one after the other in a streamlined manner.
The cheapest ARM MCUs are based on Cortex-M0
The binary instructions available for Cortex-M0 can easily be executed on Cortex-M3 and M4. It has a smaller core and this enables it to have lower chip prices. It requires just 13.36 µW/MHz dynamic power, which makes it incredibly energy efficient. It follows 3 stage pipeline of data processing that allows overlapping data processing, which in turn maximises the data throughput of the system. Cortex-M0 core is integrated in to the Infineon’s 32-bit XMC1000 NXP’s LPC1200, STM32 F0 series and Nuvoton’s NuMicro
While the XMC1000 series offers the opportunity to enjoy 32-bit power at the price of an 8-bit equivalent MCU providing the same ease of usage, the LPC1200 has been specially designed with flexibility and customization and is suitable for a wide variety of energy efficient system and power management requirements. It features high current GPIO (General Purpose Input/Output) that can directly control TRIACs without using external transistors further reducing the costs and footprints.. The XMC also offers the largest Flash memory spectrum, scaling from 8K to 200KN.
The STM32 F0 family of MCUs combine real time performance, low-power operation, advanced architecture and peripherals associated with the STM32 platform that are available. Its competency in 8 bit and 16 bit markets eliminates the need to manage different architectures and the associated developments overhead. NuMicro
Feature-wise difference between these sets of microcontrollers
The most energy efficient ARM MCUs are based on the Cortex-M0+
It is the most energy efficient ARM processor available that achieves a power consumption of just 9.8µW/MHz. This processor has the memory protection unit (MPU), a feature usually present only in the bigger Cortex-M3 and Cortex-M4 processors. It is based on the ARMv6-M architecture, which follows 2 stage pipeline for data processing, where data is read from or written to SRAM in one stage and data is read from or written to memory in the other stage. It also offers single-cycle I/O port and non-maskable interrupts (NMI) along with 32 physical interrupts. Moreover, its ability for multiple processing with the same instruction sets present in Cortex-M0 makes it quick and simple. Atmel SAM D20, Energy Micro EFM32 Zero, Freescale Kinetis L and NXP LPC800 are few of the microcontrollers that have Cortex-M0+ based core that can be used in an industrial automation application.
The Kinetis L series MCUs bring new design possibilities to the entry level applications that were previously limited by 8/16 bit MCU capabilities. It supplements the low power Cortex-M0+ core with the latest low-power 90nm flash technology at less than 50µA/MHz, platform design, operating modes and energy saving peripherals. This series of MCUs (both hardware and software) are compatible with the ARM Cortex-M4 based Kinetis K series microcontrollers. On the other hand, the LPC800 is a family of microcontrollers that is available in low pin count packages and offers low count peripherals. It addresses 8-bit application requirements while providing the 32 bit capabilities. This family has a unique device serial number for identification and also supports Flash in-application programming (IAP) along with in-system programming (ISP). This is a very useful feature that increases productivity by allowing the designer to program the device without even removing it from the circuit board.