Electronics engineering is a rather tricky beast. No matter how similar it may be to something else you’ve worked on, each project is a little different from the last. And this means the individual parts you’ll use during development (especially microcontrollers!) will likely differ as well.
Selecting the appropriate microcontroller for the job is easier said than done, of course. It’s a pivotal decision that seriously affects not only the basic performance but also the flexibility and scalability of your embedded system project overall. With several different architectures, types, and brands available — each offering distinct features/capabilities — it’s essential you don’t just make a random pick but follow a systematic approach to ensure you choose the one most suited for your needs.
Hoping for a little assistance? Here are five steps to help you navigate this process and find the right microcontroller for your next big project.
1- Define Project Requirements
Buying the absolute best components possible is obviously a good practice to adopt, improving the quality and longevity of everything you create. However, before you can source the right materials, you must first know what your project needs. A good place to start is by simply defining all of its basic requirements.
When we say basic, we mean it. Take note of all the obvious stuff: necessary communication interfaces, input/outputs, memory capacity, power consumption restraints, etc. Consider the processing power you’ll need to keep things running smoothly. Don’t forget to consider functionality, as well.
What role does your project play within any larger systems? Is real-time performance going to be a big focus? How is it intended to operate, and what conditions will it typically be subjected to? Are there any specialized features you need to account for?
The answers are usually simple and straightforward, but they’re a project’s most essential building blocks. If you don’t clearly identify (and plan) for them, your project won’t have a solid foundation to build on.
2- Research Available Architectures
The performance/suitability of a microcontroller doesn’t only boil down to the sum of its parts, although this certainly does play an important role. There are several popular architectures on the market today, and not all will align with your project’s basic requirements — nor will they all be optimal for what you’re trying to do. As such, be sure to really do your research on MCU architectures before you start filling your shopping cart with any first finds.
ARM, AVR, PIC, MSP430, and RISC-V are a few of the most common options, all coming along with some unique strengths, weaknesses, and typical applications. AVR is one of the more simplistic microcontroller architectures, featuring lower power and performance yet boasting a robust development ecosystem.
Hobbyists and beginners: this is an excellent choice! For those who are a touch more experienced, though, you might want to weigh your options more carefully.
With skill/familiarity aside, the ideal architecture will primarily rely on what best complements your project aim. Want flexibility and scalability above all? RISC-V or ARM will likely be a good fit. Worried about power consumption or need something with a wide temperature range? MSP430 architecture is a better move.
3- Consider Development Tools and Ecosystem
MCU specs mean a lot, but their tools and accompanying support systems are nearly as critical. Microcontrollers that lack adequate ones can be risky investments even if they’re otherwise suitable for a project, so take a moment to consider how important this is to you prior to purchasing.
Should this be a big concern, we recommend playing it safe and going with an MCU that has several tutorials, varied resources, and plenty of assistance backing it up. Regardless, though, any and every electronics engineer should still make a point to assess a microcontroller’s ecosystem before buying.
The availability and quality of developer tools and software libraries, IDEs, debuggers, and compilers go a long way to making your job either a breeze or a total pain point better avoided. More robust tools and support are always a huge help.
4- Consider Long-Term Availability and Support
We have to admit: microcontroller shopping can be an involved, tedious task. After all, selecting the right pick for a project entails more than just considering its immediate specifications — it also requires assessing its long-term availability and support.
Sorry folks. Once again, sustainability is key!
Unfortunately, no one metric is indicative of this, but the manufacturer’s track record can give some good hints. Found an MCU with a reputable manufacturer, one that has a history of ongoing product support and always makes sure their product’s available? That, in turn, probably spells good things for your project’s longevity.
Manufacturer websites featuring continuously updated, comprehensive product documentation and roadmaps are also a good sign. But beyond a microcontroller’s support/lifecycle, you might also want to consider its user community’s size and general helpfulness. Large, active communities, whether on Reddit, manufacturer sites, or elsewhere, are more crucial than most realize.
Sure, you can usually get along fine without them. Yet, with them, you can quickly troubleshoot problems and find new applications that would otherwise be out of reach.
5- Evaluate Power & Performance Characteristics
When shopping around for the right microcontrollers, things like development tools, long-term support, and basic requirements should all be priorities on your pre-project checklist. That being said, power and performance still have to settle in at the very top.
MCUs are the brains of the operation, remember? That means they need to pack a punch without endlessly guzzling power. Look then for markers of performance like clock speed, ISA, and execution efficiency while also comparing consumption characteristics. A critical eye is a good thing here, especially if your project primarily relies on battery power or has some strict power constraints.
What we’re seeking is balance, so don’t be afraid to delve into the facts and figures. Compare active, idle, and sleep modes, and do your best to only go with components that show lower, steady power consumption without compromising power. This will ensure your microcontroller uses energy efficiently and that your project can truly flourish from beginning to end.