Choosing a suitable Microcontroller for your Embedded System, is the most important and essential part of Embedded System Design. Selecting a wrong Microcontroller may introduce many unwanted and unavoidable hurdles to complete the error free system in scheduled time, like:
Increase the complexity of project, which may cause to miss the schedule
Increase the cost of the end product
Increase the board size
Need extra efficiency and effort
and many more.......
While selecting a microcontroller for Embedded System, a few factor should be taken in consideration.
On performance basis:
MIPS of Microcontroller. Millions of Instructions executed in a second indicates the speed of a microcontroller. A microcontroller selected should have optimum speed to support the proposed project or product.
Word Size or Bit Size of the Microcontroller. For example, if a system functionality can be implemented using a 8-bit Microcontroller, instead of using 16-Bit or 32-Bit Microcontroller. This may increase the complexity of the project and needs extra efficiency & efforts demanded by the high-end Microcontroller.
Address Size of the Microcontroller. Select a microcontroller, which can support Address Bus to access optimum memory.
On physical basis:
DIOs available with microcontroller. A microcontroller selected should have equivalent or adequate pin count, required for Embedded System. This will save the space on final board of the product.
Flash Memory of the microcontroller. The size Flash memory depends on the size of object file generated by the assembler/compiler. The size of Flash program memory is an important factor when the user has decided to use internal program memory.
Internal RAM of the microcontroller. The selected microcontroller for an Embedded System should have enough internal RAM required for data memory. The coding style or the way coding plays the most important role, to limit the usage of internal RAM.
Built-in peripherals of the microcontroller. The microcontroller selected has built-in peripherals needed by Embedded System, like ADC/DAC, UART/USART, USB, SPI, I2C, Timers.
Operating Temperature Range of microcontroller. A microcontroller selected should have a temperature range, if Embedded System is designed for Industrial purpose.
Others Important factors:
Development & Programming tools available for development related to the microcontroller. The available Development & Programming tools like, assemblers, compilers, simulators and debuggers should cost effective, i.e it should not affect the cost of the product. The availability and cost of development & programming hardware are be considered while choosing microcontroller.
Availability and Cost of the microcontroller. Select a microcontroller which is easily available and comparatively cheap.
Least but the most important factor while selecting the microcontroller is the third party support available. Number open source developers, experts, entrepreneurs, hobbyist keep their work and product ideas on internet, which help many developers to start work in right direction and complete their design in schedule. While selecting a Microcontroller for Embedded System, one should look for the third party support available the controller.