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.
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 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 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:
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
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
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.
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.
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 .="" p="">
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.
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 memory
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.
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)
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.
An IDE consists of the following components:-
Source code Editor
Compiler
Debugger
Linker
Interpreter
Hex file converter
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.
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.
100>
No comments:
Post a Comment