Choosing an MCU for your project is not easy task. Not only are there a number of technical features to consider, but also business case issues such as project budget and take times to market. There are a large number of suppliers, offering varying architectures, peripherals, price points, power consumption, packages and what not. This article helps you get a better idea of the current situation and select the right MCU for your project
List the required hardware interfaces
There are two braud catagory of general types of interfaces. The first are communication interfaces. These are peripherals such as USB, I2C, SPI, UART, and so on. Make a special note if the application requires USB or some form of Ethernet. Because these interfaces greatly affect how much program space the microcontroller will need to support. The second type of interface is digital inputs and outputs(GPIOs) , ADC, PWM’s, etc.
It is important to make sure that all the necessary tools are available for the selected microcontroller. Without the right tools the development process could become tedious and expensive. Most microcontrollers have a number of choices for compilers, example code and debugging tools. For most of the 8051s & ARMs available in the Indian market, Keil supports the code in ASM and Embedded C (even in C++ now). For the PIC series, MPLAB has a CCS plugin which enables you to code a PIC in ‘C’.
So before you select the chip, make sure a tool chain with the right options is available for development. Do consider the cost of the same as many of them do not have free versions. Most development kits today cost under $100. Paying any more than that (unless it is designed to work with multiple enough unit) is just too much.
Selecting an MCU which has good online support will help you with your ideas and solve most of your problems as the experience of other users is available for your reference. Getting to know existing bugs with tool chains or MCU documentation will help you avert the problem in advance and speed up development.
We can not differentiate RISC and CISC technology because both are suitable at its specific application. What counts is how fast a chip can execute the instructions it is given and how well it runs existing software. So rather than going to hardware implemented architecture, we consider our at a time processing speed need
For most embedded systems, we have the choice between 4-bit, 8-bit, 16-bit and 32-bit cores. The absolute difference between these MCUs is price: 8-bit was cheapest, 32-bit was expensive. This is still true in generally, but the price of 16-bit parts have come down significantly when TI(Texas Instrument) introduced its low power MSP series.
MCU’s process, architecture and memory technology also need to be considered because speed is not merely depend upon MHz and memory size.
Identify Memory Needs
Flash and RAM are two very critical components of any microcontrollers. Making sure that you don’t run out of program space or variable space is undoubtedly of highest priority. Using the software architecture and the communication peripherals included in the application, an embedded engineer can estimate how much flash and RAM will be required for the application.
When we need extra data memory, we even dont forget EEPROM. And don’t forget to leave room for future advancement and the next versions! It will save many headaches in the future.
If it is your first time working with an MCU, there is no need to purchase an expensive MCU. For absolute beginners, I would recommend P89V51RD2 from 8051 family, PIC16F877A from PIC family, Atmega8/16/32 for AVR family and LPC2148 for ARM newbies. And price of MCUs are varied upon qauntity and manufacturers.
If the device will be powered from a battery and mobile, then making sure the parts are low-powered and should contain different power saving modes. Most of the MCUs today are working with 5V, but if you get of 3.3V or even below it, it would be better choice. And for low power operation, i strongly recommand TI product.
- Difference between RISC and CISC architecture
- Difference between ARM and other Microcontrollers
- Introduction to Microcontrollers