Ways to Select a Best Microcontroller for Microcontroller based Projects

Do you know how to select the best microcontroller for microcontroller based projects? Selecting the proper microcontroller for a given application is one of the most critical decisions, which controls the success or failure of the task.

There are different types of microcontrollers available and if you have decided on which series is to use, you can easily start your own embedded system design. Engineers must have their own criteria in order to make the right selection.

Here in this article, we shall discuss the basic considerations in selecting a microcontroller.

Microcontrollers for embedded system design
Microcontrollers for embedded system design

In many cases, in lieu of having a detailed knowledge about a suitable microcontroller for the project, people often randomly select a microcontroller. This is however a bad idea.

The foremost priority to choose a microcontroller is to have information of the system like block diagram, flowchart, and input/output peripherals.

Here are the top 7 ways which should be followed to ensure the right microcontroller is selected.

Bit selection of microcontroller

The microcontrollers are available in different bit rates like 8-bit, 16-bit and 32-bit rates. The number of bits refers to size of data lines which limit the data. Choosing a best microcontroller for embedded system design in important in terms of bit selection. The performance of the microcontroller increases with the bit size.

8-Bit microcontrollers:

8 bit microcontrollers
8 bit microcontrollers

8-bit microcontrollers have 8- data lines which can send and receive 8-bit data at a time. It doesn’t have additional functions like read/write; serial communication etc. These are built with less on-chip memories and hence are used for smaller applications. They are available at cheaper cost. However in case your project complexity increases, then go for another higher bit microcontroller.

16-Bit microcontroller:

16 bit microcontroller
16 bit microcontroller

16-bit controllers have 16-data lines which can send and receive 16-bit data at a time. It doesn’t have any additional functions compared to 32-bit controllers. It is same like 8-bit microcontroller but it is added with few additional features.

The performance of a 16 bit microcontroller is faster than 8-bit controllers and it is cost effective. It is applicable for smaller applications. It is an advanced version of 8-bit microcontrollers.

32-Bit Microcontroller:

32 bit microcontroller
32 bit microcontroller

The 32-bit microcontrollers have 32-data lines which are used to send and receive 32-bit data at a time. The 32- microcontrollers have some additional futures like SPI, I2C, floating point units and process related functions.

The 32-bit microcontrollers are built with maximum range of On-chip memories and hence are used for larger applications. The performance is very fast and cost effective. They are an advanced version of 16-bit microcontrollers.

Family Selection of Microcontroller

There are several vendors manufacturing different architectures of microcontroller. Hence each microcontroller has a unique instruction and register set and no two microcontrollers are similar to each other.

A program or code written for one microcontroller will not run on the other microcontroller. Different microcontroller based projects require different families of microcontrollers.

Different families of microcontrollers are 8051 family, AVR family, ARM family, PIC family and many more.

AVR Family of microcontrollers

AVR family of microcontrollers
AVR family of microcontrollers

An AVR microcontroller accepts instruction size of 16 bits or 2 bytes. It consists of flash memory which contains the 16 bit address. Here the instructions are stored directly.

AVR microcontrollers-ATMega8, ATMega32 are widely used.

PIC family of microcontrollers

PIC family of microcontrollers
PIC family of microcontrollers

A PIC microcontroller each instruction accepts 14 bit instruction. The flash memory can store address of 16 bit. If first 7 bits are passed to the flash memory, the remaining bits can be stored later.

However if 8 bits are passed, the remaining 6 bits are wasted. On a light note, this actually depends on the manufacturing vendors.

Thereby selecting a proper family of microcontroller for embedded system design is very important in the process.

Architecture Selection of Microcontroller 

The term ‘architecture’ defines a combination of peripherals which are used to perform the tasks. There are two types of microcontroller architecture for microcontroller based projects.

Von Neumann Architecture

The Von Neumann Architecture is also known as Princeton Architecture. In this architecture the CPU communicates with a single data and address bus, to RAM and ROM. CPU fetches the instructions from RAM and ROM simultaneously.

Von-Neumann Architecture
Von-Neumann Architecture

These instructions are executed sequentially through a single bus and hence it takes more time to execute each instruction. Thus we can say that the process of the Von Newman architecture is very slow.

Harvard Architecture

In Harvard architecture, the CPU has two separate bus; those are address bus and data bus to communicate with the RAM and ROM. The CPU fetches and executes the instructions from the RAM and ROM memories through a separate data bus and address bus.Hence it takes lesser time to execute each instruction, making this architecture highly popular.

Harvard Architecture
Harvard Architecture

Thus, for any embedded system design, the best microcontroller is mostly the one with Harvard architecture.

Instruction Set selection of microcontroller

The instruction set is a set of basic instructions like arithmetic, conditional, logical etc that are used to perform basic operations in the microcontroller. Microcontroller architecture works on the basis of instruction set.

For all the microcontroller based projects, microcontrollers based on RISC or CISC instruction set are available.

RISC based architecture

RISC stands for reduced instruction set computer. A RISC instruction set performs all arithmetic, logical, conditional, Boolean operations in one or two instruction cycles. The range of the RISC instruction set is <100.

RISC based architecture
RISC based architecture

A RISC based machine executes instructions faster because there is no microcode layer. The RISC architecture contains special load store operations that are used to move the data from internal registers and memory.

A RISC chip is made with lesser number of transistors, hence the cost is low. For any embedded system design, a RISC chip is mostly preferred.

CISC based architecture

CISC stands for complex instruction set computer. The CISC instruction set takes four or more instruction cycles to execute all arithmetic, logical, conditional, Boolean instructions. The range of a CISC instruction set is >150.

CISC based architecture
CISC based architecture

A CISC based machine executes the instructions at a slower rate compared to RISC architecture, because here instructions are converted into small code size before being executed.

Memory selection of the microcontroller

The memory selection is very important in choosing the best microcontroller, because the system performance depends on the memories.

Each microcontroller can contain any one type of memories, which are:
 On-Chip memory
 Off-chip memory

On-chip and Off-chip memory
On-chip and Off-chip memory

On-chip memory

The on-chip memory refers to any memory like RAM, ROM that is embedded on the microcontroller chip itself. A ROM is a type of storage device that can permanently store the data and application within it.

A RAM memory is a type of memory that is used to store the data and programs on temporary basis. Microcontrollers with on-chip memory offer high speed data processing but storage memory is limited. So off chip microcontrollers are used to achieve the high memory storage capabilities.

Off-Chip memory

The off-chip memory refers to any memory like ROM, RAM, and EEPROM which are connected externally. The external memories are some times called secondary memories which are used to store large quantity of data.

Due to this external memory controllers speed is reduced while retrieving and storing the data. This external memory needs external connections so system complexity is increases.

Chip selection of microcontroller

Chip selection is very important in developing a microcontroller based project. The IC simply is called a package. The integrated circuits are shielded to allow easy handling and protect the devices from damages. Integrated circuits are made up of thousands of basic components  in electronics such as transistors, diodes, resistors, capacitors.

The microcontrollers are available in many different types of ICs packages and each has their own advantage and disadvantage. The most popular IC is the Dual In-line Package (DIP), used mostly in any embedded system design.

DIP (Dual in line) Microcontroller
DIP (Dual in line) Microcontroller

1. DIP (Dual In-line Package)
2. SIP (Single In-line Package)
3. SOP (Small Outline package)
4. QFP (quad flat Package)
5. PGA (Pin Grid Array)
6. BGA (Ball Grid Array)
7. TQFP(Tin Quad flat Package)

 IDE selection of the microcontroller

IDE stands for integrated development environment and it is a software application used in most of the microcontroller based projects. IDE normally consist of a source code editor, compiler, interpreter and debugger. It is used to develop the embedded applications. IDE is used to program a microcontroller.

IDE selection of microcontrollers
IDE selection of microcontrollers

 An IDE consists of the following components:-

Source code Editor
Compiler
Debugger
Linker
Interpreter
Hex file converter

Editor

The source code editor is a text editor which is specially designed for the programmers to write the source code of applications.

Compiler

A compiler is program which translates the high level language (C, Embedded C) into machine level language (0’ and 1’s format). The compiler first scans the entire program and then translates the program into the machine code which will be executed by the computer.

There are two types of compilers:-

Native Compiler

When the application program is developed and compiled on the same system, it is known as a native compiler. EX: C, JAVA, Oracle.

Cross compiler

When the application program is developed on a host system and compiled on the target system, it is called a cross compiler. All microcontroller based projects are developed by the cross compiler. Ex; Embedded C, assemble, microcontrollers.

Debugger

A debugger is a program that is used to test and debug the other programs such as target program. Debugging is a process of finding and reducing number of bugs or defects in the program.

Linker

The linker is a program that takes one or more objective files from compiler and combines them into the single executable program.

Interpreter

An interpreter is a piece of the software this converts the high level language into machine readable language in a line by line manner. Each instruction of the code is interpreted and executed separately in sequential manner. If any error is found in a part of the instruction, it will stop interpretation of the code.

Different microcontroller with applications

Here is summary of a table giving information about different microcontrollers and the projects they can be used in.

Different microcontrollers for different applications
Different microcontrollers for different applications

All set to choose the best microcontroller for your project? We hope by now, you must be having a clear picture in your mind, regarding which microcontroller is going to be best suitable for your embedded system. For your reference, a variety of embedded projects can be found in the website of edgefxkits.

Here is a basic question for you – For most of the microcontroller based projects, combining all the best features we have mentioned above, which family of microcontroller is mostly preferred and why?

Kindly give your answers along with your feedback in the comment section given below.

Photo credits:

Microcontrollers for embedded system design by designsystems
8 bit microcontrollers by rapidonline
16 Bit Microcontroller by directindustry
32 Bit Microcontroller by rapidonline
AVR family of microcontrollers byelectroline
PIC family of microcontrollers by engineersgarage
Harvard Architecture by eecatalog.com
RISC based architecture by electronicsweekly.com
CISC based architecture by studydroid.com
DIP (Dual in line) Microcontroller by t2.gstatic.com
IDE selection of microcontrollers by tbn2.gstatic.com

2 Comments

  1. Tarun, thanks for putting together this awesome overview on microcontrollers.

    I like your description of the architecture and what is going on inside micros. This article makes it a lot easier to understand how to take advantage of the hardware.

    You even cover consideration of the IDE of the micro that you choice. This is often overlooked in the beginning, but can become painful down the road.

    Personally, I love the Microchip PIC. I’ve done many projects with the 16 and 18 series, and they are great. Thanks for putting this together.

    Mike

Add Comment