If you are into software or hardware engineering, one of the most daunting task for you is probably the selection of the right micro-controller for your product. While choosing your micro controller you are not only required to consider the long and defined list of technical features, but you also have to take care of other factors like cost and lead-times. It is indeed tempting to kick start any new project from straight away choosing your micro controllers, but the results of such rush can be disheartening. So before making the rational decision of choosing the right micro controllers, these are some must follow and simple 10 steps which can ensure that the right selection.
1. List down the required hardware interface.
Make use of the general hardware block diagram to make a list of all the required external interfaces that will be supported by the micro controllers. The basic two types of interfaces which will be listed here will be the communication interfaces like the peripherals such as USB, I2C, UART, SPI, and so on. These interfaces have a bigger effect oh how much amount of program space a micro controller will require to support. Secondly the engineer requires to chalk out the interfaces like the digital inputs and outputs, the analog to digital inputs, the PWM’s, etc. These will define the number of pins required by the micro controller.
2. Consider the Software architecture
The software architecture and requirements is another big factor effecting the selection of the microcontroller. The weight of the processing requirements determines if you should choose am 80 MHz DSP or an 8 MHz 8051. Make notes of the requirements which can effect the decision like algorithms that require floating point mathematics, or high frequency sensors or control loops, estimates of how frequently these tasks are being run etc. These will help you make an estimation of how much processing power will be needed which will again effect the architecture and frequency of the micro controller.
3. Selecting the architecture
Once you are done with step one and two make use of the information to get an idea of what architecture will be required. Choose between 8 bit, 16 bit and 32 bit ARM core? You will find your answers between the application and the required software algorithms. Do keep in mind that you might need to add further features in the future. So if your features are just right for a 8-bit ARM core, you might want to consider a higher version.
4. Choosing the Right memory requirements
From the important requirements in the above steps, here we move to the critical requirements of a microcontroller. The Flash and the RAM are indeed two of the most critical components of any microcontrollers. Making sure that the product do fall short of the program space or variable space is indeed of the highest priority. There is nothing more painful then cutting down the features towards the end of the designing. So always start with higher memory requirements and you might consider cutting it down in the future. Estimate how much flash and RAM will be required by making use of the software architecture and the communication peripherals included in the application and as we mentioned above do keep in mind that you might need to add features in the future.