Datasheet

370
ATmega640/1280/1281/2560/2561
2549K–AVR–01/07
including the first read byte. This ensures that the first data is captured from the first
address set up by PROG_COMMANDS, and reading the last location in the page
makes the program counter increment into the next page.
Figure 154. Flash Data Byte Register
The state machine controlling the Flash Data Byte Register is clocked by TCK. During
normal operation in which eight bits are shifted for each Flash byte, the clock cycles
needed to navigate through the TAP controller automatically feeds the state machine for
the Flash Data Byte Register with sufficient number of clock pulses to complete its oper-
ation transparently for the user. However, if too few bits are shifted between each
Update-DR state during page load, the TAP controller should stay in the Run-Test/Idle
state for some TCK cycles to ensure that there are at least 11 TCK cycles between each
Update-DR state.
Programming Algorithm All references below of type “1a”, “1b”, and so on, refer to Table 166.
Entering Programming Mode 1. Enter JTAG instruction AVR_RESET and shift 1 in the Reset Register.
2. Enter instruction PROG_ENABLE and shift 0b1010_0011_0111_0000 in the
Programming Enable Register.
Leaving Programming Mode 1. Enter JTAG instruction PROG_COMMANDS.
2. Disable all programming instructions by using no operation instruction 11a.
3. Enter instruction PROG_ENABLE and shift 0b0000_0000_0000_0000 in the
programming Enable Register.
4. Enter JTAG instruction AVR_RESET and shift 0 in the Reset Register.
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 162 on page 355).
TDI
TDO
D
A
T
A
Flash
EEPROM
Fuses
Lock Bits
STROBES
ADDRESS
State
Machine