Thumb rule for micro-controller Selection ???

Thread Starter

mishra87

Joined Jan 17, 2016
1,034
Hello everyone !!!

How to select Architecture of micro-controller ???

Its very easy to understand Hardware requirement of micro-controller and list out them, lets say GPIO, ADC, DAC, RTC, I2C, SPI, UART, LPUART, Ethernet, USB, PWM, Timer, Counter, Audio interface etc.

Even now i know hardware requirement :
Then how to finalize software requirement and select Architecture of MCU lets say "Arm® Cortex®-M4 32-bit".
How to select core of MCU and why ???
How to select 32 bit or 16 bit or 8 bit ???

Could anybody guide me how to select MCU for an application.

Thanks !!!
 

MrChips

Joined Oct 2, 2009
30,701
Your best guideline will be your own personal experience.
Build circuits, boards, and systems.
Build lots of them. Don't be committed to any one MCU or manufacturer.
The more you do, the more experience you gain. This is a moving target.
Don't ignore new devices that come on the market. Be prepared to switch gears at any time.
 

Thread Starter

mishra87

Joined Jan 17, 2016
1,034
Thanks Mrchips and bertus for your reply >

My quarries is still left unanswered if somebody can answer.

My focus is how to finalize MCU architecture. Lets say wether it is Arm® Cortex®-M4 32-bit or something else.
 
It seems like you want to know how to choose (finalize would suggest that you already have already evaluated a number of choices) an MCU architecture, but you don't want to say much of anything else about why you would be choosing at all. So, why would you want a Arm® Cortex®-M4 32-bit MCU instead of, say, a potato?

Is your hope that a whole bunch of "knowledgeable" people will start writing like crazy about all the architectures available and which ones are the best for doing one thing or another? If that is so, there are HUGE amounts of information on that kind of thing freely available. After you have read enough of that AND you have determined what you want to use the MCU for, and you are willing to share that information, you can probably get some good feedback here. Failing that, I think that you are unlikely to find some kind of simplistic "rule of thumb" that will satisfy you in a meaningful way.

https://www.mindtools.com/pages/article/newTED_00.htm
 

OBW0549

Joined Mar 2, 2015
3,566
My quarries is still left unanswered if somebody can answer. My focus is how to finalize MCU architecture. Lets say wether it is Arm® Cortex®-M4 32-bit or something else.
No one here can give you a simple rule of thumb, or procedure, for how to do that; it's work that only you can do, for it involves researching and studying the various architectures available, making note of their capabilities, and then making an informed judgement as to which of them would best fit your application.

It will take persistence and a lot of hard work. And we can't do that for you.
 

BobTPH

Joined Jun 5, 2013
8,804
As a first approximation, the amount of memory , both for data and program needed will help select from various 8, 16 and 32 bit architectures. For example, if you need only 20 bytes of data memory, you are probably looking for a low end 8 bit micro. If you need 1M of data memory, you are going to need a 32 bit one.

Bob
 

MrChips

Joined Oct 2, 2009
30,701
I would start with:

1) How many I/O pins do you need?
2) How big do you think the program will become?
3) How fast do you think the program needs to be?
4) How much electrical power should the system consume?

Answer those four questions and you would have narrowed the search significantly.
And do not respond "as low as possible" or "as high as possible". Put down some real numbers.
 

MaxHeadRoom

Joined Jul 18, 2013
28,617
As well the the desired functions you wish to perform.
This will usually also indicate the package size of the device, for e.g. MicroChip have a selection chart for any and all modules etc required.
Max.
 

MrChips

Joined Oct 2, 2009
30,701
As well the the desired functions you wish to perform.
This will usually also indicate the package size of the device, for e.g. Picmicro have a selection chart for any and all modules etc required.
Max.
Yeah, one would think that that would be essential requirement, but I intentionally left that off of my list for a reason.
(The first micros had no peripheral functions. All additional functions were implemented with external hardware.)
 

spinnaker

Joined Oct 29, 2009
7,830
If price really isn't an issue and package size is not an issue just buy more chip than you need. I keep a selection of chips in stock with various functions. When I start a project I just need to pull one out of my supply. Sometimes it is way over kill. But I don't usually care.
 

danadak

Joined Mar 10, 2018
4,057
Some thoughts -

There are purchasing considerations, vendor reliability, vendor commitment to product
line, breadth of product line (can they cover many of your design requirements over various
product cycles), vendor presence in marketplace, annual shipments (vendor ships more than
10M pieces annually), cost....

Then there are technical considerations, tool usability, field engineering support, factory
technical support depth, dev board usability and support, ap notes on layout, basic
configurations.....

And not to ignore actual chip capabilities, power, speed, design requirement coverage (how
much stuff needed externally vs on chip), API support of peripherals (read tool library of
drivers for each onboard peripheral), packaging, lifetime (EEPROM), accuracy (analog stuff,
Vref, A/D, D/A, numeric precision).....

Just a few considerations :)

One of the most powerful tools in this decision making is a simple Excel spreadsheet
of characteristics/criteria vs vendor, and rate each one, 1 to 5, add it up for each
vendor when you are done. Very insightful sometimes as humans, one step above
a gerbil, are not so great at juggling more than 1 ball at a time.....:)


Regards, Dana.
 
Last edited:

MrChips

Joined Oct 2, 2009
30,701
I would start with:

1) How many I/O pins do you need?
2) How big do you think the program will become?
3) How fast do you think the program needs to be?
4) How much electrical power should the system consume?
(1) How many I/O pins do I need?
I have applications where the number of I/O pins required is 1 or 2. This narrows the search down to chips with a small footprint, such as 8-pin package.

Or if I need to drive four digits of 7-segment LED displays, I would want a chip with at lease one or two 8-bit ports.
Or do I need 32 or more I/O pins which eliminates all MCUs packages with low pin counts.

(2) How much code memory do I need?
I would know ahead of time the complexity of the project. This will dictate if I need 512, or 1K, 2K, or 16K bytes.
(Along with that I would have in mind how much RAM space the application will require.)

(3) Do I need 1-second or milli-second responses? Is my application math intensive? Do I have to perform FFT in real time?

(4) Is my application battery powered at 3V? Do I need to put the MCU into SLEEP mode in order to extend battery life?

Those are the important questions. At this stage, I know pretty well what MCU range I need to research. After I have answered all of the about, I can start looking at (5).

(5) What peripherals do I need? ADC, DAC, Timer, RTC, UART, DMA, micro-SD, USB, camera, touch-screen graphics LCD, EEPROM?

With all (1) to (5) of the above answered I am able to look at MCU contenders from at least three or four manufacturers.
 

Thread Starter

mishra87

Joined Jan 17, 2016
1,034
Nice of you to post a query and then walk away without saying what you learned from the responses.
Yes, This is my learning fourm and that is why I post thread here and ask my doubts..

From this post l learned a lot and I can take my decision to select a MCU..!!!
 

Thread Starter

mishra87

Joined Jan 17, 2016
1,034
(1) How many I/O pins do I need?
I have applications where the number of I/O pins required is 1 or 2. This narrows the search down to chips with a small footprint, such as 8-pin package.

Or if I need to drive four digits of 7-segment LED displays, I would want a chip with at lease one or two 8-bit ports.
Or do I need 32 or more I/O pins which eliminates all MCUs packages with low pin counts.

(2) How much code memory do I need?
I would know ahead of time the complexity of the project. This will dictate if I need 512, or 1K, 2K, or 16K bytes.
(Along with that I would have in mind how much RAM space the application will require.)

(3) Do I need 1-second or milli-second responses? Is my application math intensive? Do I have to perform FFT in real time?

(4) Is my application battery powered at 3V? Do I need to put the MCU into SLEEP mode in order to extend battery life?

Those are the important questions. At this stage, I know pretty well what MCU range I need to research. After I have answered all of the about, I can start looking at (5).

(5) What peripherals do I need? ADC, DAC, Timer, RTC, UART, DMA, micro-SD, USB, camera, touch-screen graphics LCD, EEPROM?

With all (1) to (5) of the above answered I am able to look at MCU contenders from at least three or four manufacturers.
Thanks Mrchips for your all technical information and valuable time.

Actually I am Hardware Engineer so I know all the technical praneters for selecting an MCU related to Hardware what you have mentioned in your previous thread...

I wanted to know about technical parameters related to software like..

1. How to select core of MCU.
2. Decision on choosing 8bit , 16 bit, 32 bit or 64 bit .
3. Which operating system to be choosed.
4. Some points related software probably I don't know .

Thanks you so much again !!!
 

MrChips

Joined Oct 2, 2009
30,701
Same as the above.

Decide on points (1) to (5) first.
What is your application?
Not all embedded systems require an operating system.
Your choice of 8, 16, 32, or 64-bit will be determined after you answer questions (1) to (5).
 

Thread Starter

mishra87

Joined Jan 17, 2016
1,034
Same as the above.

Decide on points (1) to (5) first.
What is your application?
Not all embedded systems require an operating system.
Your choice of 8, 16, 32, or 64-bit will be determined after you answer questions (1) to (5).
Thank you so much !!!
Much valuable information posted on this thread. I learned a lot .

Thanks !!!!
 

Wolframore

Joined Jan 21, 2019
2,609
I would like to add to the check off list:

how many timers do you need?
How many dedicated serial ports
How many interrupts

The LCD and other devices can be handled with I2C to reduce pin count

Also consider the ADC pin count

Voltage and speed

They come in so many flavors, just pick one that is more than you need and go from there. 32K is a lot of programming for an 8 bit microcontroller (there are 8 bit ones that go to 512K)... There are some projects where the calculations, speed, floating point and other requirements that push you to the 32 bit chips. 8 Bit seems old in today's world but it's incredible what you can accomplish with the 8 bit chips.
 
Top