English
Language : 

MC68HC908EY16 Datasheet, PDF (39/278 Pages) Motorola, Inc – Microcontrollers
FLASH Memory (FLASH)
2.6.4 FLASH Program/Read Operation
Programming of the FLASH memory is done on a row basis. A row consists of 32 consecutive bytes
starting from addresses $XX00, $XX20, $XX40, $XX60, $XX80, $XXA0, $XXC0, and $XXE0. Use this
step-by-step procedure to program a row of FLASH memory (Figure 2-4 is a flowchart representation).
NOTE
To avoid program disturbs, the row must be erased before any byte on that
row is programmed.
1. Set the PGM bit. This configures the memory for program operation and enables the latching of
address and data for programming.
2. Read from the FLASH block protect register.
3. Write any data to any FLASH address within the row address range desired.
4. Wait for a time, tNVS (minimum of 10 µs).
5. Set the HVEN bit.
6. Wait for a time, tPGS (minimum of 5 µs).
7. Write data to the FLASH address(1) to be programmed.
8. Wait for a time, tPROG (minimum of 30 µs).
9. Repeat steps 7 and 8 until all the bytes within the row are programmed.
10. Clear the PGM bit.(1)
11. Wait for a time, tNVH (minimum of 5 µs).
12. Clear the HVEN bit.
13. After a time, tRCV (minimum of 1 µs), the memory can be accessed in read mode again.
This program sequence is repeated throughout the memory until all data is programmed.
NOTE
Programming and erasing of FLASH locations cannot be performed by
code being executed from the FLASH memory. While these operations
must be performed in the order shown, other unrelated operations may
occur between the steps. Do not exceed tPROG maximum.
1. The time between each FLASH address change, or the time between the last FLASH address programmed to clearing the
PGM bit, must not exceed the maximum programming time, tPROG maximum.
MC68HC908EY16 • MC68HC908EY8 Data Sheet, Rev. 10
Freescale Semiconductor
39