ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.06.2025
Просмотров: 3655
Скачиваний: 0
0xFF in all locations, programming of addresses that are meant to contain 0xFF, can be |
||||||
skipped. See Table 97 for tWD_FLASH value. |
||||||
Data Polling EEPROM |
When a new byte has been written and is being programmed into EEPROM, reading the |
|||||
address location being programmed will give the value 0xFF. At the time the device is |
||||||
ready for a new byte, the programmed value will read correctly. This is used to deter- |
||||||
mine when the next byte can be written. This will not work for the value 0xFF, but the |
||||||
user should have the following in mind: As a chip-erased device contains 0xFF in all |
||||||
locations, programming of addresses that are meant to contain 0xFF, can be skipped. |
||||||
This does not apply if the EEPROM is Re-programmed without chip-erasing the device. |
||||||
In this case, data polling cannot be used for the value 0xFF, and the user will have to |
||||||
wait at least tWD_EEPROM before programming the next byte. See Table 97 for tWD_EEPROM |
||||||
value. |
||||||
Table 97. Minimum Wait Delay Before Writing the Next Flash or EEPROM Location |
||||||
Symbol |
Minimum Wait Delay |
|||||
tWD_FUSE |
4.5 ms |
|||||
tWD_FLASH |
4.5 ms |
|||||
tWD_EEPROM |
9.0 ms |
|||||
tWD_ERASE |
9.0 ms |
|||||
Figure 113. Serial Programming Waveforms
SERIAL DATA INPUT |
MSB |
LSB |
(MOSI) |
||
SERIAL DATA OUTPUT |
MSB |
LSB |
(MISO) |
||
SERIAL CLOCK INPUT |
||
(SCK) |
||
SAMPLE |
236 ATmega8(L)
2486O–AVR–10/04
ATmega8(L) |
||||||||||
Table 98. Serial Programming Instruction Set |
||||||||||
Instruction Format |
||||||||||
Instruction |
Byte 1 |
Byte 2 |
Byte 3 |
Byte4 |
Operation |
|||||
Programming Enable |
1010 1100 |
0101 0011 |
xxxx xxxx |
xxxx xxxx |
Enable Serial Programming after |
|||||
RESET |
goes low. |
|||||||||
Chip Erase |
1010 1100 |
100x xxxx |
xxxx xxxx |
xxxx xxxx |
Chip Erase EEPROM and Flash. |
|||||
Read Program Memory |
0010 H000 |
0000 aaaa |
bbbb bbbb |
oooo oooo |
Read H (high or low) data o from |
|||||
Program memory at word address |
||||||||||
a:b. |
||||||||||
Load Program Memory |
0100 H000 |
0000 xxxx |
xxxb bbbb |
iiii iiii |
Write H (high or low) data i to |
|||||
Page |
Program memory page at word |
|||||||||
address b. Data Low byte must be |
||||||||||
loaded before Data High byte is |
||||||||||
applied within the same address. |
||||||||||
Write Program Memory |
0100 1100 |
0000 aaaa |
bbbx xxxx |
xxxx xxxx |
Write Program memory Page at |
|||||
Page |
address a:b. |
|||||||||
Read EEPROM Memory |
1010 0000 |
00xx xxxa |
bbbb bbbb |
oooo oooo |
Read data o from EEPROM |
|||||
memory at address a:b. |
||||||||||
Write EEPROM Memory |
1100 0000 |
00xx xxxa |
bbbb bbbb |
iiii iiii |
Write data i to EEPROM memory |
|||||
at address a:b. |
||||||||||
Read Lock Bits |
0101 1000 |
0000 0000 |
xxxx xxxx |
xxoo oooo |
Read Lock Bits. “0” = programmed, |
|||||
“1” = unprogrammed. See Table |
||||||||||
85 on page 219 for details. |
||||||||||
Write Lock Bits |
1010 1100 |
111x xxxx |
xxxx xxxx |
11ii iiii |
Write Lock Bits. Set bits = “0” to |
|||||
program Lock Bits. See Table 85 |
||||||||||
on page 219 for details. |
||||||||||
Read Signature Byte |
0011 0000 |
00xx xxxx |
xxxx xxbb |
oooo oooo |
Read Signature Byte o at address |
|||||
b. |
||||||||||
Write Fuse Bits |
1010 1100 |
1010 0000 |
xxxx xxxx |
iiii iiii |
Set bits = “0” to program, “1” to |
|||||
unprogram. See Table 88 on |
||||||||||
page 221 for details. |
||||||||||
Write Fuse High Bits |
1010 1100 |
1010 1000 |
xxxx xxxx |
iiii iiii |
Set bits = “0” to program, “1” to |
|||||
unprogram. See Table 87 on |
||||||||||
page 220 for details. |
||||||||||
Read Fuse Bits |
0101 0000 |
0000 0000 |
xxxx xxxx |
oooo oooo |
Read Fuse Bits. “0” = programmed, |
|||||
“1” = unprogrammed. See Table |
||||||||||
88 on page 221 for details. |
||||||||||
Read Fuse High Bits |
0101 1000 |
0000 1000 |
xxxx xxxx |
oooo oooo |
Read Fuse high bits. “0” = pro- |
|||||
grammed, “1” = unprogrammed. |
||||||||||
See Table 87 on page 220 for |
||||||||||
details. |
||||||||||
Read Calibration Byte |
0011 1000 |
00xx xxxx |
0000 00bb |
oooo oooo |
Read Calibration Byte |
|||||
Note: a = address high bits |
||||||||||
b = address low bits |
||||||||||
H = 0 – Low byte, 1 – High byte o = data out
i = data in
x = don’t care
237
2486O–AVR–10/04