MICROCONTROLLERS
1. WHAT IS A MICROCONTROLLER?
A microcontroller is an integrated circuit (IC) that can be programmed to perform a set of
functions to control a collection of electronic devices.
A self-contained system in which a processor, support, memory, and input/output (I/O) are
all contained in a single package.
Being programmable is what makes the microcontroller unique.
2. HISTORY
Further information: MOS integrated circuit and Microprocessor chronology
The origins of both the microprocessor and the microcontroller can be traced back to the
invention of the MOSFET (metal-oxide-semiconductor field-effect transistor), also known as
the MOS transistor. It was invented by Mohamed M. Atalla and Dawon Kahng at Bell Labs in
1959, and first demonstrated in 1960. The same year, Atalla proposed the concept of the MOS
integrated circuit, which was an integrated circuit chip fabricated from MOSFETs. By 1964,
MOS chips had reached higher transistor density and lower manufacturing costs than bipolar
chips. MOS chips further increased in complexity at a rate predicted by Moore's law, leading
to large-scale integration (LSI) with hundreds of transistors on a single MOS chip by the late
1960s. The application of MOS LSI chips to computing was the basis for the first
microprocessors, as engineers began recognizing that a complete computer processor could be
contained on a single MOS LSI chip.
The first multi-chip microprocessors, the Four-Phase Systems AL1 in 1969 and the Garrett
AiResearch MP944 in 1970, were developed with multiple MOS LSI chips. The first single-
chip microprocessor was the Intel 4004, released on a single MOS LSI chip in 1971. It was
developed by Federico Faggin, using his silicon-gate MOS technology, along with Intel
engineers Marcian Hoff and Stan Mazor, and Busicom engineer Masatoshi Shima. It was
followed by the 4-bit Intel 4040, the 8-bit Intel 8008, and the 8-bit Intel 8080. All of these
processors required several external chips to implement a working system, including memory
and peripheral interface chips. As a result, the total system cost was several hundred (1970s
US) dollars, making it impossible to economically computerize small appliances. MOS
Technology introduced sub-$100 microprocessors, the 6501 and 6502, with the chief aim of
addressing this economic obstacle, but these microprocessors still required external support,
memory, and peripheral chips which kept the total system cost in the hundreds of dollars.
3. Development
One book credits TI engineers Gary Boone and Michael Cochran with the successful creation
of the first microcontroller in 1971. The result of their work was the TMS 1000, which
became commercially available in 1974. It combined read-only memory, read/write memory,
processor and clock on one chip and was targeted at embedded systems.
During the early-to-mid-1970s, Japanese electronics manufacturers began producing
microcontrollers for automobiles, including 4-bit MCUs for in-car entertainment, automatic
wipers, electronic locks, and dashboard, and 8-bit MCUs for engine control.
Partly in response to the existence of the single-chip TMS 1000, Intel developed a computer
system on a chip optimized for control applications, the Intel 8048, with commercial parts
first shipping in 1977. It combined RAM and ROM on the same chip with a microprocessor.
Among numerous applications, this chip would eventually find its way into over one billion
PC keyboards. At that time Intel's President, Luke J. Valenter, stated that the microcontroller
was one of the most successful products in the company's history, and he expanded the
microcontroller division's budget by over 25%.
Most microcontrollers at this time had concurrent variants. One had EPROM program
memory, with a transparent quartz window in the lid of the package to allow it to be erased by
exposure to ultraviolet light. These erasable chips were often used for prototyping. The other
variant was either a mask programmed ROM or a PROM variant which was only
programmable once. For the latter, sometimes the designation OTP was used, standing for
"one-time programmable". In an OTP microcontroller, the PROM was usually of identical
type as the EPROM, but the chip package had no quartz window; because there was no way
to expose the EPROM to ultraviolet light, it could not be erased. Because the erasable
versions required ceramic packages with quartz windows, they were significantly more
expensive than the OTP versions, which could be made in lower-cost opaque plastic
packages. For the erasable variants, quartz was required, instead of less expensive glass, for
its transparency to ultraviolet light to which glass is largely opaque but the main cost
differentiator was the ceramic package itself.
In 1993, the introduction of EEPROM memory allowed microcontrollers (beginning with the
Microchip PIC16C84) to be electrically erased quickly without an expensive package as
required for EPROM, allowing both rapid prototyping, and in-system programming.
(EEPROM technology had been available prior to this time, but the earlier EEPROM was
more expensive and less durable, making it unsuitable for low-cost mass-produced
microcontrollers.) The same year, Atmel introduced the first microcontroller using Flash
memory, a special type of EEPROM. Other companies rapidly followed suit, with both
memory types.
Nowadays microcontrollers are cheap and readily available for hobbyists, with large online
communities around certain processors.
4. Microcontroller Packaging popular for students:
PIC 12F508, PIC 16F84A, PIC 16C72,
Motorola 68HC05B16, PIC 16F877, Motorola 68000
PIC 12F508: PIC 16C72:
PIC 16F84A: PIC 16F877:
5. Higher integration
Die of a STM32F100C4T6B ARM Cortex-M3 microcontroller with 16 kilobytes flash
memory, 24 MHz central processing unit (CPU), motor control and Consumer Electronics
Control (CEC) functions. Manufactured by STMicroelectronics.
Micro-controllers may not implement an external address or data bus as they integrate RAM
and non-volatile memory on the same chip as the CPU. Using fewer pins, the chip can be
placed in a much smaller, cheaper package.
Integrating the memory and other peripherals on a single chip and testing them as a unit
increases the cost of that chip, but often results in decreased net cost of the embedded system
as a whole. Even if the cost of a CPU that has integrated peripherals is slightly more than the
cost of a CPU and external peripherals, having fewer chips typically allows a smaller and
cheaper circuit board, and reduces the labor required to assemble and test the circuit board, in
addition to tending to decrease the defect rate for the finished assembly.
6. Programming environments
Microcontrollers were originally programmed only in assembly language, but various high-
level programming languages, such as C, Python and JavaScript, are now also in common use
to target microcontrollers and embedded systems.[31] Compilers for general purpose
languages will typically have some restrictions as well as enhancements to better support the
unique characteristics of microcontrollers. Some microcontrollers have environments to aid
developing certain types of applications. Microcontroller vendors often make tools freely
available to make it easier to adopt their hardware.
Microcontrollers with specialty hardware may require their own non-standard dialects of C,
such as SDCC for the 8051, which prevent using standard tools (such as code libraries or
static analysis tools) even for code unrelated to hardware features. Interpreters may also
contain nonstandard features, such as MicroPython, although a fork, CircuitPython, has
looked to move hardware dependencies to libraries and have the language adhere to a more
CPython standard.
Interpreter firmware is also available for some microcontrollers. For example, BASIC on the
early microcontrollers Intel 8052;[32] BASIC and FORTH on the Zilog Z8[33] as well as
some modern devices. Typically these interpreters support interactive programming.
Simulators are available for some microcontrollers. These allow a developer to analyze what
the behavior of the microcontroller and their program should be if they were using the actual
part. A simulator will show the internal processor state and also that of the outputs, as well as
allowing input signals to be generated. While on the one hand most simulators will be limited
from being unable to simulate much other hardware in a system, they can exercise conditions
that may otherwise be hard to reproduce at will in the physical implementation, and can be the
quickest way to debug and analyze problems.
Recent microcontrollers are often integrated with on-chip debug circuitry that when accessed
by an in-circuit emulator (ICE) via JTAG, allow debugging of the firmware with a debugger.
A real-time ICE may allow viewing and/or manipulating of internal states while running. A
tracing ICE can record executed program and MCU states before/after a trigger point.
7. TYPE OF MICROCONTROLLER
1) ACCORDING TO BITS
a. 4-BIT MICROCONTROLLERS
ALU performs arithmetic and logical operations on a nibble (4-bits) at an instruction.
Internal bus width of 4-bit.
Small size, minimum pin count and low cost controllers.
Low power consumption and used for low end applications like LED & LCD display
drivers, portable battery chargers.
Examples: Renasa M34501 256 and ATAM862 series from ATMEL.
b. 8-BIT MICROCONTROLLER
ALU performs arithmetic and logical operations on a byte (8-bits) at an instruction.
Internal bus width of 8-bit.
Examples: Intel 8051 family and Motorola MC68HC11 family.
c. 16-BIT MICROCONTROLLER
ALU performs arithmetic and logical operations on a word (16-bits) at an instruction.
Internal bus width of 16-bit microcontroller is of 16-bit.
Enhanced performance, computing capability and greater precision as compared to the 8-
bit microcontrollers.
Examples: Intel 8096 family, Motorola MC68HC12 and MC68332 families.
d. 32-BIT MICROCONTROLLER
ALU performs arithmetic and logical operations on a double word (32-bits) at an
instruction.
Internal bus width of 32-bit.
Much more enhanced performance, computing capability with greater precision as
compared to 16-bit microcontrollers.
Examples: Intel 80960 family, Motorola M683xx and Intel/Atmel 251 family.
2) ACCORDING TO MEMORY/DEVICES
a. EMBEDDED MICROCONTROLLERS
An embedded system has a microcontroller unit that has all the
functional blocks (including program as well as data memory)
available on a the same chip.
Example: 8051 having Program & Data Memory, I/O Ports,
Serial Communication, Counters and Timers and Interrupt
Control logic on the chip.
b. EXTERNAL MEMORY MICROCONTROLLERS
An external system has a microcontroller unit that does not
have all the functional blocks available on a chip.
All or part of the memory units are externally interfaced using
an interfacing circuit called the glue circuit.
Example: 8031 has no program memory on the chip.
8. Memory technology
Two different kinds of memory are commonly used with microcontrollers, a non-volatile
memory for storing firmware and a read-write memory for temporary data.
Data
From the earliest microcontrollers to today, six-transistor SRAM is almost always used as the
read/write working memory, with a few more transistors per bit used in the register file.
FRAM or MRAM could potentially replace it as it is 4 to 10 times denser which would make
it more cost effective.
In addition to the SRAM, some microcontrollers also have internal EEPROM for data storage;
and even ones that do not have any (or not enough) are often connected to external serial
EEPROM chip (such as the BASIC Stamp) or external serial flash memory chip.
Firmware
The earliest microcontrollers used mask ROM to store firmware. Later microcontrollers (such
as the early versions of the Freescale 68HC11 and early PIC microcontrollers) had EPROM
memory, which used a translucent window to allow erasure via UV light, while production
versions had no such window, being OTP (one-time-programmable). Firmware updates were
equivalent to replacing the microcontroller itself, thus many products were not upgradeable.
Motorola MC68HC805 was the first microcontroller to use EEPROM to store the firmware.
EEPROM microcontrollers became more popular in 1993 when Microchip introduced
PIC16C84 and Atmel introduced an 8051-core microcontroller that was first one to use NOR
Flash memory to store the firmware. Today's microcontrollers almost exclusively use flash
memory, with a few models using FRAM, and some ultra-low-cost parts still use OTP or
Mask-ROM.
3) ACCODING TO INSTRUCTION SET
CISC (COMPLEX INSTRUCTION SET COMPUTER)
ARCHITECTURE MICROCONTROLLERS
Has an instruction set that supports many addressing modes for the arithmetic and logical
instructions, data transfer and memory accesses instructions.
Many of the instructions are macro like.
Allows the programmer to use one instruction in place of many simpler instructions.
Example: Intel 8096 family.
RISC (REDUCED INSTRUCTION SET COMPUTER)
ARCHITECTURE MICROCONTROLLERS
Contains an instruction set that supports fewer addressing modes for the arithmetic and
logical instructions and for data transfer instructions.
Allows simultaneous access of program and data.
Instruction pipelining increases execution speed
Allow each instruction to operate on any register or use any addressing mode.
Smaller chip and pin count.
Very low power consumption.
4) ACCORDING TO MEMORY ARCHITECTURE
The architectures of microcontrollers differ in the way data and programs are stored and
accessed.
a. VON-NEUMAN /PRINCETON ARCHITECTURE
Single data bus that is used to fetch both instructions and data.
Program instructions and data are stored in a common main memory.
When such a controller addresses main memory, it first fetches an instruction, and then it
fetches the data to support the instruction.
Simplifies the microcontroller design because only one memory is accessed.
The weakness is that two separate fetches can slow up the controller’s operation.
Example: Motorola 68HC11.
b. HARVARD ARCHITECTURE
Separate data bus and an instruction bus.
Execution occur in parallel.
Much faster execution than Von-Neuman architecture.
Design complexity.
Example: intel MCS-51 family and PIC microcontrollers.
9. GENERAL MICROCONTROLLER ARCHITECTURE
Higher integration
Micro-controllers may not implement an external address or data bus as they integrate RAM
and non-volatile memory on the same chip as the CPU. Using fewer pins, the chip can be
placed in a much smaller, cheaper package.
Integrating the memory and other peripherals on a single chip and testing them as a unit
increases the cost of that chip, but often results in decreased net cost of the embedded system
as a whole. Even if the cost of a CPU that has integrated peripherals is slightly more than the
cost of a CPU and external peripherals, having fewer chips typically allows a smaller and
cheaper circuit board, and reduces the labor required to assemble and test the circuit board, in
addition to tending to decrease the defect rate for the finished assembly.
A micro-controller is a single integrated circuit, commonly with the following features:
Central processing unit – ranging from small and simple 4-bit processors to complex
32-bit or 64-bit processors
Volatile memory (RAM) for data storage
ROM, EPROM, EEPROM or Flash memory for program and operating parameter
storage
Discrete input and output bits, allowing control or detection of the logic state of an
individual package pin
Serial input/output such as serial ports (UARTs)
Other serial communications interfaces like I²C (Inter-Integrated Circuit), Serial
Peripheral Interface and Controller Area Network for system interconnect
Peripherals such as timers, event counters, PWM generators, and watchdog
Clock generator – often an oscillator for a quartz timing crystal, resonator or RC
circuit
Many include analog-to-digital converters, some include digital-to-analog converters
In-circuit programming and in-circuit debugging support
This integration drastically reduces the number of chips and the amount of wiring and circuit
board space that would be needed to produce equivalent systems using separate chips.
Furthermore, on low pin count devices in particular, each pin may interface to several internal
peripherals, with the pin function selected by software. This allows a part to be used in a
wider variety of applications than if pins had dedicated functions.
Micro-controllers have proved to be highly popular in embedded systems since their
introduction in the 1970s.
Some microcontrollers use a Harvard architecture: separate memory buses for instructions and
data, allowing accesses to take place concurrently. Where a Harvard architecture is used,
instruction words for the processor may be a different bit size than the length of internal
memory and registers; for example: 12-bit instructions used with 8-bit data registers.
The decision of which peripheral to integrate is often difficult. The microcontroller vendors
often trade operating frequencies and system design flexibility against time-to-market
requirements from their customers and overall lower system cost. Manufacturers have to
balance the need to minimize the chip size against additional functionality.
Microcontroller architectures vary widely. Some designs include general-purpose
microprocessor cores, with one or more ROM, RAM, or I/O functions integrated onto the
package. Other designs are purpose built for control applications. A micro-controller
instruction set usually has many instructions intended for bit manipulation (bit-wise
operations) to make control programs more compact. For example, a general-purpose
processor might require several instructions to test a bit in a register and branch if the bit is
set, where a micro-controller could have a single instruction to provide that commonly
required function.
Microcontrollers traditionally do not have a math coprocessor, so floating point arithmetic is
performed by software. However, some recent designs do include an FPU and DSP optimized
features. An example would be Microchip's PIC32 MIPS based line.
Central Processing Unit (CPU)
The central processing unit processes the program. It executes the instructions stored in the
program memory pointed to by the program counter in synchronization with the clock signal.
ALU
The arithmetic/logic unit (ALU) performs mathematical and logical operations on data.
Oscillator
A complex digital device that generates steady pulse rate required for timing. All of the
separate functions are controlled by one central timing system. The timing pulse provides the
basis for proper sequence of all the separate sections of the microcontroller chip.
Read Only Memory (ROM)
ROM holds the program instructions and the constant data.
Microcontrollers use one or more of the following memory types for this purpose:
ROM (mask-programmed ROM),
PROM (one-time programmable ROM, which is not field programmable),
EPROM (field programmable and usually UV erasable),
EEPROM (field programmable, electrically erasable, byte erasable) and flash (similar to
EEPROM technology).
Microcontrollers can have 4K, 8K and 16K, etc. of ROM
Random Access Memory (RAM)
is used to hold intermediate results and other temporary data during the execution of the program.
Typically, microcontrollers have a few hundreds of bytes of RAM.
Special-Function Registers
control various functions of a microcontroller. These are divided into two groups:
Registers wired into the CPU
- Do not necessarily form part of addressable memory.
- Used to control program flow and arithmetic functions.
- Examples, status register, program counter, stack pointer, etc.
Registers
Register is used to hold the contents of data being manipulated.
Registers required by peripheral components
- The contents of these registers include set a timer or enable
serial communication.
- Examples, a program counter, stack pointer, RAM address
register, program address register and PC incrementer.
Peripheral Components
The analogue-to-digital converter - provides an interface between the microcontroller
and the sensors that produce analogue electrical equivalents of the actual physical parameters
to be controlled.
The digital-to-analogue converter - provides an interface between the microcontroller
and the actuators that provide the control function.
I/O ports - provide an interface between the microcontroller and the peripheral I/O
devices such as the keyboard, display, etc.
Counters/timers - are used to keep time and/or measure the time interval between events,
count the number of events and generate baud rates for the serial ports.
Watchdog timer
A specialized program found as part of the microcontroller designed to prevent the
microcontroller from halting or “locking up” because of a user-written program since the
instructions are processed step-by-step.
Uses a routine that is based on timing. If a program has not been completed or repeated as
a loop within a certain amount of time, the watchdog timer issues a reset command.
A system reset sets all the register values to zero.
The reset feature allows the controller to recover from the crash.
It releases the program and sets the controller to start over again.
Stack Pointer and Program Counter
Stack pointer - keeps track of the last stack location used while the processor is busy
manipulating data values, checking ports, or checking interrupts.
Program counter - is used to hold the address of the instruction to be executed next.
Buses
Bus represents a physical connection used to carry a signal from one point to another
inside a microcontroller. The signal carried by a bus may represent address, data, control
signal, or power.
10. MICROCONTROLLER OPERATION
MODULE
When a microcontroller is mounted on a circuit board with other components function as a
single unit, is referred as a module or a microcontroller board.
A microcontroller module typically consists of microcontroller,
a power source, an interface for connecting to a programming device, I/O ports, and
additional memory.
A power source - powers the microcontroller and any accompanying components located
on the printed circuit board.
An interface - communicate with the controller.
A set of input/output (I/O) ports - send and receive signals from the devices the
microcontroller is designed to control.
I/O ports when programmed as an output pin, each pin can output digital signals. When
programmed as an input pin, each pin can receive digital signals.
Digital-to-analog and analog-to-digital converters change the digital pulses into analog
signals.
11. INTERNAL OPERATION
The microcontroller consists of thousands of digital circuits that are combined into areas to
provide specific functions.
The parts of the microcontroller are used to save data and programs, perform math and
logic functions, and generate timing signals.
The different areas are connected by a bus system. The bus system contains tiny parallel
circuits that carry the digital pulse patterns from section to section.
The ROM stores the program required for the microcontroller to function and controls how
the chip components operate and how data and instructions flow through the chip.
RAM stores programs and data temporarily.
Ports and registers are special memory locations dedicated to a specific function such as a
hardware location or a place to manipulate data.
12. ADVANTAGEOUS FEATURES
Easy to use and Programmable.
Reusable - Ability to reprogram using Flash, EEPROM or EPROM.
Flexibility and dependable.
Design and Simulation.
Energy efficient, small and cost effective.
Ports multifunctionality.
High Integration and can fit inside other devices.
Easy upgrade.
13. Advantages and disadvantages of microcontroller:
– There are some advantages of microcontroller are given below,
Low time required for performing operation.
The processor chips are very small and flexibility occurs.
Due to their higher integration, cost and size of the system is reduced.
The microcontroller is easily to interface additional RAM, ROM and I/O ports.
Once microcontrollers are programmed then they cannot be reprogrammed.
At the same time many task can be performed so human effect can saved.
Without any digitals parts it can be act as microcomputer.
It is easy to use, troubleshooting and systems maintain is simple.
– There are some disadvantages of microcontroller are given below,
The microcontroller cannot interface high power devices directly.
It has more complex structure as compared to microprocessor.
It only performed limited number of executions simultaneously.
It is generally used in micro equipment.
14. AREAS OF MICROCONTROLLER APPLICATION
Home monitoring system.
Automotive applications such as robotics.
Appliances such as microwave oven, refrigerators, television and VCRs, stereos.
Automobiles in engine control, diagnostics, climate control.
Environmental control in greenhouse, temperature, humidity, factory, home.
Instrumentation.
Aerospace.
15. TYPICAL MICROCONTROLLER APPLICATION
Application of Microcontroller in Day to Day Life Devices:
– Light sensing & controlling devices
– Temperature sensing and controlling devices
– Fire detection & safety devices
– Industrial instrumentation devices
– Process control devices
Application of microcontroller in Industrial Control Devices:
– Industrial instrumentation devices
– Process control devices
Application of microcontroller in Metering & Measurement Devices:
– Volt Meter
– Measuring revolving objects
– Current meter
– Hand-held metering systems
Example of use on a car cruise control system:
Speed measurement
Basic features related to microcontrollers and microprocessors
Microprocessor Microcontroller
Application General computing Appliances, specialized
(i.e. Laptops, Tablets) devices
Speed Very fast Relatively slow
External Parts Many Few
Cost High Low
Energy Use Medium to high Very low to low
Vendor Intel, AMD, AMR ATMEL, TEXAS
INSTRUMENT, ATMEL…
16. LITTLE MICROPROCEASSOR STORY
The advent of low-cost computers on integrated circuits has transformed modern society.
General-purpose microprocessors in personal computers are used for computation, text
editing, multimedia display, and communication over the Internet. Many more
microprocessors are part of embedded systems, providing digital control over myriad objects
from appliances to automobiles to cellular phones and industrial process control.
The microprocessor has origins in the development of the MOSFET (metal-oxide-
semiconductor field-effect transistor, or MOS transistor), which was first demonstrated by
Mohamed M. Atalla and Dawon Kahng of Bell Labs in 1960. Following the development of
MOS integrated circuit chips in the early 1960s, MOS chips reached higher transistor density
and lower manufacturing costs than bipolar integrated circuits by 1964. MOS chips further
increased in complexity at a rate predicted by Moore's law, leading to large-scale integration
(LSI) with hundreds of transistors on a single MOS chip by the late 1960s. The application of
MOS LSI chips to computing was the basis for the first microprocessors, as engineers began
recognizing that a complete computer processor could be contained on several MOS LSI
chips.
Designers in the late 1960s were striving to integrate the central processing unit (CPU)
functions of a computer onto a handful of MOS LSI chips, called microprocessor unit (MPU)
chipsets. In 1969, Lee Boysel, based on the 8-bit arithmetic logic units (3800/3804) he
designed earlier at Fairchild, created the Four-Phase Systems Inc. AL-1, an 8-bit CPU slice
that was expandable to 32-bits. In 1970, Steve Geller and Ray Holt of Garrett AiResearch
designed the MP944 chipset to implement the F-14A Central Air Data Computer on six MOS
chips fabricated by AMI.
The Four-Phase Systems AL and Garrett AiResearch MP944 were the first multi-chip
microprocessors, developed with multiple MOS LSI chips. The first single-chip
microprocessor was the Intel 4004, released on a single MOS LSI chip in 1971. The single-
chip microprocessor was made possible with the development of MOS silicon-gate
technology (SGT). The earliest MOS transistors had aluminum metal gates, which Italian
engineer Federico Faggin replaced with silicon self-aligned gates to develop the first silicon-
gate MOS chip at Fairchild Semiconductor in 1968. Faggin later joined Intel and used his
silicon-gate MOS technology to develop the 4004, along with Marcian Hoff, Stanley Mazor
and Masatoshi Shima in 1971. The 4004 was designed for Busicom, which had earlier
proposed a multi-chip design in 1969, before Faggin's team at Intel changed it into a new
single-chip design. Intel introduced the first commercial microprocessor, the 4-bit Intel 4004,
in 1971. It was soon followed by the 8-bit microprocessor Intel 8008 in 1972.
The first microprocessors that emerged in the early 1970s were used for electronic calculators,
using binary-coded decimal (BCD) arithmetic on 4-bit words. Other embedded uses of 4-bit
and 8-bit microprocessors, such as terminals, printers, various kinds of automation etc.,
followed soon after. Affordable 8-bit microprocessors with 16-bit addressing also led to the
first general-purpose microcomputers from the mid-1970s on.
The first use of the term "microprocessor" is attributed to Viatron Computer Systems
describing the custom integrated circuit used in their System 21 small computer system
announced in 1968.
Since the early 1970s, the increase in capacity of microprocessors has followed Moore's law;
this originally suggested that the number of components that can be fitted onto a chip doubles
every year. With present technology, it is actually every two years and as a result Moore later
changed the period to two years.
This integration drastically reduces the number of chips and the amount of wiring and circuit
board space that would be needed to produce equivalent systems using separate chips.
Furthermore, on low pin count devices in particular, each pin may interface to several internal
peripherals, with the pin function selected by software. This allows a part to be used in a
wider variety of applications than if pins had dedicated functions.
Micro-controllers have proved to be highly popular in embedded systems since their
introduction in the 1970s.
Some microcontrollers use a Harvard architecture: separate memory buses for instructions and
data, allowing accesses to take place concurrently. Where a Harvard architecture is used,
instruction words for the processor may be a different bit size than the length of internal
memory and registers; for example: 12-bit instructions used with 8-bit data registers.
The decision of which peripheral to integrate is often difficult. The microcontroller vendors
often trade operating frequencies and system design flexibility against time-to-market
requirements from their customers and overall lower system cost. Manufacturers have to
balance the need to minimize the chip size against additional functionality.
Microcontroller architectures vary widely. Some designs include general-purpose
microprocessor cores, with one or more ROM, RAM, or I/O functions integrated onto the
package. Other designs are purpose built for control applications. A micro-controller
instruction set usually has many instructions intended for bit manipulation (bit-wise
operations) to make control programs more compact. For example, a general-purpose
processor might require several instructions to test a bit in a register and branch if the bit is
set, where a micro-controller could have a single instruction to provide that commonly
required function.
Microcontrollers traditionally do not have a math coprocessor, so floating point arithmetic is
performed by software. However, some recent designs do include an FPU and DSP optimized
features. An example would be Microchip's PIC32 MIPS based line.
17. CRITERIA OF CHOOSINGA MICROCONTROLLER
Meeting the computing needs of the task at hand efficiently and cost effectively:
Speed
Packaging
Power consumption
The amount of RAM and ROM on chip
The number of I/O pins and the timer on chip
How easy to upgrade to higher performance or lower power consumption versions
Cost per unit:
Availability of software development tools, such as compilers, assemblers, and
debuggers.
Wide availability and reliable sources of the microcontroller
Example: The 8051 family has the largest number of diversified
(multiple source) suppliers
Intel (original)
Atmel
Philips/Signetics
AMD
Infineon (formerly Siemens)
Matra
Dallas Semiconductor/Maxim