Datasheet
Table Of Contents
- Features
- Pin Configuration
- Description
- Architectural Overview
- General-purpose Register File
- ALU – Arithmetic Logic Unit
- Flash Program Memory
- Program and Data Addressing Modes
- Subroutine and Interrupt Hardware Stack
- EEPROM Data Memory
- Memory Access and Instruction Execution Timing
- I/O Memory
- Reset and Interrupt Handling
- ATtiny12 Internal Voltage Reference
- Interrupt Handling
- Sleep Modes for the ATtiny11
- Sleep Modes for the ATtiny12
- ATtiny12 Calibrated Internal RC Oscillator
- Timer/Counter0
- Watchdog Timer
- ATtiny12 EEPROM Read/Write Access
- Analog Comparator
- I/O Port B
- Memory Programming
- Program (and Data) Memory Lock Bits
- Fuse Bits in ATtiny11
- Fuse Bits in ATtiny12
- Signature Bytes
- Calibration Byte in ATtiny12
- Programming the Flash and EEPROM
- High-voltage Serial Programming
- High-voltage Serial Programming Algorithm
- High-voltage Serial Programming Characteristics
- Low-voltage Serial Downloading (ATtiny12 only)
- Low-voltage Serial Programming Characteristics
- Electrical Characteristics
- Register Summary ATtiny11
- Register Summary ATtiny12
- Instruction Set Summary
- Ordering Information
- Packaging Information
- Data Sheet Change Log for ATtiny11/12
- Table of Contents

51
ATtiny11/12
1006D–AVR–07/03
Note: a = address high bits
b = address low bits
i = data in
o = data out
x = don’t care
1 = Lock Bit1
2 = Lock Bit2
3 = CKSEL0 Fuse
4 = CKSEL1 Fuse
5 = CKSEL2 Fuse
9, 6 = RSTDISBL Fuse
7 = FSTRT Fuse
8 = CKSEL3 Fuse
A = SPIEN Fuse
B = BODEN Fuse
C = BODLEVEL Fuse
Read EEPROM
byte (ATtiny12)
PB0
PB1
PB2
0_0000_0000_00
0_0110_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
o_oooo_ooox_xx
Repeat Instr.2 for each new
address
Write Fuse bits
(ATtiny11)
PB0
PB1
PB2
0_0100_0000_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0007_6543_00
0_0010_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_0100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
x_xxxx_xxxx_xx
Wait
t
WLWH_PFB
after Instr.3 for the
Write fuse bits cycle to finish. Write
7 - 3 = “0” to program the fuse bit.
Write Fuse bits
(ATtiny12)
PB0
PB1
PB2
0_0100_0000_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_CBA9_8543_00
0_0010_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_0100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
x_xxxx_xxxx_xx
Wait after Instr.4 until PB2 goes
high. Write C - A, 9, 8, 5 - 3 = “0” to
program the fuse bit.
Write Lock bits
PB0
PB1
PB2
0_0010_0000_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_0210_00
0_0010_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_0100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
0_0000_0000_00
Wait after Instr.4 until PB2 goes
high. Write 2, 1 = “0” to program
the lock bit.
Read Fuse bits
(ATtiny11)
PB0
PB1
PB2
0_0000_0100_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
x_xx76_543x_xx
Reading 7 - 3 = “0” means the fuse
bit is programmed.
Read Fuse bits
(ATtiny12)
PB0
PB1
PB2
0_0000_0100_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
C_BA98_543x_xx
Reading C - A, 9, 8, 5 - 3 = “0”
means the fuse bit is programmed.
Read Lock bits
PB0
PB1
PB2
0_0000_0100_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0111_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0111_1100_00
x_xxxx_21xx_xx
Reading 2, 1 = “0” means the lock
bit is programmed.
Read Signature
Bytes
PB0
PB1
PB2
0_0000_1000_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_00bb_00
0_0000_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0110_1100_00
o_oooo_ooox_xx
Repeat Instr.2 - Instr.4 for each
signature byte address
Read
Calibration Byte
(ATtiny12)
PB0
PB1
PB2
0_0000_1000_00
0_0100_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0000_1100_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0111_1000_00
x_xxxx_xxxx_xx
0_0000_0000_00
0_0111_1100_00
o_oooo_ooox_xx
Table 23. High-voltage Serial Programming Instruction Set for ATtiny11/12 (Continued)
Instruction
Instruction Format
Operation RemarksInstr.1 Instr.2 Instr.3 Instr.4