Attiny11/12 – Rainbow Electronics ATtiny12 User Manual

Page 49

Advertising
background image

49

ATtiny11/12

1006C–09/01

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 Remarks

Instr.1

Instr.2

Instr.3

Instr.4

Advertising