By definition, a micro controller (sometimes abbreviated µC, uC or MCU) is a single chip containing at least a CPU, memory, and programmable I/O peripherals. Sometimes it also has a timer unit. Basically a micro controller can be described as a small computer on a chip. It is designed for embedded application or specific purpose. Thus, it is programmed to do certain limited task.
A micro controller usually include, but not limited to, serial communication capabilities, interrupt controls and analog I/O capabilities.
There are many manufacturers of microcontroller, for example:
- ATMEL Corp.
- Freescale Semiconductor
- Microchip Technology
- Texas Instruments Inc.
- Renesas Technology Corp.
A complete list can be read here: http://en.wikipedia.org/wiki/List_of_common_microcontrollers
Micro Controller Components / Peripherals
Processor – The processor refers to the Central Processing Unit (CPU) of the micro controller. It contains the Arithmetic Logic Unit (ALU), Control Unit, Instruction Decoder and some Special Registers (Stack Pointer, Status Register, Program Counter, etc.).
Volatile Memory – This is memory used by ht micro controller for temporary data storage, system setup and peripherals configurations. Memory in this category includes SRAM and DRAM. AVR micro controllers utilize SRAM.
Non-Volatile Memory – This is memory used by the micro controller to store programs. Data can also be stored in this memory but the access time is much slower than that of RAM. Memory in this category includes ROM, PROM, EPROM, EEPROM and FLASH. The AVR micro controllers utilize Flash for program storage, some AVR controllers contains a bit of EEPROM as well.
Timer Module – Most micro controllers have at least one timer/counter peripheral. Timer/Counter modules are used to perform timing or counting operations in the controller. These include time stamping, measuring intervals, counting events, etc.
Interrupt Module – Interrupts enable the micro controller to monitor certain events in the background while executing and application program and react to the event if necessary pausing the original program. This is all coordinated by the interrupt module.
Digital I/O Module – This module allows digital/logic communication with the micro controller and the external world. Communication signals are that of TTL or CMOS logic.
Analog I/O Modules – These modules are use to input/output analog information from/to the external world. Analog modules include Analog Comparators and Analog-to-Digital Converters.
Serial Modules – These modules are used for serial communication with the external world. An example is the USART peripherial which utilizes the RS232 standard.
Comparing Micro controller and Microprocessor
At the basic level, a microprocessor and micro controller exist for performing some operations. They are fetching instructions from the memory and executing these instruction (arithmetic or logic operations) and the result of these executions are used to serve to output devices. Instructions are electronic instructions represented by a group of bits. These instructions are always fetched from their storage area.
First let’s take a look at block diagram of a microprocessor based-system and then look at micro controller.
You will se a microprocessor has many support device like Read only memory, Read-Write memory, Serial interface, Timer, Input/Output ports etc. All these support devices are interfaced to microprocessor via a system bus. So one point is clear now, all support devices in a microprocessor based system are external. The system bus is composed of an address bus, data bus and control bus.
Now look at micro controller.
Now you see the point which differentiate microcontroller to microprocessor. All the support devices like Read only memory, Read – Write memory, Timer, Serial interface, I/O ports are internal. There is no need of interfacing these support devices and this saves a lot of time for the individual who creates the system. It is nothing but a microprocessor system with all support devices integrated inside a single chip.
Now after see the difference you might be thinking that if a microcontroller is the complete system in a compact size, do we still need microprocessor? Well, MCU is usually application specific or in other words, specific to some purposes that don’t require higher resources. Typical MCU gives us limited resource, enough for doing some task. For example, it is worthless to spend GigaHertz processor with dozens of HDD and RAMs just for powering a LED. It is wiseful to use a 16MHz single core processor, 16KB Flash, 1 KB RAM etc which gives lower cost. But in case of Microprocessor (or MPU), it can handle huge loads, features multitasking, and do more complex operation easily.
Some Microcontroller Applications
To give more insight of what microcontroller can do, let’s mention some examples of things that can be built using microcontroller:
- alarm clocks, watch
- telecommunications & networking – phones, mobile phones, wireless router, etc
- day to day applications – washing machines, elevators, microwave ovens, automatic electric heaters
- automotive – lighting, braking, speed control
- traffic signals lamp
- harddisk, pendrives, printers, mouse, cameras, small electronic machines