UM10147_2
© NXP B.V. 2008. All rights reserved.
User manual
Rev. 02 — 28 April 2008
113 of 134
NXP Semiconductors
UM10147
P89LPC952/954 User manual
normal operating value. This is followed by three, and only three, properly timed low-going
pulses. Fewer or more than three pulses will result in the device not entering ISP mode.
Timing specifications may be found in the data sheet for this device.
This has the same effect as having a non-zero status bit. This allows an application to be
built that will normally execute the user code but can be manually forced into ISP
operation. If the factory default setting for the Boot Vector is changed, it will no longer
point to the factory pre-programmed ISP boot loader code. If this happens, the only way it
is possible to change the contents of the Boot Vector is through the parallel or ICP
programming method, provided that the end user application does not contain a
customized loader that provides for erasing and reprogramming of the Boot Vector and
Boot Status Bit. After programming the Flash, the status byte should be programmed to
zero in order to allow execution of the user’s application code beginning at address
0000H.
17.10 In-system programming (ISP)
In-System Programming is performed without removing the microcontroller from the
system. The In-System Programming facility consists of a series of internal hardware
resources coupled with internal firmware to facilitate remote programming of the
P89LPC952/954 through the serial port. This firmware is provided by NXP and embedded
within each P89LPC952/954 device. The NXP In-System Programming facility has made
in-circuit programming in an embedded application possible with a minimum of additional
expense in components and circuit board area. The ISP function uses five pins (V
DD
, V
SS
,
TXD0, RXD0, and RST). Only a small connector needs to be available to interface your
application to an external circuit in order to use this feature.
17.11 Using the In-system programming (ISP)
The ISP feature allows for a wide range of baud rates to be used in your application,
independent of the oscillator frequency. It is also adaptable to a wide range of oscillator
frequencies. This is accomplished by measuring the bit-time of a single bit in a received
character. This information is then used to program the baud rate in terms of timer counts
based on the oscillator frequency. The ISP feature requires that an initial character (an
uppercase U) be sent to the P89LPC952/954 to establish the baud rate. The ISP firmware
provides auto-echo of received characters. Once baud rate initialization has been
performed, the ISP firmware will only accept Intel Hex-type records. Intel Hex records
consist of ASCII characters used to represent hexadecimal values and are summarized
below:
:NNAAAARRDD..DDCC<crlf>
Fig 47. Forcing ISP mode.
002aaa912
V
DD
RST
t
RL
t
VR
t
RH