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 microcontroller 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 microcontrollers, but the results of such rush can be disheartening. So before making the rational decision of choosing the right microcontrollers, these are some must follow and simple 10 steps which can ensure that the right selection.
Make use of the general hardware block diagram to make a list of all the required external interfaces that will be supported by the microcontrollers. 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 microcontroller 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 microcontroller.
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 microcontroller.
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.
5. Power constraints
Once you are done with selecting the right architecture and the memory its now time to step down to the market and get a list of micro-controllers matching your requirements. Start cut shorting the list by the power requirements of your device. Make sure you choose the low power parts if the device will be powered from the battery of the mobile.
6. Life cycle of the product
You are done with shortlisting the products that matches the above requirements, so now its time to consider how long of a life cycle are you planning for your product. If your product's life is 10 years, make sure that the manufacturer guarantees a 10 year availability of the micro-controller.
7. Look for a development kit
After considering all the above factors and almost ready with the selected alternatives, start to look for a development kit. These development kits helps you to play with and learn the inner functions of the controller. If the development kit isn't available, it is probably not the right choice.
8. Look out for compilers and tools
While after you have your development kit in hand, you are almost ready with the right micro-controller. But before you pay and leave back home, the availability of the compilers and tools is one last but a big and important factor to consider. Make sure that all required tools like the compilers, debugging tools and examples codes are already available. Without these the development process can get difficult, time taking and expensive.