When selecting the right microcontroller for a project you must consider cost, performance, power consumption, and overall size. The availability of the proper software and hardware tools is also a prime consideration.

Support for the chosen platform is also very important – not just from the vendor, but from the community at large. It also helps if the chosen microcontroller has a readily available development board. You can also get the best microcontroller of your choice from st micro authorized distributors via https://www.elprotronic.com/pages/st.

Finally, development time can be significantly reduced if the selected microcontroller has extensive, fully debugged, software libraries with well-documented Application Programming Interfaces, or APIs.

In this article, only microcontrollers that generally meet the above criteria will be presented.

All modern microcontrollers share some basic features. On top of a processing unit, they have a certain amount of flash that is used to store the application code, some SRAM, and, in most cases, some EEPROM.

They need a clock source, and this is normally provided by either an internal resistor-capacitor (RC) oscillator, or by using an external crystal for more timing-critical applications. They have some digital IO ports, and at least one timer/counter.

Also, other than very low-end microcontrollers, most have at least one UART for serial communications. Beyond that, microcontrollers are distinguished by the amount of memory they have, the number and type of other peripherals integrated on the chip, and the speed at which they run user applications.

This is not just dependent on the raw clock speed; it also depends on the data width of the processor and any hardware acceleration features included.