Different Types of Microcontrollers and their Applications
What is a Microcontroller?
A microcontroller is a semiconductor IC (integrated circuit) chip consists of multiple functional block such as CPU, ROM, RAM, Timer, Counter & interrupts etc. It is essentially a small computer with all peripheral inside a single package.
Classification of Microcontrollers
Different types of microcontrollers are being used for automatic control of industries, automobiles, electronic medical devices, appliance & many other embedded systems. They are mostly preferred due to their compact size, low power consumption & low cost.
The microcontrollers are classified into different types on various basis:
On the Basis of Bus-Width
The Bus in a microcontroller refers to the parallel lines of connection between various components of the microcontroller. It transmits the instructions & data between the CPU, Memory & input/output ports. There are three types of buses inside a microcontroller; data bus, address bus, control bus.
The bus width refers to the number of parallel lines or wires or connections present in the said bus. Increasing the bus-width of a microcontroller increases its precision & its overall performance of the microcontroller. On the basis of bus width, the microcontrollers are divided into 8-Bit, 16-bit & 32-bit microcontrollers.
The bus width of such microcontrollers is 8 bit (1 byte) wide long. It means it can transfer & process the data of 8 bits in a single cycle. The main hindrance it poses is in the mathematical operations because its ALU (arithmetic logic unit) is also 8-bit. In order to process a large data of for example 16 bit, it uses multiple cycles to complete a simple mathematical function. It results in a poor performance of the overall logic circuit.
Another key feature of 8bit microcontroller is its Timer. An 8-bit timer has a maximum range of 0x00 (0) to 0xFF (255). It can cause inaccuracy in generating time delay functions.
Some of the common 8-bit microcontrollers are Intel 8031/8051, PIC1x and Motorola MC68HC11 families
The bus width of such microcontroller is 16 bit (2 byte) wide. It can transfer & process a data of 16 bits in a single cycle. Its 16-bit ALU is more efficient in performance comparing to 8-bit microcontroller. And its 16-bit timer provides a wide range of 0x0000 (0) to 0xFFFF (65535) which provides the best accuracy per cost for any application or projects that require Timer functions.
Common examples of a 16-bit microcontrollers are 8051XA, PIC2x, Intel 8096 and Motorola MC68HC12 families.
- Related Post: Difference Between Microprocessor and Microcontroller
A 32-bit microcontroller has a bus width of 32 bits or 4 bytes long. The performance & accuracy of such microcontroller is higher than 16-bit microcontroller but they are also expensive & consume a lot of power.
Its higher processing speed makes it the best candidate for performing a complex tasks such as audio & video signal processing, Image processing, etc. It can also support multiple peripheral required in any embedded system projects or applications such as Ethernet, Universal Serial Bus (USB), Universal Asynchronous Receiver-Transmitter devices (UARTS), and a Controller Area Network (CAN) bus.
The common 32-bit microcontrollers are Intel/Atmel 251 family, PIC3x.
On the Basis of Memory
The microcontroller is also classified into two types on the basis of essential memory blocks.
Embedded Memory Microcontroller
Such type of microcontroller has all the essential memory blocks or modules embedded inside a single package. Some of these functional blocks are program & data memory, Timers & counter, interrupts etc. These memory blocks are fixed & not expendables but a microcontroller having the feature of supporting external ROMs can extend its storage memory. These are compact in design.
External Memory Microcontroller
Such type of microcontroller does not have one of the essential memory blocks inside its chip & it needs to be connected externally to function properly. The use of external modules increases the size of the overall device.
On the Basis of Instruction Set Architecture
Instruction set or Instruction set architecture (ISA) is a part of microcontroller that commands the microprocessor to perform a specific function. The instruction set includes addressing modes, instructions, data types, registers, interrupts, and external I/O.
Here are some of the Examples of instruction in a microcontroller; read, write, copy/move, add, subtract, multiply, divide, increment, decrement, compare, call to address location etc.
A complex instruction set is made from combination of multiple instructions i.e. to execute a complex instruction; the microcontroller needs to execute various simple instructions. These instructions set are used for instruction that contains several steps including the use of several functional blocks. Some of the complex function in a microcontroller is moving data to & from multiple registers, copying strings of data, square root, log, sine etc.
- Related Post: Difference Between CPU and GPU – Comparison
According to the instruction set, the microcontrollers are classified into two types;
CISC (Complex Instruction Set Computer)
Such type of microcontroller’s CPU is designed to execute a single complex command. It can execute multiple instructions or steps using a single instruction. The advantage of CISC microcontroller is its small-sized program. But due to the large size of its instruction set with many addressing modes, it takes a multiple machine cycle to execute & causes longer time to perform. Another problem is the parallel execution of an instruction which is not possible in CISC.
RISC (Reduced Instruction Set Computers)
This type of microcontroller’s CPU is designed to execute smaller simple instructions. Since it takes one machine cycle to execute a single instruction, the number of instructions can be reduced to execute a complex task with higher speed than a CISC. Its instruction set size is small & the program code written for such MCU’s are usually very lengthy & consists of many lines.
On the Basis of Microcontroller Architecture:
The microcontroller architecture is a set of rules that defines the functionality & implementation of a microcontroller.
The program memory (ROM) is used for storing & accessing the code or the instruction. While the data memory (RAM) is used for storing & accessing the data used by these instructions. There are two types of architecture that differentiate from each other on the basis of using a single or separate memory for these data & instructions.
Harvard Architecture Microcontroller:
The Harvard architecture based microcontroller has physically separate memory storage for program code (instructions) & the data, known as the program memory & the data memory respectively. Thus, they have separate bus lines & can be accessed both at the same time. Therefore, the Harvard architecture based microcontroller can complete instruction in one machine cycle.
Due to the two physically separate bus lines, the complexity of the microcontroller design & the development cost increases. They are mostly used in modern microcontrollers & digital signal processing units.
- Related Post: Difference Between RAM and ROM – Comparison
Von Neumann (or Princeton) Architecture Microcontroller:
Von Neumann or Princeton architecture suggests to use a single memory for both the program & data storage. This concept was proposed by a mathematician Von Neumann in 1945 & It is the most used architecture in all computers, desktop & laptops to date.
There is only one bus required for accessing data & fetching instructions. Thus, both operations cannot be done at the same time & they must be scheduled. This is why von Neumann architecture based microcontroller takes two machine cycles to complete an instruction. Since it uses a single bus system, its design is simple & production is very low compared to Harvard architecture.
Various Types of Generally used Microcontrollers
PIC is an acronym for the peripheral interface controller & it is based on Harvard architecture. It is mainly used for the development of embedded electronics systems in vehicles, robotics, medical devices, vending machines, office machines & various other devices. It is a family of microcontrollers made by Microchip technology. It can be easily programmed through software using Assembly, C or Basic C language to complete a specific task.
It has a high-performance RISC (Reduced Instruction set computer) CPU with flash or Program memory & data memory. The program memory EEPROM (electrically erasable programmable read-only memory) is a reprogrammable memory. Since it is Harvard base architecture, it has separate program memory & data memory which increases its processing speed.
Most PICs have their internal oscillator of usually 8MHz or 16MHz. They are available in 8-bit, 16-bit & their latest models in a 32-bit wide data bus. The instructions set of PIC microcontrollers vary from 35 instructions in low-end MCUs to 80 instructions in high-end MCU. The program instruction set width can be 12, 14, 16 & 24 bit long. It varies by family & model of PIC microcontroller. They are available in both SMD (surface mount device) & DIP (dual inline package) packaging having a minimum 6 to maximum 144 pins.
Due to its low cost, low power consumption & high speed, they are used in almost every electronic device.
The most common type of PIC microcontroller is PIC16F877A. Following are some of the most prominent features of PIC16F877A;
- It is a 40 pin IC in DIP packaging with 33 pins available for input/output.
- There is no internal oscillator, so an external oscillator is mandatory to generate a clock cycle.
- Since there is no internal clock, using an external clock up to 20 MHz results in faster operation.
- It has smaller instructions set of 35.
- It has 8 bit ADC with 8 channels for interfacing 8 analog inputs at the same time.
- It has 3 Timers including two 8-bit Timers & one 16-bit Timer.
- Its sleep mode feature provides ultra-low power consumption to extend battery life.
- The operating voltage ranges from 4.2v to 5.5v.
The 8051 is the most common & cheap microcontroller made by Intel corporation in 1981. It is based on CISC Harvard architecture for having separate programs & data memory. The most prominent features of 8051 microcontrollers include;
- It is an 8bit microcontroller available in 40 pin DIP (Dual inline package).
- It has 4Kb of on-chip programmable ROM for storing program code.
- It has 128 bytes of on-chip RAM for temporary data storage. However, it can be extended by using external memory up to 64Kb.
- 32 out of its 40 pins are Input/output pins that are divided into four parallel 8-bit ports. & each of these bits is programmable & accessible.
- It has 2 16-bit timers/Counter & 2 external interrupts.
- It may also have various special features such as UARTs, ADC, Op-amp, etc
- The program for 8051 is written in C language which is converted into assembly language for the microcontroller to understand
The 8051 Microcontroller is commonly used in electronics projects mainly for learning purposes. It is used for performing specific tasks such as fire alarms, temperature sensing, motor control, automobiles, light-sensing applications & RTC controlled application.
AVR stands for Alf and Vegard’s RISC Processor because it was first developed by Alf-Egil Bogen & Vegard Wollan, Norwegian students. It is a family of microcontroller developed by Atmel since 1996 & microchip since 2016.
It is based on modified Harvard architecture that offers separate storage space for program & data. AVR has a very high speed when compared with PIC or 8051 microcontroller.
The AVR microcontrollers are generally available in the following families;
- Application-specific AVR
- 32-bit AVR
The most common AVR microcontrollers belong to the MegaAVR family known as ATmega16, ATmega32 & ATmega64. The difference between these microcontrollers is their flash storage space of 16KB, 32Kb & 64KB identified by the last number in their name.
The common feature of AVR ATmega32 microcontrollers are;
- It is an 8-bit microcontroller with 40 pins DIP (dual in-line package)
- The total number of input/output pins is 32 which are divided into four 8-bit ports.
- It has an on-chip reprogrammable flash ROM of 32 KB with RAM of 1KB for data.
- It contains 3 Timers/counters including two 8-bit timers & one 16-bit timer.
- A 10-bit ADC with 8 analog channels.
- It has 4 PWM channels for generating pulses.
- It has an internal oscillator of 8MHz which can be scaled down.
- Most popular AVR used due to its fast speed & low cost among the students & hobbyists.
ARM is an acronym for Advanced RISC Machine & it is a family of microprocessor core available in both Harvard & von Neumann based architecture. The Harvard architecture has separate buses for accessing the program (ROM) & Data (RAM) Memory while von Neumann architecture uses a single memory for both thus compromising the speed. Basically the ARM cores are microprocessors designed to be used in chips such as microcontrollers.
The ARM processor is based on RISC architecture which offers fast instruction execution. They are a popular choice for extensive use in consumer handheld electronic devices such as mobile phones, tablets, multimedia players, and other wearable devices.
There are different types of ARM processors specifically designed for various purposes;
Cortex-A: these processors are built for advanced operating systems and they offer the best performance;
Cortex-R: these processors have fast response time thus they are used for real-time applications.
Cortex-M: Cortex-M processor are specifically built for microcontrollers,
- The most common type of ARM microcontroller is ARM Cortex-M.
- It is a family of ARM processors built for microcontrollers available at different processing speeds.
- Cortex M0 processor (based on von Neumann architecture) offers low speed at a very low cost mostly used in development boards.
- While it’s improved models such as Cortex-M3 (based on Harvard architecture) is used in the renowned Adruino boards.
- It is a 32-bit RISC processor
- It is energy efficient having higher performance.
RENESAS stands for Renaissance Semiconductor for Advanced Solutions & they offer microprocessor & microcontrollers having best performance features in addition to its ultra-low power consumption & compact packaging.
Due to the availability of the largest range of memory capacity & pin count, they are used in various advance automotive control embedded applications. The RL78 & RX family microcontrollers are most popular where the former is used for its low power consumption feature while the latter is famous for its high performance.
Some of the most prominent feature of RENESAS RL78 & RX family microcontrollers;
- They are based on CISC Harvard architecture to offer high performance.
- The RL78 family is available in an 8-bit & 16bit microcontroller while RX is a 32-bit microcontroller.
- The RL78 family is a low power microcontroller while RX offers high performance & efficiency.
- The pin count for RL78 Family ranges from 20 pins to 128 pins while RX microcontrollers are available in 48 pins to 176 pin package.
- The flash memory is also scaled from 16KB to a maximum of 512KB for RL78 & 32KB to 2MB for RX family microcontrollers.
- The RAM in the RX family ranges from 2KB to 128KB.
Applications of Microcontrollers
Microcontrollers can be used to complete any task by interfacing sensors, actuators, motors & appliances, etc. they are used in embedded systems based applications to control a specific task automatically. Following are some of the applications of microcontrollers;
- Smart Phones & handheld mobile devices
- Fire detection, Security Alarms & safety devices (including temperature & smoke sensing)
- Electronic Measurements Instruments
- Domestic Appliances such as Microwave oven, Alarm clock, Washing machines, air conditioners.
- Industrial automation (Conveyor belts, sorting, pick & place bots, etc)
- Industrial Instrumentation & measurement devices such as volt & current meter, object detection, inspection & sorting devices,
- Communication devices
- Motor control applications
- Test and measurement
- Medical Devices such as glucose meter, Blood pressure machine, MRI, CT & X-ray machines etc.
- Difference Between Online UPS and Offline UPS – Which One is Better?
- Difference between Electrical and Electronics Engineering
- How to Make and LED Project with ATMega Microcontrollers?
- How to Program PIC18 Microcontroller in C?
- What is Raspberry Pi? Creating Projects using Raspberry Pi
- What is ATMega Microcontrollers & How to Make an LED Project with it?