Attiny11/12 – Rainbow Electronics ATtiny12 User Manual

Page 48

Advertising
background image

48

ATtiny11/12

1006C–09/01

Figure 28. High-voltage Serial Programming Waveforms

MSB

MSB

MSB

LSB

LSB

LSB

0

1

2

3

4

5

6

7

8

9

10

SERIAL DATA INPUT

PB0

SERIAL INSTR. INPUT

PB1

SERIAL DATA OUTPUT

PB2

SERIAL CLOCK INPUT

XTAL1/PB3

Table 23. High-voltage Serial Programming Instruction Set for ATtiny11/12

Instruction

Instruction Format

Operation Remarks

Instr.1

Instr.2

Instr.3

Instr.4

Chip Erase

PB0

PB1

PB2

0_1000_0000_00

0_0100_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

0_0000_0000_00

0_0100_1100_00

x_xxxx_xxxx_xx

Wait after Instr.4 until PB2 goes
high for the Chip Erase cycle to
finish.

Write Flash
High and Low
Address

PB0

PB1

PB2

0_0001_0000_00

0_0100_1100_00

x_xxxx_xxxx_xx

0_0000_000a_00

0_0001_1100_00

x_xxxx_xxxx_xx

0_bbbb_bbbb_00

0_0000_1100_00

x_xxxx_xxxx_xx

Repeat Instr.2 for a new 256 byte
page. Repeat Instr.3 for each new
address.

Write Flash Low
byte

PB0

PB1

PB2

0_ i i i i_i i i i _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.3 until PB2 goes
high. Repeat Instr.1, Instr. 2 and
Instr.3 for each new address.

Write Flash
High byte

PB0

PB1

PB2

0_ i i i i_i i i i _00

0_0011_1100_00

x_xxxx_xxxx_xx

0_0000_0000_00

0_0111_0100_00

x_xxxx_xxxx_xx

0_0000_0000_00

0_0111_1100_00

0_0000_0000_00

Wait after Instr.3 until PB2 goes
high. Repeat Instr.1, Instr. 2 and
Instr.3 for each new address.

Read Flash
High and Low
Address

PB0

PB1

PB2

0_0000_0010_00

0_0100_1100_00

x_xxxx_xxxx_xx

0_0000_000a_00

0_0001_1100_00

x_xxxx_xxxx_xx

0_bbbb_bbbb_00

0_0000_1100_00

x_xxxx_xxxx_xx

Repeat Instr.2 and Instr.3 for each
new address.

Read Flash
Low byte

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.1 and Instr.2 for each
new address.

Read Flash
High byte

PB0

PB1
PB2

0_0000_0000_00

0_0111_1000_00

x_xxxx_xxxx_xx

0_0000_0000_00

0_0111_1100_00

o_oooo_ooox_xx

Repeat Instr.1 and Instr.2 for each
new address.

Write EEPROM
Low Address
(ATtiny12)

PB0

PB1

PB2

0_0001_0001_00

0_0100_1100_00

x_xxxx_xxxx_xx

0_00bb_bbbb_00

0_0000_1100_00

x_xxxx_xxxx_xx

Repeat Instr.2 for each new
address.

Write EEPROM
byte (ATtiny12)

PB0

PB1

PB2

0_ i i i i_i i i i _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.3 until PB2 goes
high

Read EEPROM
Low Address
(ATtiny12)

PB0

PB1

PB2

0_0000_0011_00

0_0100_1100_00

x_xxxx_xxxx_xx

0_00bb_bbbb_00

0_0000_1100_00

x_xxxx_xxxx_xx

Repeat Instr.2 for each new
address.

Advertising