MPC555
/
MPC556
CDR MoneT FLASH EEPROM
MOTOROLA
USER’S MANUAL
Rev. 15 October 2000
19-18
19.5 Programming the CMF Array
To modify the charge stored in the isolated element of the CMF bit from a logic one
state to a logic zero state, a programming operation is required. This programming
operation applies the required voltages to change the charge state of the selected bits
without changing the logic state of any other bits in the CMF array. The program oper-
ation cannot change the logic zero state to a logic one state; this must be done by the
erase operation. Programming uses a set of program buffers of 64 bytes each to store
the required data, an address offset buffer to store the starting address of the block(s)
to be programmed and a block select buffer that stores information on which block(s)
are to be programmed. Any number of the array blocks may be programmed at one
time.
WARNING
Do not program any page more than once after a successful erase
operation. While this will not physically damage the array it will cause
an increased partial disturb time for the unselected bits on the row
and columns that are not programmed. If this happens, a full erase of
all blocks being programmed must be done before the CMF
EEPROM can be used reliably.
If block M of the CMF EEPROM is protected (PROTECT[M] = 1), it will not be pro-
grammed. Also, if EPEE = 0, no programming voltages will be applied to the array.
Software should verify the state of EPEE prior to programming (programming will fail
if EPEE = 0). The user should also insure that the programming voltage (5.0 ± 0.25
volts) is applied to VPP.
19.5.1 Program Sequence
The CMF EEPROM module requires a sequence of writes to the high voltage control
register (CMFCTL) and to the programming page buffer(s) in order to enable the high
voltage to the array or shadow information for program operation. See
the programming algorithm bit settings.
The required program sequence follows.
1. Write PROTECT[0:7] to disable protection on blocks to be programmed.
2. Write PAWS to 0b100, write NVR = 1, write GDB = 1.
3. Using
19.7.6 A Technique to Determine SCLKR, CLKPE, and CLKPM
, pro-
gram the following fields:
— Pulse width timing control fields for a program pulse
— BLOCK[0:7] to select the array blocks to be programmed
— PE = 0 in the CMFCTL register
4. Write SES = 1 in the CMFCTL register.
NOTE
Step 4 can be accomplished with the same write as that in step 3. It
is listed as a separate step in the sequence for looping.
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
.
..