I've been thinking a lot lately about who's using microcontrollers and why these days. There's a lot at stake with this question. And, not just in terms of which microcontrollers are and will be the most popular. There's an element of the Toyota question in here too.
Traditionally, I suspect that electronics component manufactures, hardware EDA tool vendors and software tool vendors assume that their customers have been trained in EE, CS or similar discipline. I think to a point, that serves the industry well. But change is afoot in our industry. Because of a number of factors - too many to list here - virtually everything is getting some level of electronic control now. Years ago, that would have resulted in the hiring of a lot of electronics and software engineers. But not today.
The tried and true EE, accustomed to designing with logic and letting someone else worry about firmware, is now often tasked with designing in a microcontroller and then producing the firmware as well. Or a mechanical engineer is tasked with the same thing; something he or she never trained for. From what I can see, all sorts of technical folks that don't have programming experience, or any electronics design experience, are now being given that task. Schematic designers are now responsible for the board layout. Pure digital folks are often being required to add in a few RF sections.
What happens if all of the software tools (CAD packages, compilers & tool changes) are designed for well trained experts, but intelligent but untrained, in that field, folks need to use them?
When cars suddenly accelerate, MRI machines over-radiate or satellites fail, it's all good to look for tin whiskers, cosmic rays, manufacturing defects, software bugs and causes of that sort. But, what if the root cause is simply that someone trained and practiced in pure digital design was tasked with the "simple" function of adding in a few analog sensors and a tiny microcontroller. What if that designer had to learn a new discipline, a new tool set and still make budget and a tight deadline?
Maybe twenty years in digital design didn't prepare that designer for the quirkiness that goes with analog signals from sensors, or for the challenges involved in writing a small, but bullet proof SPI interface code. Maybe the designer is well used to determining spring strength and durability but now has to design a small electronic circuit to replace that spring. What does that do to quality and reliability? Food for thought.
Thought is hungry today