Table 2, Atmega128(l) – Rainbow Electronics ATmega128L User Manual

Page 21

Advertising
background image

21

ATmega128(L)

2467B–09/01

The EEPROM can not be programmed during a CPU write to the Flash memory. The
software must check that the Flash programming is completed before initiating a new
EEPROM write. Step 2 is only relevant if the software contains a boot loader allowing
the CPU to program the Flash. If the Flash is never being updated by the CPU, step 2
can be omitted. See

“Boot Loader Support – Read-While-Write Self-Programming” on

page 266 for details about boot programming.

Caution: An interrupt between step 5 and step 6 will make the write cycle fail, since the
EEPROM Master Write Enable will time-out. If an interrupt routine accessing the
EEPROM is interrupting another EEPROM access, the EEAR or EEDR register will be
modified, causing the interrupted EEPROM access to fail. It is recommended to have
the global interrupt flag cleared during the 4 last steps to avoid these problems.

When the write access time has elapsed, the EEWE bit is cleared by hardware. The
user software can poll this bit and wait for a zero before writing the next byte. When
EEWE has been set, the CPU is halted for two cycles before the next instruction is
executed.

• Bit 0 - EERE: EEPROM Read Enable

The EEPROM Read Enable Signal EERE is the read strobe to the EEPROM. When the
correct address is set up in the EEAR register, the EERE bit must be written to a logic
one to trigger the EEPROM read. The EEPROM read access takes one instruction, and
the requested data is available immediately. When the EEPROM is read, the CPU is
halted for four cycles before the next instruction is executed.

The user should poll the EEWE bit before starting the read operation. If a write operation
is in progress, it is neither possible to read the EEPROM, nor to change the EEAR
register.

The calibrated oscillator is used to time the EEPROM accesses.

Table 2 lists the typical

programming time for EEPROM access from the CPU.

The following code examples show one assembly and one C function for writing to the
EEPROM. The examples assume that interrupts are controlled (e.g. by disabling inter-
rupts globally) so that no interrupts will occur during execution of these functions. The
examples also assume that no flash boot loader is present in the software. If such code
is present, the EEPROM write function must also wait for any ongoing SPM command to
finish.

Table 2. EEPROM Programming Time.

Symbol

Number of Calibrated

RC Oscillator Cycles

Min Programming

Time

Max Programming

Time

EEPROM Write

(from CPU)

Approximately 8300

7.5 ms

9.0 ms

Advertising