Criteria For Selecting A Microcontroller
Microcontroller for a product can be a daunting task. Not only there are a number of technical features to consider, but there are also business case issues such as cost and lead times that can cripple a project. At the start of a project, there is a great temptation to jump in and start selecting a microcontroller before the details of the system have been hashed out. This is, of course, a bad idea. Before any thought is given to the microcontroller, the hardware and software engineers should work out the high levels of the system, block diagram, and How to chart them, and only then is there enough information to start making a rational decision on microcontroller selection. When that point is reached, there are 10 easy steps that can be followed to ensure the right choice is made.(1) Make a list of required hardware interfaces
Using the general hardware block diagram, make a list of all the external interfaces that the microcontroller will need to support. There are two available types of interfaces that need to be listed. The first is communication interfaces. These are peripherals such as USB, 12C, SPI, UART, and so on. Make a special note if the application requires a USB or some form of Ethernet. These interfaces significantly affect how much program space the microcontroller will need to support. The second type of interface is digital inputs and outputs, analog to digital inputs, PWMs, etc. These two interface types will dictate the number of pins that will be required by the microcontroller. figure 1 shows a generic example of a block diagram with the i/o requirements listed.
(2) Examine the software architecture
The software architecture and requirements can greatly affect the selection of a microcontroller. How heavy or how light the processing requirements will determine whether you go with an 80 MHz DSP or an 8 MHz 8051. Just like with ' the hardware, make notes of any requirements that will be important. For example, do any of the algorithms require floating point mathematics? Are there any high-frequency control loops or sensors? Estimate how long and how often each task will need to run. Get an order of magnitude to feel how much processing power will be needed. The 'amount of computing power required will be one of the biggest requirements for the architecture and frequency of the microcontroller.
(3) Select the architecture
Using the information from steps 1 and 2 an engineer should be able to start getting an idea of the architecture that will be needed. Can the application get by with eight-bit architectures? How about 16 bits? Does it require a 32-bit ARM core? Between the application and the required software algorithms, these questions will start to converge on a solution. Don’t forget to keep in mind possible future requirements and feature creep. Just because you could currently get by with an 8-bit microcontroller doesn’t mean. you shouldn’t consider a 16-bit microcontroller for future features or even for ease of use. Don’t forget that microcontroller selection can be an iterative process. You may select a 16-bit part in this step but then in a later step find that a 32-bit ARM part works better. This step is simply to start getting an engineer to look in the right direction.