283
ATmega165A/PA/325A/PA/3250A/PA/645A/P/6450A/P [DATASHEET]
8285E–AVR–02/2013
Figure 27-16. State Machine sequence for changing/reading the Data Word.
27.9.11
Flash Data Byte Register
The Flash Data Byte Register provides an efficient way to load the entire Flash page buffer before executing Page
Write, or to read out/verify the content of the Flash. A state machine sets up the control signals to the Flash and
senses the strobe signals from the Flash, thus only the data words need to be shifted in/out.
The Flash Data Byte Register actually consists of the 8-bit scan chain and a 8-bit temporary register. During page
load, the Update-DR state copies the content of the scan chain over to the temporary register and initiates a write
sequence that within 11 TCK cycles loads the content of the temporary register into the Flash page buffer. The
AVR automatically alternates between writing the low and the high byte for each new Update-DR state, starting
with the low byte for the first Update-DR encountered after entering the PROG_PAGELOAD command. The Pro-
gram Counter is pre-incremented before writing the low byte, except for the first written byte. This ensures that the
first data is written to the address set up by PROG_COMMANDS, and loading the last location in the page buffer
does not make the Program Counter increment into the next page.
During Page Read, the content of the selected Flash byte is captured into the Flash Data Byte Register during the
Capture-DR state. The AVR automatically alternates between reading the low and the high byte for each new Cap-
ture-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.
Test-Logic-Reset
Run-Test/Idle
Shift-DR
Exit1-DR
Pause-DR
Exit2-DR
Update-DR
Select-IR Scan
Capture-IR
Shift-IR
Exit1-IR
Pause-IR
Exit2-IR
Update-IR
Select-DR Scan
Capture-DR
0
1
0
11
1
00
11
1
0
1
0
1
0
1
0
1
0
1
0
1