UM10310_1
© NXP B.V. 2008. All rights reserved.
User manual
Rev. 01 — 1 December 2008
113 of 139
NXP Semiconductors
UM10310
P89LPC9321 User manual
•
Internal fixed boot ROM, containing low-level In-Application Programming (IAP)
routines that can be called from the end application (in addition to IAP-Lite).
•
Default serial loader providing In-System Programming (ISP) via the serial port,
located in upper end of user program memory.
•
Boot vector allows user provided Flash loader code to reside anywhere in the Flash
memory space, providing flexibility to the user.
•
Programming and erase over the full operating voltage range
•
Read/Programming/Erase using ISP, IAP or IAP-Lite
•
Any flash program operation in 2 ms (4 ms for erase/program)
•
Programmable security for the code in the Flash for each sector
•
> 100,000 typical erase/program cycles for each byte
•
10-year minimum data retention
18.3 Flash programming and erase
The P89LPC9321 program memory consists 1 kB sectors. Each sector can be further
divided into 64-byte pages. In addition to sector erase and page erase, a 64-byte page
register is included which allows from 1 to 64 bytes of a given page to be programmed at
the same time, substantially reducing overall programming time. Five methods of
programming this device are available.
•
Parallel programming with industry-standard commercial programmers.
•
In-Circuit serial Programming (ICP) with industry-standard commercial programmers.
•
IAP-Lite allows individual and multiple bytes of code memory to be used for data
storage and programmed under control of the end application.
•
Internal fixed boot ROM, containing low-level In-Application Programming (IAP)
routines that can be called from the end application (in addition to IAP-Lite).
•
A factory-provided default serial loader, located in upper end of user program
memory, providing In-System Programming (ISP) via the serial port.
•
Note: Flash erase/program will be blocked if BOD FLASH is detected (V
DD
<2.4 V).
18.4 Using Flash as data storage: IAP-Lite
The Flash code memory array of this device supports IAP-Lite in addition to standard IAP
functions. Any byte in a non-secured sector of the code memory array may be read using
the MOVC instruction and thus is suitable for use as non-volatile data storage. IAP-Lite
provides an erase-program function that makes it easy for one or more bytes within a
page to be erased and programmed in a single operation without the need to erase or
program any other bytes in the page. IAP-Lite is performed in the application under the
control of the microcontroller’s firmware using four SFRs and an internal 64-byte ‘page
register’ to facilitate erasing and programing within unsecured sectors. These SFRs are:
•
FMCON (Flash Control Register). When read, this is the status register. When written,
this is a command register. Note that the status bits are cleared to logic 0s when the
command is written.
•
FMADRL, FMADRH (Flash memory address low, Flash memory address high). Used
to specify the byte address within the page register or specify the page within user
code memory