Datasheet

379
ATmega16U4/32U4 [DATASHEET]
Atmel-7766J-USB-ATmega16U4/32U4-Datasheet_04/2016
new Capture-DR state, starting with the low byte for the first Capture-DR encountered after entering the
PROG_PAGEREAD command. The Program Counter is post-incremented after reading each high byte,
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 28-16. 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 operation 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.
28.9.12 Programming Algorithm
All references below of type “1a”, “1b”, and so on, refer to Table 28-17 on page 375.
28.9.13 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.
28.9.14 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.
TDI
TDO
D
A
T
A
Flash
EEPROM
Fuses
Lock Bits
STROBES
ADDRESS
State
Machine