Johanson's complete development kit for RF chipsets and applications solutions
How to Choose the Right Microcontroller for your Project
A microcontroller is a microcomputer present on a single integrated circuit. Microcontrollers are specifically designed to perform a specific operation in an embedded system, and it includes a processor, memory and input/output peripherals. They are used in vehicles, robots, office machines, medical instruments, communication devices, consumer appliances, toys and almost any device which have some intelligence in it.
There is wide range of microcontrollers from different manufacturers available in the market. All of these microcontrollers have unique features and comes with different package size, different capacity of the RAM and ROM, different instruction set, different architecture, registers etc. All these microcontrollers are different from each other. The microcontroller is the brain of every project and success or failure of the projects depends on it, and a single microcontroller can’t be used for every application because each application has different requirements. So choosing the right microcontroller for your project is always a daunting task as there are a number of technical features to consider.
So In this article, we will point out some of the important parameters (Like Architecture, memory, Interfaces and I/O etc.) to keep in mind while selecting a microcontroller.
Important Factors for Choosing a Microcontroller
1. Hardware Requirements
Before selecting a microcontroller for your project, the first thing you need to do is search everything about your project and make a list of all the external interfaces that are to be connected with Microcontroller along with the technical specifications about the project. Make a special note about the communication interfaces (Like UART) that your project needs. You should have an idea whether your project needs internet connection and how many output and input pins are required for your project. According to these factors you can shortlist the Microcontrollers suitable for your project.
2. Software Requirements
After the hardware requirements, you need to know about the software requirements for your project. So make a list of software requirements for the project like processing speed, processing power, timing constraints etc. According to the processing requirements you can decide whether you should go with an 80 MHz DSP or an 8 MHz 8051. There are also some other factors to be kept in mind like whether your algorithms require floating-point mathematics or it requires any high-frequency sensors?
3. Microcontroller Architecture
After knowing the hardware and software requirements for your project, you can decide the architecture that will be needed. Mainly two architectures are used for the design of microcontrollers;
- Von Neumann Architecture
- Harvard Architecture
Von Neumann architecture is based on the stored computer program concept, in which instruction and program data are stored in the same memory. So in Von Neumann architecture data transfer and instruction fetching can’t be performed at the same time so they should be scheduled at different times. On the other hand, Harvard architecture has separate storage for instruction and program, and it uses separate buses for the transmission of data and fetching of instructions.
Von-Neumann Architecture:
Harvard Architecture:
4. Memory Requirement
When selecting a Microcontroller, you should look out for the memory associated with microcontroller. Flash, RAM, ROM and EEPROM are critical components of any microcontroller. While choosing microcontroller make sure that you don’t run out of spaces for any variable and program.
RAM (i.e. Volatile memory) is used to store data temporarily and it can hold the data as long as the power supply is there. Program memory of the microcontroller stores the firmware for the microcontroller. Program memory does not lose its data when the microcontroller power is removed. The amount of program memory needed depends on the size of firmware files.
5. Costs and Power Requirements
Cost and Power requirements vary from one microcontroller to another. If your project requires complex functions and operations, then cost will be higher. If it is for a simple project than a cheap microcontroller can be used.
Power consumption is an important factor to consider if the project is powered from a battery. Microcontroller with higher processing power will consume more energy. So make sure the microcontroller you are choosing satisfies the power requirements of your project.
6. Bit Size
Microcontrollers are available in different bit rates like 8-bit, 16-bit, 32-bit and 64-bit rates. 64 bits is currently the maximum bit size possessed by any microcontroller. Bit size is very important in selecting a microcontroller for your project. The performance of the microcontroller increases with the increase in bit size. 8-bit microcontrollers have 8- data lines and the representation of every instruction, address, variable or register takes 8-bit. 8-Bit microcontrollers have only 255 unique memory locations and hence are used for smaller applications. While 32-bit microcontrollers have 4,294,967,295 unique memory locations that results in some extra features like SPI, I2C, floating-point units and process-related functions.
7. Support for Microcontroller
While choosing a microcontroller for your project lookout for community support and supporting documents including; code samples, reference designs, after-sales help and forums. If you face any problem during the step by step implementation of your project, you can read these documents, or you can ask for help through forums. It is important to select a microcontroller with a good development kit, so you can quickly start building prototype and learn the inner working of the controller.
Also consider the availability of Assembler, Debugger, a code efficient C compiler, emulator while choosing the microcontroller.
I hope that this article helps you to choose the right microcontroller for your project. There are some other factors that can also be considered in your search of microcontroller, but the above-mentioned factors are very important.