MCU Architecture &
Programming
An Introduction
Microcontroller
• is a small computer on a single integrated
circuit containing a processor core,
memory, and programmable input/output
peripherals
MCU Architecture
Memory
I/O Peripherals CPU
Architecture
• some microcontrollers use a Harvard
architecture where;
• separate memory buses for instructions
and data, allowing accesses to take place
concurrently
Instruction Bus
CPU Memory
Data Bus
Data Bus
I/O Harvard Architecture
Instruction Set
• Most MCUs have a RISC (Reduced
Instruction Set Computer) CPU while
some have CISC (Complex Instruction Set
Computer)
CISC vs RISC
• Emphasis on hardware • Emphasis on software
• includes multi-clock • single clock
• complex instructions • reduced instructions only
• Memory-to-memory: • Register-to-register:
"LOAD" and "STORE" "LOAD" and "STORE"
• Small code sizes, high • Low cycles per second, large
cycles per second code sizes
• Transistors used for • Spends more transistors on
storing complex memory registers
instructions
Applications
• automobile engine
systems
• implantable medical
devices
• remote controls
• office machines
• appliances
• toys
Why MCU?
• By reducing the size and cost compared to
a design that uses a separate
microprocessor, memory, and input/output
devices, microcontrollers make it
economical to digitally control even more
devices and processes
General Features
• low power consumption
• uses four-bit words and operate as low as
4 kHz
• ability to retain functionality while waiting
for an event such as a button press or any
interrupt
General Features
• ability for core CPU to sleep thus having as
low nano-watts power consumption
suitable for battery powered devices
• programmable general purpose I/O (GPIO)
ports
• each port can be programmed to a
specific function
General Features
• Programmable Timers
• Watch-Dog Timer (WDT)
• Interrupt Timer
• Programmable Interval Timer (PIT)
• Time Processing Unit (TPU)
General Features
• Other peripherals such as:
• A/D and D/A converters for mixed signal
systems
• Pulse-Width Modulation, Capture and
Compare Modules
General Features
• Communication Systems
• UART
• I2C
• SPI
• Com Buses
• CAN & LIN
Limitations
• MCUs does not have a math co-processor
or floating point processors like most
microprocessor have
• Calculations involving floating point must
be done by software
Limitations
• Unlike non-integrated systems, MCUs have
limited amount of RAM and Program ROM,
though can be expanded with external
memories
MCU Organization
• central processing unit -
ranging from small and simple
4-bit processors to complex
32- or 64-bit processors
• volatile memory (RAM) for
data storage
• ROM, EPROM, EEPROM or
Flash memory for program and
operating parameter storage
MCU Organization
• 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,
Serial Peripheral Interface and Controller Area
Network for system interconnect
• peripherals such as timers, event counters, PWM
generators, and watchdog
MCU Organization
• 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
debugging support
Programming
• Microcontrollers were originally
programmed only in assembly language, but
various high-level programming languages
are now also in common use to target
microcontrollers
• The most common high-level language
being used is C
Assembly vs High-Level
MOVLW 03H PORTA = 0x03;
MOVWF PORTA
Code to assign a literal value 03 to register PORTA
*Programming for PIC16F84A
Assembly vs High-Level
• assembly language has a lower memory
footprint than high-level language
• high-level language is much easier to code
than assembly;
• also allows hardware abstraction which
makes programs portable to a different
MCU architecture
Types of
Microcontrollers
• Freescale 68HC11 (8-
bit); Freescale ColdFire
(32-bit) and S08 (8-bit)
• ARM processors (from
many vendors) using
ARM7 or Cortex-M3
cores are generally
microcontrollers
Types of
Microcontrollers
• Zilog eZ8 (16-bit), eZ80 (8-bit)
• NXP Semiconductors [2] LPC1000,
LPC2000, LPC3000, LPC4000 (32-bit),
LPC900, LPC700 (8-bit)
• Atmel AVR (8-bit), AVR32 (32-bit), and
AT91SAM (32-bit)
Types of
Microcontrollers
• PIC (8-bit PIC16,
PIC18, 16-bit
dsPIC33 / PIC24)
PIC16F84A 8-bit MCU
End of MCU
Architecture and
Programming