Professional Documents
Culture Documents
ATmega Chap2 Hardware
ATmega Chap2 Hardware
Chapter 2
Hardware Summary
Memory:
• 32KB Flash code memory
• 1KB EEPROM
• 2KB SRAM
Peripherals:
• 32 programmable I/O Lines
• SPI and JTAG interface
• Timer/Counters/PWM
• 10-bit ADC
• 2 programmable USART
• SPI/I2C
1. Fetch: PC → (MEM) → IR
2. Decode: IR→ID:
Choose register and operator
3. Execute: ALU execute,
then write back to RF
MOV Rd,Rr
(d,r:031)
Rd Rr
MOVW Rd+1:Rd,Rr+1:Rr
MOVW Rd,Rr
(d,r:0,2,4,..,30)
Rd+1:Rd Rr+1:Rr
IN Rd,P
(d:031)
Rd P
OUT P,Rr
(r:031)
P Rr
LDS Rd,P
(d:031)
Rd P
STS P,Rr
(r:031)
P Rr
…
8FCH SP=8FCH
LDI R20,$67
SP=8FDH 8FDH E9H
LDI R21,$D8 8FEH 0FH 8FEH 0FH
LDI R22,$63 8FFH 15H 8FFH 15H
…
POP R22 R20 67H R21 D8H R21 63H
POP R21
R20 15H R21 0FH R22 E9H
POP R20
Stack Operation Example 2
Ex: LDI R20,$15 R20 15H R21 2FH
LDI R21,$2F
8FCH 8FCH
PUSH R20
8FDH 8FDH
PUSH R21 8FEH SP=8FEH
POP R20 SP=8FFH 8FFH 15H
POP R21
8FCH
SP=8FDH
8FEH 2FH
8FFH 15H
.ORG 0
LDI R16, HIGH($750)
OUT SPH, R16
LDI R16, LOW($750)
OUT SPL, R16
Note:
• V = C CMSB
• S = N V (S is real sign of the result)
• Z = 1 if the result is zero, 0 otherwise
SREG REGISTER – Example 1
23
SREG REGISTER – Example 2
24
SREG REGISTER – Example 3
25
FLASH – CODE (PROGRAM) MEMORY
• Capacity: 32KB
• All instructions in AVR are 16 or 32
bits wide
→ Flash is organized 16K x 16 bits =
16KW
READ:
• Use instruction: LPM (Load Program Memory)
Format: LPM Rd,Z
Description: Rd (Z)
• Only read data at High Address or Low Address once
Low address: (Address)<<1
High address: ((Address)<<1)|1
Ref: Giáo trình Vi xử lý Nguyễn Trung Hiếu
Example: Create a 2-byte numeric data $BC13 (0xBC13) in Flash.
Write a program that read the low byte and store it in R1 and read
the high byte and store it in R2.
.ORG 0
LDI ZL,LOW(MYDATA<<1)
LDI ZH,HIGH(MYDATA<<1)
LPM R1,Z
LDI ZL,LOW((MYDATA<<1)|1)
LDI ZH,HIGH((MYDATA<<1)|1)
LPM R2,Z
MYDATA: .DW $BC13
• Capacity: 1KB
• Address: 10-bit (from 0x0000 – 0x03FF)
• Endurance of at least 100,000 write/erase cycles
• Data is NOT erased when power off (Non-volatile)
• Access through special registers: EECR, EEAR and EEDR
(More detail in chapter textbook)
Input Output
DDRx: 7 6 5 4 3 2 1 0
PORTx: 7 6 5 4 3 2 1 0
DDRx
0 1
PINx: 7 6 5 4 3 2 1 0 PORTx