27
AVR Microcontrollers- Introduction Microprocessors, Lecture 3:

Microprocessors, Lecture 3 - Sharifce.sharif.edu/.../2/ce513-1/resources/root/Slides/Micro-L3-AVR.pdf · ye.g. ATmega8, ATmega32, ATmega128 yTiny ye.g. ATtiny13, ATtiny25 ySpecial

Embed Size (px)

Citation preview

AVR Microcontrollers- Introduction

Microprocessors, Lecture 3:

AVR Microcontrollers

2

Widely-used microcontroller

Different familiesBased on the application and Flash memory capacity

Classic AVRe.g. AT90S2313, AT90S4433

Megae.g. ATmega8, ATmega32, ATmega128

Tinye.g. ATtiny13, ATtiny25

Special Purpose AVRe.g. AT90PWM216,AT90USB1287

3

AVR internal architecture

PROGRAM ROM

PortsOSC

CPU

Timers

OtherPeripherals

ProgramBus Bus

RAM

I/O PINS

EEPROM

Interrupt Unit

3

AVR’s CPU

4

CPU:RISC architecture131 instructionsMost instructions are executed in a single cycle32 general-purpose registers64 IO registersMany useful peripherals

Very low-powerless than 10mW power consumption

5

AVR’s CPU

AVR’s CPUALU

32 General Purpose registers (R0 to R31)

PC register

Instruction decoder

Almost the same for all families

CPUPC

ALU

registers

R1

R0

R15

R2

R16

R17

R30

R31

Instruction Register

Instruction decoder

SREG: I T H S V N CZ

5

SREG flags

6

Not all instructions affect flagsExample: load instruction has nothing to do with flags

Decision making by flags

7

Memory address space

8

A unified address space

32 general-purpose registersDirectly connected to the ALU

64 IO registersTo keep the data sent to/ received from peripherals

StackStarting from the end of SRAM and grow up to lower addressesIndexed by SPL-SPH registers

Internal busses

9

10

Some simple instructions1. Loading values into the general purpose registers

LDI (Load Immediate)LDI Rd, k

Its equivalent in high level languages:

Rd = k

Example: LDI R16,53

R16 = 53

LDS (Load from SRAM)LDS R0,0x300Load R0 by data from address 300

10

11

Some simple instructions2. Arithmetic calculation

There are some instructions for doing arithmetic and logic operations; such as:

ADD, SUB, MUL, AND, etc.

ADD Rd,RsRd = Rd + Rs

Example:

ADD R25, R9

R25 = R25 + R9

ADD R17,R30

R17 = R17 + R30

11

12

Some simple instructions3. store

No immediate value store! Just stores can be done through registers

12

13

Some simple instructions3. IN and OUT

Each IO register can be addressed in two ways:Memory addressIO address (relative to the beginning of the IO registers)

“IN” and “OUT” use the IO address

example: IN r1,0x16 ;// copy IO register no. 10 (memory address 0x36 to r1)

13

Some other instructions

14

ALU instructions

15

Single operand instructions

16

Directives

17

Like directives in high level languages

For core readability

Not instructions that generate machine code after compile

Example: EQUTo set a constant valueEquivalent to CONSTANT in C++

Other directives

18

AVR data size

19

AVR just has 8-bit data

Programmer or compiler has to break larger data into 8-bit units

20

A simple programWrite a program that calculates 19 + 95

LDI R16, 19 ;R16 = 19

LDI R20, 95 ;R20 = 95

ADD R16, R20 ;R16 = R16 + R20

CPUPC

ALU

registers

R1R0

R15

R2

R16R17

R30R31

Instruction Register

Instruction decoder

SREG: I T H S V N CZ

20

Code memory

21

The program after compiling is stored in a ROM (flash memory)

To keep the code even when the system is powered offData is stored in another memory (SRAM)

In AVR each code memory location is 2-bytes

In Atmega32, 32K flash memory is organized as 16Kx16 words

Needs 14-bit PC

Instruction size

22

Almost all instructions are 2 bytesExample:

1110: machine code for LDIKkkk…= imidiate valuedddd= destination register

Another example

23

32-bit instructions

24

ATmega32

25

16 MHz clock frequency44 pins32 KB instruction memory (Flash)1KB data memory (EEPROM)2048 B data memory (SRAM)SPI, USART, and I2C serial ports3 timers8 10-bit ADC channelsAnalog comparator4 PWM ports…….

ATMega32 pins

4 8-bit ports

PA, PB, PC, PD

Multiplexed with other in-outs

26

AVR programming

27

Assembly: AVR Studio

C: Code Vision