- No category
advertisement
ATmega8(L)
Memory
Programming
Program And Data
Memory Lock Bits
The ATmega8 provides six Lock Bits which can be left unprogrammed (“1”) or can be programmed (“0”) to obtain the additional features listed in
. The Lock Bits can only be erased to “1” with the Chip Erase command.
Table 85. Lock Bit Byte
Lock Bit Byte
BLB12
BLB11
BLB02
BLB01
Bit No.
7
6
5
4
3
2
Description
–
–
Boot lock bit
Boot lock bit
Boot lock bit
Boot lock bit
Default Value
1 (unprogrammed)
1 (unprogrammed)
1 (unprogrammed)
1 (unprogrammed)
1 (unprogrammed)
1 (unprogrammed)
LB2
LB1
1
0
Lock bit
Lock bit
Note: 1. “1” means unprogrammed, “0” means programmed
1 (unprogrammed)
1 (unprogrammed)
Table 86. Lock Bit Protection Modes
Memory Lock Bits
LB Mode
1
LB2
1
LB1
1
Protection Type
2
3
1
0
0
0
No memory lock features enabled
Further programming of the Flash and EEPROM is disabled in Parallel and Serial Programming mode. The
Fuse Bits are locked in both Serial and Parallel
Further programming and verification of the Flash and
EEPROM is disabled in parallel and Serial Programming mode. The Fuse Bits are locked in both Serial and Parallel
BLB0 Mode BLB02 BLB01
1
2
3
4
1
1
0
0
1
0
0
1
No restrictions for SPM or LPM accessing the Application section
SPM is not allowed to write to the Application section
SPM is not allowed to write to the Application section, and
LPM executing from the Boot Loader section is not allowed to read from the Application section. If Interrupt
Vectors are placed in the Boot Loader section, interrupts are disabled while executing from the Application section
LPM executing from the Boot Loader section is not allowed to read from the Application section. If Interrupt
Vectors are placed in the Boot Loader section, interrupts are disabled while executing from the Application section
215
2486Z–AVR–02/11
Fuse Bits
Table 86. Lock Bit Protection Modes
(2)
(Continued)
Memory Lock Bits
BLB1 Mode BLB12 BLB11
Protection Type
1
2
1
1
1
0
No restrictions for SPM or LPM accessing the Boot Loader section
SPM is not allowed to write to the Boot Loader section
3
4
0
0
0
1
SPM is not allowed to write to the Boot Loader section, and LPM executing from the Application section is not allowed to read from the Boot Loader section. If Interrupt
Vectors are placed in the Application section, interrupts are disabled while executing from the Boot Loader section
LPM executing from the Application section is not allowed to read from the Boot Loader section. If Interrupt Vectors are placed in the Application section, interrupts are disabled while executing from the Boot Loader section
Notes: 1. Program the Fuse Bits before programming the Lock Bits
2. “1” means unprogrammed, “0” means programmed
The ATmega8 has two fuse bytes. Table 87 and
describe briefly the functionality of all the fuses and how they are mapped into the fuse bytes. Note that the fuses are read as logical zero, “0”, if they are programmed.
Table 87. Fuse High Byte
Fuse High
Byte
WDTON
SPIEN
EESAVE
Bit
No.
7
6
5
4
3
Description
Select if PC6 is I/O pin or RESET pin
WDT always on
Enable Serial Program and Data
Downloading
Oscillator options
EEPROM memory is preserved through the Chip Erase
Select Boot Size (see Table 82 on page 213 for details)
Default Value
1 (unprogrammed, PC6 is
RESET-pin)
1 (unprogrammed, WDT enabled by WDTCR)
0 (programmed, SPI prog. enabled)
1 (unprogrammed)
1 (unprogrammed,
EEPROM not preserved)
BOOTSZ1 2
0 (programmed)
BOOTSZ0 1
Select Boot Size (see Table 82 on page 213 for details)
0 (programmed)
BOOTRST 0 Select Reset Vector 1 (unprogrammed)
Notes: 1. The SPIEN Fuse is not accessible in Serial Programming mode
for details
3. The default value of BOOTSZ1..0 results in maximum Boot Size. See
4. When programming the RSTDISBL Fuse Parallel Programming has to be used to change fuses or perform further programming
216
ATmega8(L)
2486Z–AVR–02/11
Latching of Fuses
ATmega8(L)
Table 88. Fuse Low Byte
Fuse Low
Byte
BODLEVEL
Bit
No.
7
Description Default Value
Brown out detector trigger level 1 (unprogrammed)
BODEN
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
6
5
4
3
2
1
Brown out detector enable
Select start-up time
Select start-up time
Select Clock source
Select Clock source
Select Clock source
1 (unprogrammed, BOD disabled)
1 (unprogrammed)
0 (programmed)
1 (unprogrammed)
CKSEL0 0 Select Clock source
Notes: 1. The default value of SUT1..0 results in maximum start-up time. See
for details
2. The default setting of CKSEL3..0 results in internal RC Oscillator @ 1MHz. See
Table 2 on page 26 for details
The status of the Fuse Bits is not affected by Chip Erase. Note that the Fuse Bits are locked if lock bit1 (LB1) is programmed. Program the Fuse Bits before programming the Lock Bits.
The fuse values are latched when the device enters Programming mode and changes of the fuse values will have no effect until the part leaves Programming mode. This does not apply to the EESAVE Fuse which will take effect once it is programmed. The fuses are also latched on
Power-up in Normal mode.
217
2486Z–AVR–02/11
Signature Bytes
Calibration Byte
All Atmel microcontrollers have a 3-byte signature code which identifies the device. This code can be read in both Serial and Parallel mode, also when the device is locked. The three bytes reside in a separate address space.
For the ATmega8 the signature bytes are:
1.
0x000: 0x1E (indicates manufactured by Atmel)
2.
0x001: 0x93 (indicates 8KB Flash memory)
3.
0x002: 0x07 (indicates ATmega8 device)
The ATmega8 stores four different calibration values for the internal RC Oscillator. These bytes resides in the signature row High byte of the addresses 0x0000, 0x0001, 0x0002, and 0x0003 for 1MHz, 2MHz, 4MHz, and 8Mhz respectively. During Reset, the 1MHz value is automatically loaded into the OSCCAL Register. If other frequencies are used, the calibration value has to be
“Oscillator Calibration Register – OSCCAL” on page 31
for details.
Page Size
Table 89. No. of Words in a Page and no. of Pages in the Flash
Flash Size
4K words (8 Kbytes)
Page Size PCWORD
32 words PC[4:0]
No. of Pages
128
PCPAGE
PC[11:5]
PCMSB
11
Table 90. No. of Words in a Page and no. of Pages in the EEPROM
EEPROM Size
512 bytes
Page Size
4 bytes
PCWORD
EEA[1:0]
No. of Pages
128
PCPAGE
EEA[8:2]
EEAMSB
8
218
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Parallel
Programming
Parameters, Pin
Mapping, and
Commands
Signal Names
This section describes how to parallel program and verify Flash Program memory, EEPROM
Data memory, Memory Lock Bits, and Fuse Bits in the ATmega8. Pulses are assumed to be at least 250ns unless otherwise noted.
In this section, some pins of the ATmega8 are referenced by signal names describing their func-
tionality during parallel programming, see Figure 104 and Table 91 . Pins not described in the
following table are referenced by pin names.
The XA1/XA0 pins determine the action executed when the XTAL1 pin is given a positive pulse.
The bit coding is shown in Table 93 on page 220
.
When pulsing WR or OE, the command loaded determines the action executed. The different
Commands are shown in
.
Figure 104. Parallel Programming
RDY/BSY
OE
WR
BS1
XA0
XA1
PAGEL
+12 V
BS2
+5V
PD1
PD2
VCC
PD3
AVCC
PD4
PC[1:0]:PB[5:0]
PD5
PD6
PD7
RESET
PC2
XTAL1
GND
+5V
DATA
Table 91. Pin Name Mapping
Signal Name in
Programming Mode Pin Name
RDY/BSY PD1
OE
WR
BS1
XA0
XA1
PD2
PD3
PD4
PD5
PD6
I/O Function
O
0: Device is busy programming, 1: Device is ready for new command
I Output Enable (Active low)
I
I Write Pulse (Active low)
Byte Select 1 (“0” selects Low byte, “1” selects High byte)
I XTAL Action Bit 0
I XTAL Action Bit 1
219
2486Z–AVR–02/11
Table 91. Pin Name Mapping (Continued)
Signal Name in
Programming Mode
PAGEL
BS2
DATA
Pin Name
PD7
PC2
{PC[1:0]: PB[5:0]}
I/O Function
I
Program memory and EEPROM Data
Page Load
I
I/O
Byte Select 2 (“0” selects Low byte, “1” selects 2’nd High byte)
Bi-directional Data bus (Output when OE is low)
Table 92. Pin Values used to Enter Programming Mode
Pin
PAGEL
XA1
XA0
BS1
Symbol
Prog_enable[3]
Prog_enable[2]
Prog_enable[1]
Prog_enable[0]
Value
0
0
0
0
Table 93. XA1 and XA0 Coding
XA1 XA0 Action when XTAL1 is Pulsed
0 0 Load Flash or EEPROM Address (High or low address byte determined by BS1)
0
1
1
1
0
1
Load Data (High or Low data byte for Flash determined by BS1)
Load Command
No Action, Idle
Table 94. Command Byte Bit Coding
Command Byte
1000 0000
0100 0000
0010 0000
0001 0000
0001 0001
0000 1000
0000 0100
0000 0010
0000 0011
Command Executed
Chip Erase
Write Fuse Bits
Write Lock Bits
Write Flash
Write EEPROM
Read Signature Bytes and Calibration byte
Read Fuse and Lock Bits
Read Flash
Read EEPROM
220
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Parallel
Programming
Enter Programming
Mode
The following algorithm puts the device in Parallel Programming mode:
1.
Apply 4.5V - 5.5V between V
CC
and GND, and wait at least 100µs
2.
Set RESET to “0” and toggle XTAL1 at least 6 times
3.
Set the Prog_enable pins listed in Table 92 on page 220
to “0000” and wait at least
100ns
4.
Apply 11.5V - 12.5V to RESET. Any activity on Prog_enable pins within 100ns after +12V has been applied to RESET, will cause the device to fail entering Programming mode
Note, if the RESET pin is disabled by programming the RSTDISBL Fuse, it may not be possible to follow the proposed algorithm above. The same may apply when External Crystal or External
RC configuration is selected because it is not possible to apply qualified XTAL1 pulses. In such cases, the following algorithm should be followed:
1.
Set Prog_enable pins listed in
Table 92 on page 220 to “0000”
2.
Apply 4.5V - 5.5V between V
CC
and GND simultaneously as 11.5V - 12.5V is applied to
RESET
3.
Wait 100ns
4.
Re-program the fuses to ensure that External Clock is selected as clock source
(CKSEL3:0 = 0’b0000) and RESET pin is activated (RSTDISBL unprogrammed). If Lock
Bits are programmed, a chip erase command must be executed before changing the fuses
5.
Exit Programming mode by power the device down or by bringing RESET pin to 0’b0
6.
Entering Programming mode with the original algorithm, as described above
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
Chip Erase
The Chip Erase will erase the Flash and EEPROM
memories plus Lock Bits. The Lock Bits are
not reset until the Program memory has been completely erased. The Fuse Bits are not changed. A Chip Erase must be performed before the Flash and/or the EEPROM are reprogrammed.
Note: 1. The EEPRPOM memory is preserved during chip erase if the EESAVE Fuse is programmed
Load Command “Chip Erase”
1.
Set XA1, XA0 to “10”. This enables command loading
2.
Set BS1 to “0”
3.
Set DATA to “1000 0000”. This is the command for Chip Erase
4.
Give XTAL1 a positive pulse. This loads the command
5.
Give WR a negative pulse. This starts the Chip Erase. RDY/BSY goes low
6.
Wait until RDY/BSY goes high before loading a new command
221
2486Z–AVR–02/11
Programming the
Flash
The Flash is organized in pages, see
Table 89 on page 218 . When programming the Flash, the
program data is latched into a page buffer. This allows one page of program data to be programmed simultaneously. The following procedure describes how to program the entire Flash memory:
A. Load Command “Write Flash”
1.
Set XA1, XA0 to “10”. This enables command loading
2.
Set BS1 to ”0”
3.
Set DATA to “0001 0000”. This is the command for Write Flash
4.
Give XTAL1 a positive pulse. This loads the command
B. Load Address Low byte
1.
Set XA1, XA0 to “00”. This enables address loading
2.
Set BS1 to “0”. This selects low address
3.
Set DATA = Address Low byte (0x00 - 0xFF)
4.
Give XTAL1 a positive pulse. This loads the address Low byte
C. Load Data Low byte
1.
Set XA1, XA0 to “01”. This enables data loading
2.
Set DATA = Data Low byte (0x00 - 0xFF)
3.
Give XTAL1 a positive pulse. This loads the data byte
D. Load Data High byte
1.
Set BS1 to “1”. This selects high data byte
2.
Set XA1, XA0 to “01”. This enables data loading
3.
Set DATA = Data High byte (0x00 - 0xFF)
4.
Give XTAL1 a positive pulse. This loads the data byte
E. Latch Data
1.
Set BS1 to “1”. This selects high data byte
2.
Give PAGEL a positive pulse. This latches the data bytes (see
for signal waveforms)
F. Repeat B through E until the entire buffer is filled or until all data within the page is loaded
While the lower bits in the address are mapped to words within the page, the higher bits address the pages within the FLASH. This is illustrated in
Figure 105 on page 223 . Note that if less than
eight bits are required to address words in the page (pagesize <256), the most significant bit(s) in the address Low byte are used to address the page when performing a page write.
G. Load Address High byte
1.
Set XA1, XA0 to “00”. This enables address loading
2.
Set BS1 to “1”. This selects high address
3.
Set DATA = Address High byte (0x00 - 0xFF)
4.
Give XTAL1 a positive pulse. This loads the address High byte
H. Program Page
1.
Set BS1 = “0”
2.
Give WR a negative pulse. This starts programming of the entire page of data. RDY/BSY goes low
3.
Wait until RDY/BSY goes high. (See
Figure 106 on page 224 for signal waveforms)
222
ATmega8(L)
2486Z–AVR–02/11
2486Z–AVR–02/11
ATmega8(L)
I. Repeat B through H until the entire Flash is programmed or until all data has been programmed.
J. End Page Programming
1.
Set XA1, XA0 to “10”. This enables command loading
2.
Set DATA to “0000 0000”. This is the command for No Operation
3.
Give XTAL1 a positive pulse. This loads the command, and the internal write signals are reset
Figure 105. Addressing the Flash which is Organized in Pages
PROGRAM
COUNTER
PCMSB
PCPAGE
PAGEMSB
PCWORD
PAGE ADDRESS
WITHIN THE FLASH
WORD ADDRESS
WITHIN A PAGE
PROGRAM MEMORY
PAGE
PAGE
INSTRUCTION WORD
PCWORD[PAGEMSB:0]:
00
01
02
PAGEEND
Note: 1. PCPAGE and PCWORD are listed in
223
Programming the
EEPROM
Figure 106. Programming the Flash Waveforms
F
A
0x10
B C D
ADDR. LOW DATA LOW DATA HIGH
E
XX
B C D
ADDR. LOW DATA LOW DATA HIGH
E
XX
G
ADDR. HIGH
H
XX
XTAL1
WR
RDY/BSY
RESET +12V
OE
PAGEL
BS2
DATA
XA1
XA0
BS1
Note: 1. “XX” is don’t care. The letters refer to the programming description above
The EEPROM is organized in pages, see
. When programming the
EEPROM, the program data is latched into a page buffer. This allows one page of data to be programmed simultaneously. The programming algorithm for the EEPROM Data memory is as follows (refer to
“Programming the Flash” on page 222
for details on Command, Address and
Data loading):
1.
A: Load Command “0001 0001”
2.
G: Load Address High byte (0x00 - 0xFF)
3.
B: Load Address Low byte (0x00 - 0xFF)
4.
C: Load Data (0x00 - 0xFF)
5.
E: Latch data (give PAGEL a positive pulse)
K: Repeat 3 through 5 until the entire buffer is filled
L: Program EEPROM page
1.
Set BS1 to “0”
2.
Give WR a negative pulse. This starts programming of the EEPROM page. RDY/BSY goes low
3.
Wait until to RDY/BSY goes high before programming the next page (see
for signal waveforms)
224
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Figure 107. Programming the EEPROM Waveforms
K
A
0x11
G B
ADDR. HIGH ADDR. LOW
C E
DATA
XX
B
ADDR. LOW
C
DATA XX
E L
WR
RDY/BSY
RESET +12V
OE
PAGEL
BS2
DATA
XA1
XA0
BS1
XTAL1
Reading the Flash
Reading the EEPROM
The algorithm for reading the EEPROM memory is as follows (refer to
“Programming the Flash” on page 222 for details on Command and Address loading):
1.
A: Load Command “0000 0011”
2.
G: Load Address High byte (0x00 - 0xFF)
3.
B: Load Address Low byte (0x00 - 0xFF)
4.
Set OE to “0”, and BS1 to “0”. The EEPROM Data byte can now be read at DATA
5.
Set OE to “1”
Programming the
Fuse Low Bits
The algorithm for reading the Flash memory is as follows (refer to
“Programming the Flash” on page 222
for details on Command and Address loading):
1.
A: Load Command “0000 0010”
2.
G: Load Address High byte (0x00 - 0xFF)
3.
B: Load Address Low byte (0x00 - 0xFF)
4.
Set OE to “0”, and BS1 to “0”. The Flash word Low byte can now be read at DATA
5.
Set BS1 to “1”. The Flash word High byte can now be read at DATA
6.
Set OE to “1”
The algorithm for programming the Fuse Low bits is as follows (refer to
“Programming the Flash” on page 222 for details on Command and Data loading):
1.
A: Load Command “0100 0000”
2.
C: Load Data Low byte. Bit n = “0” programs and bit n = “1” erases the Fuse bit
3.
Set BS1 and BS2 to “0”
4.
Give WR a negative pulse and wait for RDY/BSY to go high
225
2486Z–AVR–02/11
Programming the
Fuse High Bits
The algorithm for programming the Fuse high bits is as follows (refer to
“Programming the Flash” on page 222 for details on Command and Data loading):
1.
A: Load Command “0100 0000”
2.
C: Load Data Low byte. Bit n = “0” programs and bit n = “1” erases the Fuse bit
3.
Set BS1 to “1” and BS2 to “0”. This selects high data byte
4.
Give WR a negative pulse and wait for RDY/BSY to go high
5.
Set BS1 to “0”. This selects low data byte
Programming the Lock
Bits
for details on Command and Data loading):
1.
A: Load Command “0010 0000”
2.
C: Load Data Low byte. Bit n = “0” programs the Lock bit
3.
Give WR a negative pulse and wait for RDY/BSY to go high
The Lock Bits can only be cleared by executing Chip Erase.
Reading the Fuse and
Lock Bits
1.
A: Load Command “0000 0100”
2.
Set OE to “0”, BS2 to “0”, and BS1 to “0”. The status of the Fuse Low bits can now be read at DATA (“0” means programmed)
3.
Set OE to “0”, BS2 to “1”, and BS1 to “1”. The status of the Fuse High bits can now be read at DATA (“0” means programmed)
4.
Set OE to “0”, BS2 to “0”, and BS1 to “1”. The status of the Lock Bits can now be read at
DATA (“0” means programmed)
5.
Set OE to “1”
Figure 108. Mapping Between BS1, BS2 and the Fuse- and Lock Bits During Read
Fuse low byte 0
DATA
Lock bits
0
1
Fuse high byte
1
BS2
BS1
226
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Reading the Signature
Bytes
for details on Command and Address loading):
1.
A: Load Command “0000 1000”
2.
B: Load Address Low byte (0x00 - 0x02)
3.
Set OE to “0”, and BS1 to “0”. The selected Signature byte can now be read at DATA.
4.
Set OE to “1”
Reading the
Calibration Byte
The algorithm for reading the Calibration bytes is as follows (refer to
“Programming the Flash” on page 222
for details on Command and Address loading):
1.
A: Load Command “0000 1000”
2.
B: Load Address Low byte, (0x00 - 0x03)
3.
Set OE to “0”, and BS1 to “1”. The Calibration byte can now be read at DATA
4.
Set OE to “1”
Parallel Programming
Characteristics
Figure 109. Parallel Programming Timing, Including some General Timing Requirements t
XLWL
XTAL1 t
XHXL t
DVXH t
XLDX
Data & Contol
(DATA, XA0/1, BS1, BS2) t
BVPH t
PLBX t
BVWL t
WLBX
PAGEL t
PHPL t
WL WH
WR t
PLWL
WLRL
RDY/BSY t
WLRH
Figure 110. Parallel Programming Timing, Loading Sequence with Timing Requirements
LOAD ADDRESS
(LOW BYTE)
LOAD DATA
(LOW BYTE)
LOAD DATA
(HIGH BYTE)
LOAD DATA
LOAD ADDRESS
(LOW BYTE) t
XLXH t
XLPH t
PLXH
XTAL1
BS1
PAGEL
DATA
ADDR0 (Low Byte) DATA (Low Byte) DATA (High Byte) ADDR1 (Low Byte)
XA0
XA1
Note: 1. The timing requirements shown in
(that is, t
DVXH loading operation
, t
XHXL
, and t
XLDX
) also apply to
227
2486Z–AVR–02/11
Figure 111. Parallel Programming Timing, Reading Sequence (within the same Page) with Timing Requirements
LOAD ADDRESS
(LOW BYTE)
READ DATA
(LOW BYTE)
READ DATA
(HIGH BYTE)
LOAD ADDRESS
(LOW BYTE) t
XLOL
XTAL1 t
BVDV
BS1 t
OLDV
OE t
OHDZ
DATA
ADDR0 (Low Byte) DATA (Low Byte)
DATA (High Byte)
ADDR1 (Low Byte)
XA0
XA1
Note: 1. The timing requirements shown in
(that is, t
DVXH also apply to reading operation
, t
XHXL
, and t
XLDX
)
Table 95. Parallel Programming Characteristics, V
CC
= 5V ±10%
Symbol Parameter Min Typ Max Units
V
PP
I
PP t
DVXH t
XLXH t
XHXL t
XLDX t
XLWL t
XLPH t
PLXH t
BVPH t
PHPL t
PLBX t
WLBX t
PLWL t
BVWL t
WLWH t
WLRL t
WLRH t
WLRH_CE
Programming Enable Voltage
Programming Enable Current
Data and Control Valid before XTAL1 High
XTAL1 Low to XTAL1 High
XTAL1 Pulse Width High
Data and Control Hold after XTAL1 Low
XTAL1 Low to WR Low
XTAL1 Low to PAGEL high
PAGEL low to XTAL1 high
BS1 Valid before PAGEL High
PAGEL Pulse Width High
BS1 Hold after PAGEL Low
BS2/1 Hold after WR Low
PAGEL Low to WR Low
BS1 Valid to WR Low
WR Pulse Width Low
WR Low to RDY/BSY Low
WR Low to RDY/BSY High for Chip Erase
11.5
67
67
67
150
150
67
150
67
67
200
150
67
0
0
0
3.7
7.5
12.5
250
1
4.5
9
V
μA ns
μs ms
228
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Table 95. Parallel Programming Characteristics, V
CC
= 5V ±10% (Continued)
Symbol Parameter Min Typ Max Units
t
XLOL t
BVDV
XTAL1 Low to OE Low
BS1 Valid to DATA valid
0
0 250
OE Low to DATA Valid 250 ns t
OLDV t
OHDZ
OE High to DATA Tri-stated 250
Notes: 1. t
WLRH is valid for the Write Flash, Write EEPROM, Write Fuse Bits and Write Lock Bits commands
2. t
WLRH_CE is valid for the Chip Erase command
2486Z–AVR–02/11
229
Serial
Downloading
Both the Flash and EEPROM memory arrays can be programmed using the serial SPI bus while
RESET is pulled to GND. The serial interface consists of pins SCK, MOSI (input) and MISO (output). After RESET is set low, the Programming Enable instruction needs to be executed first before program/erase operations can be executed. NOTE, in
, the pin mapping for SPI programming is listed. Not all parts use the SPI pins dedicated for the internal SPI interface.
Serial
Programming Pin
Mapping
Table 96. Pin Mapping Serial Programming
Symbol
MOSI
MISO
SCK
Pins
PB3
PB4
PB5
I/O
I
O
I
Figure 112. Serial Programming and Verify
Description
Serial data in
Serial data out
Serial clock
MOSI
MISO
S CK
PB3
PB4
PB5
XTAL1
+2.7V - 5.5V
VCC
+2.7V - 5.5V
(2)
AVCC
RESET
GND
Notes: 1. If the device is clocked by the Internal Oscillator, it is no need to connect a clock source to the
XTAL1 pin
2. V
CC
- 0.3 <
AV
CC
< V
CC
+ 0.3, however,
AV
CC
should always be within 2.7V - 5.5V
When programming the EEPROM, an auto-erase cycle is built into the self-timed programming operation (in the Serial mode ONLY) and there is no need to first execute the Chip Erase instruction. The Chip Erase operation turns the content of every memory location in both the
Program and EEPROM arrays into 0xFF.
Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods for the Serial Clock (SCK) input are defined as follows:
Low:> 2 CPU clock cycles for f ck
<12MHz, 3 CPU clock cycles for f ck
>=12MHz
High:> 2 CPU clock cycles for f ck
<12MHz, 3 CPU clock cycles for f ck
>=12MHz
230
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Serial Programming
Algorithm
Data Polling Flash
When writing serial data to the ATmega8, data is clocked on the rising edge of SCK.
When reading data from the ATmega8, data is clocked on the falling edge of SCK. See
for timing details.
To program and verify the ATmega8 in the Serial Programming mode, the following sequence is recommended (see four byte instruction formats in
1.
Power-up sequence:
Apply power between V
CC
and GND while RESET and SCK are set to “0”. In some systems, the programmer can not guarantee that SCK is held low during Power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to “0”
2.
Wait for at least 20ms and enable Serial Programming by sending the Programming
Enable serial instruction to pin MOSI
3.
The Serial Programming instructions will not work if the communication is out of synchronization. When in sync. the second byte (0x53), will echo back when issuing the third byte of the Programming Enable instruction. Whether the echo is correct or not, all four bytes of the instruction must be transmitted. If the 0x53 did not echo back, give RESET a positive pulse and issue a new Programming Enable command
4.
The Flash is programmed one page at a time. The page size is found in
Table 89 on page 218 . The memory page is loaded one byte at a time by supplying the 5 LSB of the
address and data together with the Load Program memory Page instruction. To ensure correct loading of the page, the data Low byte must be loaded before data High byte is applied for a given address. The Program memory Page is stored by loading the Write
Program memory Page instruction with the 7MSB of the address. If polling is not used, the user must wait at least t
WD_FLASH
before issuing the next page (see
Note: If other commands than polling (read) are applied before any write operation (FLASH,
EEPROM, Lock Bits, Fuses) is completed, it may result in incorrect programming
5.
The EEPROM array is programmed one byte at a time by supplying the address and data together with the appropriate Write instruction. An EEPROM memory location is first automatically erased before new data is written. If polling is not used, the user must wait at least t
WD_EEPROM
before issuing the next byte (see Table 97 on page 232 ). In a chip
erased device, no 0xFFs in the data file(s) need to be programmed
6.
Any memory location can be verified by using the Read instruction which returns the content at the selected address at serial output MISO
7.
At the end of the programming session, RESET can be set high to commence normal operation
8.
Power-off sequence (if needed):
Set RESET to “1”
Turn V
CC
power off
When a page is being programmed into the Flash, reading an address location within the page being programmed will give the value 0xFF. At the time the device is ready for a new page, the programmed value will read correctly. This is used to determine when the next page can be written. Note that the entire page is written simultaneously and any address within the page can be used for polling. Data polling of the Flash will not work for the value 0xFF, so when programming this value, the user will have to wait for at least t
WD_FLASH
before programming the next page. As a chip-erased device contains 0xFF in all locations, programming of addresses that are meant to
contain 0xFF, can be skipped. See Table 97 on page 232
for t
WD_FLASH
value.
231
2486Z–AVR–02/11
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 determine 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 t
WD_EEPROM
WD_EEPROM
value.
before programming the next byte. See
Table 97. Minimum Wait Delay Before Writing the Next Flash or EEPROM Location
Symbol
t
WD_FUSE t
WD_FLASH t
WD_EEPROM t
WD_ERASE
Minimum Wait Delay
4.5ms
4.5ms
9.0ms
9.0ms
Figure 113. Serial Programming Waveforms
SERIAL DATA INPUT
(MOSI)
MSB LSB
SERIAL DATA OUTPUT
(MISO)
MSB LSB
SERIAL CLOCK INPUT
(SCK)
SAMPLE
232
ATmega8(L)
2486Z–AVR–02/11
ATmega8(L)
Table 98. Serial Programming Instruction Set
Instruction
Programming Enable
Chip Erase
Read Program Memory
Load Program Memory
Page
Write Program Memory
Page
Read EEPROM Memory
Write EEPROM Memory
Read Lock Bits
Write Lock Bits
Read Signature Byte
Write Fuse Bits
Write Fuse High Bits
Read Fuse Bits
Read Fuse High Bits
Byte 1
1010 1100
Instruction Format
Byte 2 Byte 3
0101 0011 xxxx xxxx
1010 1100
0010 H000
100x xxxx
0000
aaaa
xxxx xxxx
bbbb bbbb
0100
H000
0000 xxxx xxx
b bbbb
0100 1100 0000
aaaa
bbbx xxxx
1010 0000 00xx xxx
a bbbb bbbb
1100 0000 00xx xxx
a bbbb bbbb
0101 1000 0000 0000 xxxx xxxx
1010 1100 111x xxxx xxxx xxxx
0011 0000 00xx xxxx xxxx xx
bb
1010 1100 1010 0000 xxxx xxxx
1010 1100 1010 1000 xxxx xxxx
0101 0000 0000 0000 xxxx xxxx
0101 1000 0000 1000 xxxx xxxx
Read Calibration Byte
0011 1000
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
00xx xxxx 0000 00
bb
Byte 4 Operation
xxxx xxxx
Enable Serial Programming after
RESET goes low xxxx xxxx
Chip Erase EEPROM and Flash
oooo oooo
Read H (high or low) data o from
Program memory at word address
a:b
iiii iiii
Write H (high or low) data i to
Program memory page at word address b. Data Low byte must be loaded before Data High byte is applied within the same address xxxx xxxx
Write Program memory Page at address a:b
oooo oooo
Read data o from EEPROM memory at address a:b
iiii iiii
Write data i to EEPROM memory at address a:b xx
oo oooo
Read Lock Bits. “0” = programmed,
“1” = unprogrammed. See
11
ii iiii
Write Lock Bits. Set bits = “0” to program Lock Bits. See
oooo oooo
Read Signature Byte o at address
b iiii iiii
Set bits = “0” to program, “1” to unprogram. See
for details
iiii iiii
Set bits = “0” to program, “1” to unprogram. See
for details
oooo oooo
Read Fuse Bits. “0” = programmed,
“1” = unprogrammed. See
oooo oooo
Read Fuse high bits. “0” = programmed, “1” = unprogrammed.
for details
oooo oooo
Read Calibration Byte
233
2486Z–AVR–02/11
SPI Serial
Programming
Characteristics
For characteristics of the SPI module, see
“SPI Timing Characteristics” on page 239
.
234
ATmega8(L)
2486Z–AVR–02/11
advertisement
Related manuals
advertisement
Table of contents
- 1 Features
- 2 Pin Configurations
- 3 Overview
- 3 Block Diagram
- 4 Disclaimer
- 5 Pin Descriptions
- 5 VCC
- 5 GND
- 5 Port B (PB7..PB0) XTAL1/XTAL2/TOSC1/ TOSC2
- 5 Port C (PC5..PC0)
- 5 PC6/RESET
- 5 Port D (PD7..PD0)
- 5 RESET
- 6 AVCC
- 6 AREF
- 6 ADC7..6 (TQFP and QFN/MLF Package Only)
- 7 Resources
- 7 Data Retention
- 8 About Code Examples
- 9 Atmel AVR CPU Core
- 9 Introduction
- 9 Architectural Overview
- 11 Arithmetic Logic Unit – ALU
- 11 Status Register
- 12 General Purpose Register File
- 13 The X-register, Y- register and Z-register
- 13 Stack Pointer
- 13 Instruction Execution Timing
- 14 Reset and Interrupt Handling
- 16 Interrupt Response Time
- 17 AVR ATmega8 Memories
- 17 In-System Reprogrammable Flash Program Memory
- 18 SRAM Data Memory
- 19 Data Memory Access Times
- 19 EEPROM Data Memory
- 19 EEPROM Read/Write Access
- 20 The EEPROM Address Register – EEARH and EEARL
- 20 The EEPROM Data Register – EEDR
- 20 The EEPROM Control Register – EECR
- 23 EEPROM Write during Power-down Sleep Mode
- 23 Preventing EEPROM Corruption
- 24 I/O Memory
- 25 System Clock and Clock Options
- 25 Clock Systems and their Distribution
- 25 CPU Clock – clkCPU
- 25 I/O Clock – clkI/O
- 25 Flash Clock – clkFLASH
- 26 Asynchronous Timer Clock – clkASY
- 26 ADC Clock – clkADC
- 26 Clock Sources
- 27 Crystal Oscillator
- 28 Low-frequency Crystal Oscillator
- 28 External RC Oscillator
- 30 Calibrated Internal RC Oscillator
- 31 Oscillator Calibration Register – OSCCAL
- 32 External Clock
- 32 Timer/Counter Oscillator
- 33 Power Management and Sleep Modes
- 33 MCU Control Register – MCUCR
- 34 Idle Mode
- 34 ADC Noise Reduction Mode
- 34 Power-down Mode
- 34 Power-save Mode
- 35 Standby Mode
- 35 Minimizing Power Consumption
- 35 Analog-to-Digital Converter (ADC)
- 35 Analog Comparator
- 36 Brown-out Detector
- 36 Internal Voltage Reference
- 36 Watchdog Timer
- 36 Port Pins
- 37 System Control and Reset
- 37 Resetting the AVR
- 37 Reset Sources
- 39 Power-on Reset
- 40 External Reset
- 40 Brown-out Detection
- 41 Watchdog Reset
- 41 MCU Control and Status Register – MCUCSR
- 42 Internal Voltage Reference
- 42 Voltage Reference Enable Signals and Start-up Time
- 43 Watchdog Timer
- 43 Watchdog Timer Control Register – WDTCR
- 45 Timed Sequences for Changing the Configuration of the Watchdog Timer
- 45 Safety Level 1 (WDTON Fuse Unprogrammed)
- 45 Safety Level 2 (WDTON Fuse Programmed)
- 46 Interrupts
- 46 Interrupt Vectors in ATmega8
- 49 Moving Interrupts Between Application and Boot Space
- 49 General Interrupt Control Register – GICR
- 51 I/O Ports
- 51 Introduction
- 52 Ports as General Digital I/O
- 52 Configuring the Pin
- 53 Reading the Pin Value
- 55 Digital Input Enable and Sleep Modes
- 56 Unconnected pins
- 56 Alternate Port Functions
- 58 Special Function IO Register – SFIOR
- 58 Alternate Functions of Port B
- 61 Alternate Functions of Port C
- 63 Alternate Functions of Port D
- 65 Register Description for I/O Ports
- 65 The Port B Data Register – PORTB
- 65 The Port B Data Direction Register – DDRB
- 65 The Port B Input Pins Address – PINB
- 65 The Port C Data Register – PORTC
- 65 The Port C Data Direction Register – DDRC
- 65 The Port C Input Pins Address – PINC
- 65 The Port D Data Register – PORTD
- 65 The Port D Data Direction Register – DDRD
- 65 The Port D Input Pins Address – PIND
- 66 External Interrupts
- 66 MCU Control Register – MCUCR
- 67 General Interrupt Control Register – GICR
- 67 General Interrupt Flag Register – GIFR
- 69 8-bit Timer/Counter0
- 69 Overview
- 69 Registers
- 69 Definitions
- 70 Timer/Counter Clock Sources
- 70 Counter Unit
- 70 Operation
- 70 Timer/Counter Timing Diagrams
- 71 8-bit Timer/Counter Register Description
- 71 Timer/Counter Control Register – TCCR0
- 72 Timer/Counter Register – TCNT0
- 72 Timer/Counter Interrupt Mask Register – TIMSK
- 72 Timer/Counter Interrupt Flag Register – TIFR
- 73 Timer/Counter0 and Timer/Counter1 Prescalers
- 73 Internal Clock Source
- 73 Prescaler Reset
- 73 External Clock Source
- 74 Special Function IO Register – SFIOR
- 75 16-bit Timer/Counter1
- 75 Overview
- 76 Registers
- 77 Definitions
- 77 Compatibility
- 77 Accessing 16-bit Registers
- 80 Reusing the Temporary High Byte Register
- 80 Timer/Counter Clock Sources
- 80 Counter Unit
- 81 Input Capture Unit
- 82 Input Capture Pin Source
- 83 Noise Canceler
- 83 Using the Input Capture Unit
- 83 Output Compare Units
- 85 Force Output Compare
- 85 Compare Match Blocking by TCNT1 Write
- 85 Using the Output Compare Unit
- 85 Compare Match Output Unit
- 87 Compare Output Mode and Waveform Generation
- 87 Modes of Operation
- 87 Normal Mode
- 87 Clear Timer on Compare Match (CTC) Mode
- 88 Fast PWM Mode
- 90 Phase Correct PWM Mode
- 92 Phase and Frequency Correct PWM Mode
- 94 Timer/Counter Timing Diagrams
- 96 16-bit Timer/Counter Register Description
- 96 Timer/Counter 1 Control Register A – TCCR1A
- 98 Timer/Counter 1 Control Register B – TCCR1B
- 99 Timer/Counter 1 – TCNT1H and TCNT1L
- 99 Output Compare Register 1 A – OCR1AH and OCR1AL
- 99 Output Compare Register 1 B – OCR1BH and OCR1BL
- 100 Input Capture Register 1 – ICR1H and ICR1L
- 100 Timer/Counter Interrupt Mask Register – TIMSK(1)
- 101 Timer/Counter Interrupt Flag Register – TIFR(1)
- 102 8-bit Timer/Counter2 with PWM and Asynchronous Operation
- 102 Overview
- 103 Registers
- 103 Definitions
- 103 Timer/Counter Clock Sources
- 104 Counter Unit
- 105 Output Compare Unit
- 106 Force Output Compare
- 106 Compare Match Blocking by TCNT2 Write
- 106 Using the Output Compare Unit
- 107 Compare Match Output Unit
- 108 Compare Output Mode and Waveform Generation
- 108 Modes of Operation
- 108 Normal Mode
- 109 Clear Timer on Compare Match (CTC) Mode
- 110 Fast PWM Mode
- 111 Phase Correct PWM Mode
- 112 Timer/Counter Timing Diagrams
- 114 8-bit Timer/Counter Register Description
- 114 Timer/Counter Control Register – TCCR2
- 116 Timer/Counter Register – TCNT2
- 116 Output Compare Register – OCR2
- 117 Asynchronous Operation of the Timer/Counter
- 117 Asynchronous Status Register – ASSR
- 117 Asynchronous Operation of Timer/Counter2
- 119 Timer/Counter Interrupt Mask Register – TIMSK
- 119 Timer/Counter Interrupt Flag Register – TIFR
- 120 Timer/Counter Prescaler
- 120 Special Function IO Register – SFIOR
- 121 Serial Peripheral Interface – SPI
- 125 SS Pin Functionality
- 125 Slave Mode
- 125 Master Mode
- 125 SPI Control Register – SPCR
- 126 SPI Status Register – SPSR
- 127 SPI Data Register – SPDR
- 127 Data Modes
- 129 USART
- 129 Overview
- 130 AVR USART vs. AVR UART – Compatibility
- 130 Clock Generation
- 131 Internal Clock Generation – The Baud Rate Generator
- 132 Double Speed Operation (U2X)
- 132 External Clock
- 132 Synchronous Clock Operation
- 133 Frame Formats
- 134 Parity Bit Calculation
- 134 USART Initialization
- 136 Data Transmission – The USART Transmitter
- 136 Sending Frames with 5 to 8 Data Bits
- 137 Sending Frames with 9 Data Bits
- 137 Transmitter Flags and Interrupts
- 138 Parity Generator
- 138 Disabling the Transmitter
- 138 Data Reception – The USART Receiver
- 138 Receiving Frames with 5 to 8 Data Bits
- 139 Receiving Frames with 9 Data Bits
- 141 Receive Compete Flag and Interrupt
- 141 Receiver Error Flags
- 141 Parity Checker
- 142 Disabling the Receiver
- 142 Flushing the Receive Buffer
- 142 Asynchronous Data Reception
- 142 Asynchronous Clock Recovery
- 143 Asynchronous Data Recovery
- 144 Asynchronous Operational Range
- 145 Multi-processor Communication Mode
- 145 Using MPCM
- 146 Accessing UBRRH/UCSRC Registers
- 146 Write Access
- 147 Read Access
- 148 USART Register Description
- 148 USART I/O Data Register – UDR
- 148 USART Control and Status Register A – UCSRA
- 149 USART Control and Status Register B – UCSRB
- 150 USART Control and Status Register C – UCSRC
- 152 USART Baud Rate Registers – UBRRL and UBRRHs
- 153 Examples of Baud Rate Setting
- 157 Two-wire Serial Interface
- 157 Features
- 157 Two-wire Serial Interface Bus Definition
- 157 TWI Terminology
- 158 Electrical Interconnection
- 158 Data Transfer and Frame Format
- 158 Transferring Bits
- 158 START and STOP Conditions
- 159 Address Packet Format
- 160 Data Packet Format
- 160 Combining Address and Data Packets into a Transmission
- 161 Multi-master Bus Systems, Arbitration and Synchronization
- 163 Overview of the TWI Module
- 163 SCL and SDA Pins
- 164 Bit Rate Generator Unit
- 164 Bus Interface Unit
- 164 Address Match Unit
- 164 Control Unit
- 165 TWI Register Description
- 165 TWI Bit Rate Register – TWBR
- 165 TWI Control Register – TWCR
- 166 TWI Status Register – TWSR
- 167 TWI Data Register – TWDR
- 167 TWI (Slave) Address Register – TWAR
- 168 Using the TWI
- 171 Transmission Modes
- 171 Master Transmitter Mode
- 175 Master Receiver Mode
- 177 Slave Receiver Mode
- 181 Slave Transmitter Mode
- 183 Miscellaneous States
- 184 Combining Several TWI Modes
- 184 Multi-master Systems and Arbitration
- 186 Analog Comparator
- 186 Special Function IO Register – SFIOR
- 186 Analog Comparator Control and Status Register – ACSR
- 188 Analog Comparator Multiplexed Input
- 189 Analog-to- Digital Converter
- 189 Features
- 191 Starting a Conversion
- 191 Prescaling and Conversion Timing
- 194 Changing Channel or Reference Selection
- 194 ADC Input Channels
- 194 ADC Voltage Reference
- 195 ADC Noise Canceler
- 195 Analog Input Circuitry
- 196 Analog Noise Canceling Techniques
- 196 ADC Accuracy Definitions
- 199 ADC Conversion Result
- 199 ADC Multiplexer Selection Register – ADMUX
- 200 ADC Control and Status Register A – ADCSRA
- 201 The ADC Data Register – ADCL and ADCH
- 202 Boot Loader Support – Read- While-Write Self- Programming
- 202 Boot Loader Features
- 202 Application and Boot Loader Flash Sections
- 202 Application Section
- 202 BLS – Boot Loader Section
- 202 Read-While-Write and No Read- While-Write Flash Sections
- 203 RWW – Read-While- Write Section
- 203 NRWW – No Read- While-Write Section
- 204 Boot Loader Lock Bits
- 205 Entering the Boot Loader Program
- 206 Store Program Memory Control Register – SPMCR
- 207 Addressing the Flash During Self- Programming
- 208 Self-Programming the Flash
- 209 Performing Page Erase by SPM
- 209 Filling the Temporary Buffer (Page Loading)
- 209 Performing a Page Write
- 209 Using the SPM Interrupt
- 209 Consideration While Updating BLS
- 209 Prevent Reading the RWW Section During Self-Programming
- 209 Setting the Boot Loader Lock Bits by SPM
- 210 EEPROM Write Prevents Writing to SPMCR
- 210 Reading the Fuse and Lock Bits from Software
- 210 Preventing Flash Corruption
- 211 Programming Time for Flash when using SPM
- 212 Simple Assembly Code Example for a Boot Loader
- 213 ATmega8 Boot Loader Parameters
- 215 Memory Programming
- 215 Program And Data Memory Lock Bits
- 216 Fuse Bits
- 217 Latching of Fuses
- 218 Signature Bytes
- 218 Calibration Byte
- 218 Page Size
- 219 Parallel Programming Parameters, Pin Mapping, and Commands
- 219 Signal Names
- 221 Parallel Programming
- 221 Enter Programming Mode
- 221 Considerations for Efficient Programming
- 221 Chip Erase
- 222 Programming the Flash
- 224 Programming the EEPROM
- 225 Reading the Flash
- 225 Reading the EEPROM
- 225 Programming the Fuse Low Bits
- 226 Programming the Fuse High Bits
- 226 Programming the Lock Bits
- 226 Reading the Fuse and Lock Bits
- 227 Reading the Signature Bytes
- 227 Reading the Calibration Byte
- 227 Parallel Programming Characteristics
- 230 Serial Downloading
- 230 Serial Programming Pin Mapping
- 231 Serial Programming Algorithm
- 231 Data Polling Flash
- 232 Data Polling EEPROM
- 234 SPI Serial Programming Characteristics
- 235 Electrical Characteristics
- 235 Absolute Maximum Ratings*
- 235 DC Characteristics
- 237 External Clock Drive Waveforms
- 237 External Clock Drive
- 238 Two-wire Serial Interface Characteristics
- 239 SPI Timing Characteristics
- 241 ADC Characteristics
- 242 ATmega8 Typical Characteristics
- 242 Active Supply Current
- 246 Idle Supply Current
- 249 Power-down Supply Current
- 250 Power-save Supply Current
- 251 Standby Supply Current
- 255 Pin Pull-up
- 257 Pin Driver Strength
- 261 Pin Thresholds and Hysteresis
- 265 Bod Thresholds and Analog Comparator Offset
- 268 Internal Oscillator Speed
- 274 Current Consumption of Peripheral Units
- 278 Current Consumption in Reset and Reset Pulsewidth
- 280 Register Summary
- 282 Instruction Set Summary
- 285 Ordering Information
- 286 Packaging Information
- 286 32A
- 287 28P3
- 288 32M1-A
- 289 Errata
- 289 ATmega8 Rev. D to I, M
- 291 Datasheet Revision History
- 291 Changes from Rev. 2486Y- 10/10 to Rev. 2486Z- 02/11
- 291 Changes from Rev. 2486X- 06/10 to Rev. 2486Y- 10/10
- 291 Changes from Rev. 2486W- 02/10 to Rev. 2486X- 06/10
- 291 Changes from Rev. 2486V- 05/09 to Rev. 2486W- 02/10
- 291 Changes from Rev. 2486U- 08/08 to Rev. 2486V- 05/09
- 291 Changes from Rev. 2486T- 05/08 to Rev. 2486U- 08/08
- 291 Changes from Rev. 2486S- 08/07 to Rev. 2486T- 05/08
- 292 Changes from Rev. 2486R- 07/07 to Rev. 2486S- 08/07
- 292 Changes from Rev. 2486Q- 10/06 to Rev. 2486R- 07/07
- 292 Changes from Rev. 2486P- 02/06 to Rev. 2486Q- 10/06
- 292 Changes from Rev. 2486O-10/04 to Rev. 2486P- 02/06
- 292 Changes from Rev. 2486N-09/04 to Rev. 2486O-10/04
- 293 Changes from Rev. 2486M-12/03 to Rev. 2486N-09/04
- 293 Changes from Rev. 2486L-10/03 to Rev. 2486M-12/03
- 293 Changes from Rev. 2486K-08/03 to Rev. 2486L-10/03
- 294 Changes from Rev. 2486J-02/03 to Rev. 2486K-08/03
- 294 Changes from Rev. 2486I-12/02 to Rev. 2486J-02/03
- 295 Changes from Rev. 2486H-09/02 to Rev. 2486I-12/02
- 295 Changes from Rev. 2486G-09/02 to Rev. 2486H-09/02
- 295 Changes from Rev. 2486F-07/02 to Rev. 2486G-09/02
- 295 Changes from Rev. 2486E-06/02 to Rev. 2486F-07/02
- 295 Changes from Rev. 2486D-03/02 to Rev. 2486E-06/02
- 295 Changes from Rev. 2486C-03/02 to Rev. 2486D-03/02
- 296 Changes from Rev. 2486B-12/01 to Rev. 2486C-03/02
- 297 Table of Contents