The process of choosing a microcontroller for an embedded device can be one of the most challenging aspects of any project. With so many options to choose from, with different specifications and applications, it can feel like a monumental task.
While the right decision always depends on your specific project needs, there are a few general points to consider that can point you in the right direction.
Currently, Programmable Interface Controllers, or PIC Controllers, are among the most common microcontrollers in use thanks to their lower cost, but if you do not have experience in coding and programming, you will want to choose from the array of PIC microcontrollers that uses a user-friendly program like C or Basic. If you want to try working in a different language, some microcontrollers have resources such as user communities and free libraries of code you can use, but in general, it’s best to choose a microcontroller that uses a familiar programming language to limit frustration.
Review the Architecture
One of the most significant factors in choosing a microcontroller is the software architecture requirements. You need to understand exactly how much processing power will be required for your application so you can choose the microcontroller that’s powerful enough for your needs. Some of the considerations include the type of mathematics used to run algorithms (floating or fixed point), the sensors being used, and how long tasks will run. Without the right system architecture, your device could run slowly or inefficiently, negatively affecting user experience.
It’s also important to consider the future when evaluating the system architecture. Future versions of the system could have more features or require more processing, meaning that the 8-bit microcontroller you choose today will be inadequate in a year or two. Consider looking at more powerful microcontrollers now to make the process of scaling up and upgrades easier.
Choosing a microcontroller with adequate flash and RAM is vitally important so you don’t run out of space. It’s always better to choose a microcontroller that has more memory than you actually need, since you will not be able to add more memory at the end of the design process. In fact, you should always include more memory than you think you need to allow for future versions of your device. You can often get an estimate of your memory needs using the software architecture and the peripherals in the application; use that estimate as a starting point.
It’s also important to carefully look at the power requirements of the device and the microcontroller to find the one that will meet your needs. Mobile devices that are powered by a battery, for example, use more power than those that are “plugged in” and stationary, and therefore a microcontroller that uses more power is going to become a greater drain on that device. Carefully consider how the device will be used, and select accordingly.
Cost is always a concern, and while general processors can be found for around $1 apiece when purchased in volume, those lower priced processors may not be ideal for your project. The more specialized your device or the more processing power it needs, the more expensive the microprocessor.
When comparing microcontrollers, you need to evaluate the tools that come with the device, including the compiler, debugging tools, and code libraries. These tools make the development process much easier, so carefully compare your options and make sure it won’t be too difficult for you to program.
Finally, once you have narrowed down your list of potential microprocessors, you should double check the availability of the parts you need. Can you easily access the microprocessors when you need them, or is there a significant lead time? Will you be able to acquire enough parts when you need them if you scale up? You should also consider the potential that the microprocessor you select will be obsolete in the near future, requiring you to start over. A relatively new microprocessor that you are reasonably certain will still be available in 10 to 15 years is a better choice than one that’s been on the market for a long time and is approaching obsolescence.
Evaluating all of these factors can lengthen the process of choosing a microcontroller, but are well worth the effort when you choose the right one and the design and manufacturing process proceeds without any difficulty.