MC68HC16R1/916R1
USER’S MANUAL
BLOCK-ERASABLE FLASH EEPROM
MOTOROLA
9-1
SECTION 9
BLOCK-ERASABLE FLASH EEPROM
The 2-Kbyte block-erasable flash EEPROM module (BEFLASH) serves as
nonvolatile, fast-access ROM-emulation memory. It is used only in the
MC68HC916R1. The module can be used for program code that must either execute
at high speed or is frequently executed, such as operating system kernels and stan-
dard subroutines, or it can be used for static data that is read frequently. The module
can also be configured to provide bootstrap vectors for system reset.
9.1 Overview
The BEFLASH module consists of a control register block that occupies a fixed
position in MCU address space and a 2-Kbyte flash EEPROM array that can be
mapped to any 2-Kbyte boundary in MCU address space. The array can be configured
to reside in both program and data space, or in program space alone.
The flash EEPROM array can be read as either bytes, words, or long-words. The
module responds to back-to-back IMB accesses, providing two bus cycle (four system
clocks) access for aligned long words. The module can also be programmed to insert
up to three wait states per access, to accommodate migration from slower external de-
velopment memory without re-timing the system.
Both the array and the individual control bits are programmable and erasable under
software control. Program/erase voltage must be supplied via the external V
FPE2K
pin.
Data is programmed in byte or word aligned fashion. The module supports both block
and bulk erase modes, and has a minimum program/erase life of 100 cycles. Hard-
ware interlocks protect stored data from corruption if the program/erase voltage to the
BEFLASH EEPROM array is enabled accidently. The BEFLASH array is enabled/
disabled by a combination of DATA15 and the STOP shadow bit after reset.
9.2 BEFLASH Control Block
The BEFLASH module control block contains five registers: the BEFLASH module
configuration register (BFEMCR), the BEFLASH test register (BFETST), the BE-
FLASH array base address registers (BFEBAH and BFEBAL), and the BEFLASH con-
trol register (BFECTL). Four additional words in the control block can contain
bootstrap information when the BEFLASH is used as bootstrap memory. Refer to
D.9
Block Erasable Flash
for register and bit field information.
Each register in the control block has an associated shadow register that is physically
located in a spare BEFLASH row. During reset, fields within the registers are loaded
with default information from the shadow registers. Shadow registers are programmed
or erased in the same manner as locations in the BEFLASH array, using the address
of the corresponding control registers. When a shadow register is programmed, the
data is not written to the corresponding control register. The new data is not copied
into the control register until the next reset. The contents of shadow registers are
erased whenever the BEFLASH array is erased.