305
8271D–AVR–05/11
ATmega48A/PA/88A/PA/168A/PA/328/P
28.7
Parallel Programming
28.7.1
Enter Programming Mode
The following algorithm puts the device in Parallel (High-voltage) Programming mode:
1.
Set Prog_enable pins listed in
to “0000”, RESET pin to 0V and
V
CC
to 0V.
2.
Apply 4.5 - 5.5V between V
CC
and GND.
Ensure that V
CC
reaches at least 1.8V within the next 20 µs.
3.
Wait 20 - 60 µs, and apply 11.5 - 12.5V to RESET.
4.
Keep the Prog_enable pins unchanged for at least 10µs after the High-voltage has been
applied to ensure the Prog_enable Signature has been latched.
5.
Wait at least 300 µs before giving any parallel programming commands.
6.
Exit Programming mode by power the device down or by bringing RESET pin to 0V.
If the rise time of the V
CC
is unable to fulfill the requirements listed above, the following alterna-
tive algorithm can be used.
1.
Set Prog_enable pins listed in
to “0000”, RESET pin to 0V and
V
CC
to 0V.
2.
Apply 4.5 - 5.5V between V
CC
and GND.
3.
Monitor V
CC
, and as soon as V
CC
reaches 0.9 - 1.1V, apply 11.5 - 12.5V to RESET.
4.
Keep the Prog_enable pins unchanged for at least 10µs after the High-voltage has been
applied to ensure the Prog_enable Signature has been latched.
5.
Wait until V
CC
actually reaches 4.5 -5.5V before giving any parallel programming
commands.
6.
Exit Programming mode by power the device down or by bringing RESET pin to 0V.
28.7.2
Considerations for Efficient Programming
The loaded command and address are retained in the device during programming. For efficient
programming, the following should be considered.
• The command needs only be loaded once when writing or reading multiple memory locations.
• Skip writing the data value 0xFF, that is the contents of the entire EEPROM (unless the
EESAVE Fuse is programmed) and Flash after a Chip Erase.
• Address high byte needs only be loaded before programming or reading a new 256 word
window in Flash or 256 byte EEPROM. This consideration also applies to Signature bytes
reading.
0000 1000
Read Signature Bytes and Calibration byte
0000 0100
Read Fuse and Lock bits
0000 0010
Read Flash
0000 0011
Read EEPROM
Table 28-16.
Command Byte Bit Coding
Command Byte
Command Executed