0% found this document useful (0 votes)
10 views

Lecture 1: Embedded Systems Overview, AVR Hardware/Software Introduction

This document provides an overview and introduction to embedded systems and the AVR microcontroller. It discusses what embedded systems are, examples of common embedded systems, and key characteristics like being application specific and having integrated CPU, memory and I/O. The document then focuses on the AVR microcontroller, providing details on its RISC architecture, memory spaces, instruction set, and hardware features like timers, ADC, and interrupts. It outlines the labs and projects to be completed which involve using sensors, DACs, motor control and feedback loops. The lecture introduces the CodeVision AVR C compiler that will be used to program the AVR microcontroller.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Lecture 1: Embedded Systems Overview, AVR Hardware/Software Introduction

This document provides an overview and introduction to embedded systems and the AVR microcontroller. It discusses what embedded systems are, examples of common embedded systems, and key characteristics like being application specific and having integrated CPU, memory and I/O. The document then focuses on the AVR microcontroller, providing details on its RISC architecture, memory spaces, instruction set, and hardware features like timers, ADC, and interrupts. It outlines the labs and projects to be completed which involve using sensors, DACs, motor control and feedback loops. The lecture introduces the CodeVision AVR C compiler that will be used to program the AVR microcontroller.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 50

Lecture 1: Embedded Systems

Overview, AVR
Hardware/Software Introduction

Embedded Systems Overview


Computing systems are everywhere
Most of us think of desktop computers
PCs
Laptops
Mainframes
Servers

But theres another type of computing


system
Far more common...
2

Embedded Systems Overview


Embedded computing systems
Computing systems embedded
within electronic devices
Hard to define. Nearly any
computing system other than a
desktop computer
Billions of units produced yearly,
versus millions of desktop units
Perhaps 50 per household and
per automobile

Computers are in here...


and here...

and even here...

Lots more of these,


though they cost a lot
less each.

A short list of embedded


systems
Anti-lock brakes
Auto-focus cameras
Automatic teller machines
Automatic toll systems
Automatic transmission
Avionic systems
Battery chargers
Camcorders
Cell phones
Cell-phone base stations
Cordless phones
Cruise control
Curbside check-in systems
Digital cameras
Disk drives
Electronic card readers
Electronic instruments
Electronic toys/games
Factory control
Fax machines
Fingerprint identifiers
Home security systems
Life-support systems
Medical testing systems

Modems
MPEG decoders
Network cards
Network switches/routers
On-board navigation
Pagers
Photocopiers
Point-of-sale systems
Portable video games
Printers
Satellite phones
Scanners
Smart ovens/dishwashers
Speech recognizers
Stereo systems
Teleconferencing systems
Televisions
Temperature controllers
Theft tracking systems
TV set-top boxes
VCRs, DVD players
Video game consoles
Video phones
Washers and dryers

And the list goes on and on

What is an embedded system?


What makes a microcontroller:
Self Contained
CPU
Memory
I/O
Application or Task Specific
Not a general-purpose computer
Appropriately scaled for the job
5

What is an embedded system?


Embedded PCs?
Soft Processors on PLDs?
Systems On A Chip?

Designing Embedded Systems


Microcontrollers
Dont have keyboard and monitor jacks
Must use ports to perform I/O
Inputs to sense things
Outputs to control things
Related Component Topics
Common Interfaces
Part Packages
7

What you will do:


Labs
Lab 1: Introduction to AVR STK500
Hardware/Software, a couple of simple c programs
Lab 2: A/D converter
Lab 3: Optical Sensors
Lab 4: 2 bits D/A converter
Lab 5: Controls and Feedback
Lab 6: Motor Control - open loop
Lab 7: Motor Control - simple feedback control
Lab 8: Motor Control - proportional feedback control
8

What you will do:


Presentation your proposed project
Final Project
Hardware
Software
Presentation
Report

Introduction to AVR
CodeVision AVR C Compiler Professional
version
Installed in 20 PCs in room EN229
Compile programs with more than a thousand
instructions.
Provides many useful assembly programs used by
your C programs. You write your programs in C
completely. AVR C compiler will integrate all required
programs together
More about AVR C compiler when presenting Lab 1
10

History of AVR

The Atmel AVRTM is a family of 8-bit RISC microcontrollers


produced by Atmel.
The AVR architecture was conceived by two students at the
Norwegian Institute of Technology (NTH) and further refined
and developed at Atmel Norway, the Atmel daughter company
founded by the two chip architects.

11

Introduction to AVR

12

Used in Lab

13

AVR Architecture
What are the features of RISC?
1 instruction per clock cycle (pipelined)
Lots of registers: 32 GP registers
Register-to-register operation
Variations in the parts:
TINY to MEGA
ATtiny10
Processor has only 8 pins
ATmega128 (128K bytes flash)
Processor has 64 pins
14

AVR Architecture

15

AVR RISC Architecture


Single Cycle Instructions:
8mhz = 8mips.
Large register file (32).
Every register an
accumulator.
3 index register pairs
Register & IO are
mapped in SRAM space.

16

On Chip
Debugger

Two Wire Interface


17

18

Typical Hardware Support

Internal or External Oscillator/Clock


Brown Out Detector
One or more timers
Two or more PWM
One or more USART
10 bit ADC
Analog Comparator
External interrupts

19

20

21

22

PB2 PB3 also used as Analog Input 0 (AIN0) and


Analog Input 1 (AIN1)
23

The Analog Comparator compares


the input values on the positive pin AIN0 and negative pin
AIN1.
When the voltage on the positive pin AIN0 is higher than the
voltage on the negative pin AIN1, the Analog Comparator
Output, ACO, is set. ACO is kept in bit 5 of Analog
Comparator Control and Status Register
The comparators output can be set to trigger the Timer/Counter1
Input Capture function. In addition, the comparator can
trigger a separate interrupt, exclusive to the Analog
Comparator.
The user can select Interrupt triggering on comparator
output rise, fall or toggle

24

AVR Memory Space


Program Flash
Vectors, Code, and
(Unchangeable) Constant Data
Working Registers
Includes X, Y, and Z registers.
I/O Register Space
Includes named registers
SRAM Data Space
Runtime Variables and Data
Stack space
EEPROM space
For non-volatile but alterable data
25

AVR Addressing Modes


Register Direct, with 1 and 2 registers
I/O Direct
Data Direct
Data Indirect
with pre-decrement
with post-increment
Code Memory Addressing
26

Register Direct: 1 Register

27

Register Direct: 2 Registers

28

I/O Direct

29

Data Direct

STS

store direct to data space

30

Data Indirect

31

Data Indirect w/ Displacement

32

Data Indirect: Pre-Decrement

33

Data Indirect: Post-Increment

34

Status Register: SREG


Status Register (SREG)
SREG: Status Register
C:
Carry Flag
Z:
Zero Flag
N:
Negative Flag
V:
Twos complement overflow indicator
S:
N V, For signed tests
H:
Half Carry Flag
T:
Transfer bit used by BLD (Bit load) and BST
(Bit store) instructions
I:
Global Interrupt Enable/Disable Flag
35

Interesting Instruction Examples:


NOP Do nothing for 1 cycle
SLEEP Sleep until reset or interrupted
WDR Watch Dog Reset
AVR Instruction set manual available in the course website

36

Timers: Why we need them


Provide accurately timed delays or actions independent of code
execution time
How are Timers used?
Accurate delay
Read the timer, store value as K. Loop until timer reaches
K+100.
Schedule important events
Setup an Output Compare to trigger an interrupt at a precise
time
Port B pin3, PB3, when used as output port,
OC0 (Timer/Counter0 Output Compare Match Output)
(p.57 of Atmeg16 manual)
Measure time between events
When event#1 happens, store timer value as K
When event#2 happens, read timer value and subtract K
The difference is the time elapsed between the two events
37

AVR Timer/Counter 0
8 Bit
Wrap-Around
Up Counter
Interrupt on
overflow

38

AVR Timer/Counter 0
8 Bit Up Counter
counts from 0 to 255 (0xFF), then loops to 0
Internal or External Clock source
Prescaler
Output capture through OC0, i.e. PB3, pin 4
Interrupt on Overflow
Transition from 255 to 0 can trigger interrupt if
desired
39

AVR Timer/Counter 0
OC0, Output Compare Match output:
Whenever TCNT0 equals OCR0 (Output
Compare Register 0), the comparator signals
a match
The PB3 pin can serve as an external output
for the Timer/Counter0 Compare Match. The
PB3 pin has to be configured as an output

40

AVR Timer/Counter 1
16 Bit
Dual Comparators A,B (output compares)
Up Counter
Interrupt on:
Overflow
Compare A/B
Input Capture of external event on ICP pin.
Can also act as an 8, 9 or 10 bit PWM UpDown Counter.

41

AVR Timer/Counter 1
The Input Capture unit of Timer/Counter captures
external events and gives them a time-stamp
indicating time of occurrence.
The external signal indicating an event, or multiple
events, can be applied via the ICP1 pin or alternatively,
via the Analog Comparator unit.
The time-stamps can then be used to calculate
frequency, duty-cycle, and other features of the signal
applied.
Alternatively the time-stamps can be used for creating
a log of the events.
42

Timer 1 and Output Compare


The AVR has two output compares (OCR1A/B)
OCR1A/B are 16-bit registers
When the value of OCR1A/OCR1B matches that of Timer1:
A user-defined action can take place on the OC1A/OC1B pin
(set/clear/inv) i.e.,PD5 /PD4 need to set as output
An interrupt can be triggered
Timer1 can be cleared to zero
Once set up, output compares operate continuously without
software intervention
Great for:
Precise recurring timing
Frequency/Tone generation (maybe sound effects)
All kinds of digital signal generation
Infrared communications
Software-driven serial ports

43

Timer 1 and PWM


Pulse-Width Modulation
Useful for using digital circuits to achieve analoglike control of motors, LEDs, etc
Timer 1 has two channels of PWM output on OCR1A
and OCR1B

44

Timer Control
Timer 0:
Control Register (TCCR0) for clock selection, external
clock or internal clock, prescaler etc.
Timer/Counter0 (TCNT0) holding counter value
Timer 1:
Control Register A & B (TCCR1A/B)
Input Capture Register (ICR1)
Timer/Counter1 Output Compare Register A and B
(OCR1A/B)
Timer/Counter1 (TCNT1)
Timer Interrupt Registers (Mask and Flag Registers) are
Common to Both Timers
45

AVR Timer/Counter Sources


Shut Off
CPU frequency divided by 1,8,64,256,1024
At 8MHz thats: 1/8us, 1us, 8us, 32us,
128us
External Input (rising or falling).

46

Interrupts
Interrupts halt normal code execution in order to go do
something more important or time sensitive
Interrupt Handlers
Using the Interrupt Vectors
Interrupts are used for:
RESET
Timers and Time-Critical Code
Hardware signaling
Im done
Somethings happened that you want to know
about
I have something for you
47

48

Watchdog Timer: reset the MCU


The Watchdog Timer is clocked from a separate
On-chip Oscillator which runs at 1 MHz

49

Reading Assignment:
Chapter 1 of Embedded C Programming and the Atmel AVR

50

You might also like