Entering programming mode, Leaving programming mode, Performing chip erase – Rainbow Electronics ATmega128L User Manual

Page 307: Programming the flash, Atmega128(l)

Advertising
background image

307

ATmega128(L)

2467B–09/01

Entering Programming Mode

1.

Enter JTAG instruction AVR_RESET and shift 1 in the Reset register.

2.

Enter instruction PROG_ENABLE and shift 1010_0011_0111_0000 in the Pro-
gramming Enable register.

Leaving Programming Mode

1.

Enter JTAG instruction PROG_COMMANDS.

2.

Disable all programming instructions by usning no operation instruction 11a.

3.

Enter instruction PROG_ENABLE and shift 0000_0000_0000_0000 in the pro-
gramming Enable register.

4.

Enter JTAG instruction AVR_RESET and shift 0 in the Reset register.

If PROG_ENABLE instruction is not followed by the AVR_RESET istruction, the follow-
ing algorithm should be used:

1.

Enter JTAG instruction PROG_COMMANDS.

2.

Disable all programming instructions by using no operation instruction 11a.

3.

Enter instruction PROG_ENABLE and shift 0000_0000_0000_0000 in the Pro-
gramming Enable register.

4.

Enter instruction PROG_ENABLE and shift 0000_0000_0000_0000 in the Pro-
gramming Enable register.

5.

Wait until the selected oscillator has started before applying more commands.

Performing Chip Erase

1.

Enter JTAG instruction PROG_COMMANDS.

2.

Start chip erase using programming instruction 1a.

3.

Poll for chip erase complete using programming instruction 1b, or wait for
t

WLRH_CE

(refer to

Table Note: on page 291).

Programming the Flash

1.

Enter JTAG instruction PROG_COMMANDS.

2.

Enable Flash write using programming instruction 2a.

3.

Load address high byte using programming instruction 2b.

4.

Load address low byte using programming instruction 2c.

5.

Load data using programming instructions 2d, 2e and 2f.

6.

Repeat steps 4 and 5 for all instruction words in the page.

7.

Write the page using programming instruction 2g.

8.

Poll for Flash write complete using programming instruction 2h, or wait for t

WLRH

(refer to

Table Note: on page 291).

9.

Repeat steps 3 to 7 until all data have been programmed.

A more efficient data transfer can be achieved using the PROG_PAGELOAD
instruction:

1.

Enter JTAG instruction PROG_COMMANDS.

2.

Enable Flash write using programming instruction 2a.

3.

Load the page address using programming instructions 2b and 2c. PCWORD
(refer to

Table 124 on page 283) is used to address within one page and must be

written as 0.

4.

Enter JTAG instruction PROG_PAGELOAD.

5.

Load the entire page by shifting in all instruction words in the page, starting with
the LSB of the first instruction in the page and ending with the MSB of the last
instruction in the page.

6.

Enter JTAG instruction PROG_COMMANDS.

Advertising