Tough subject!

I would say the recipe for selecting a microcontroller involves mixing:

one part: business

one part: art

one part: resources on hand

two parts: engineering

One Part - Business:

Clearly the business team must weigh in on the matter of costs. What is the target BOM cost for the product being created? How sensitive is the product to cost fluctuations? What is the expected life of the product? Is the product a one time sale, where every penny of margin is required, or does the product enable ongoing business income? How critical is initial time to market versus ongoing BOM costs?

Ideally the business team is able to provide clear cost goals to engineering.

One Part - Art:

There is an 'art' to topics like selecting a microcontroller. I don't know how to fully explain it. What does your "gut" say about the microcontroller in question? Do you believe the company creating the microcontroller when they say it is ready for prime time? Do you believe their end-of-life guarantees? Do you believe they will support the microcontroller during and after the design of the target product?

This is clearly a subjective area, honed through a life-time of hard knocks and experience.

One Part - Resources on hand



What microcontroller does the team already have experience with? What microcontroller would the engineering team want to work with? Which members of the team are available for the project on hand? What will you do if the only available engineer is deeply in love with the MSP430, but the preferred microcontroller happens to be an ST-ARM based microcontroller instead?

Another subjective area. But sometimes the politics of an engineering team should overrule the ideal selection.

Two Parts - Engineering

Clearly engineering must drive and select the microcontroller. I list engineering last because the other ingredients listed above should be known and available for the final decision making process. So, what priorities and questions should engineering be asking?

What are the device power requirements? How will the microcontroller impact or manage the power requirements?

What the the product security requirements? How will the microcontroller impact or improve the security of the product?

What software algorithms will be executed by the microcontroller? Can these be characterized in advance to help determine microcontroller CPU requirements?

What compiler or toolchain is available for the microcontroller? Is this toolchain readily available and common, or is it proprietary and expensive?

What debugging or inspection tools support the microcontroller? Are they world-class tools that will help our engineering team iterate quickly during software development?

What internal interfaces are required by the product? For example, will an external accelerometer require an I2C or a SPI interface?

What external interfaces are required by the product? For example, will the product enable an Ethernet port, and if so, is the microcontroller expected to interface directly with ethernet?

What are the safety concerns of the product? How will the microcontroller enhance the product safety?

How will the microcontroller impact the overall BOM? Does this microcontroller require extensive glue logic or other external costs, such as RAM, Flash, etc. How do these external requirements impact the BOM?

Did the sales rep take me out to dinner? Did they buy me a beer?!? :-)

I'll leave it to reader to decide which of the above are the most important to their project. I know which is the most important to me! :-)

Best regards,

Matthew

https://covemountainsoftware.com/consulting/

