Philips Semiconductors
Preliminary data
P89C51RB2/P89C51RC2/
P89C51RD2
80C51 8-bit Flash microcontroller family
16KB/32KB/64KB ISP/IAP Flash with 512B/512B/1KB RAM
2001 Jun 27
42
+5 V (+12 V tolerant)
+5 V
TxD
RxD
VSS
VPP
VCC
TxD
RxD
RST
XTAL2
XTAL1
SU01299
VSS
VCC
89C51RB2
89C51RC2
89C51RD2
“1”
P2.7
Figure 44. In-System Programming with a Minimum of Pins
In-System Programming (ISP)
The In-System Programming (ISP) is performed without removing
the microcontroller from the system. The In-System Programming
(ISP) facility consists of a series of internal hardware resources
coupled with internal firmware to facilitate remote programming of
the P89C51RB2/RC2/RD2 through the serial port. This firmware is
provided by Philips and embedded within each
P89C51RB2/RC2/RD2 device.
The Philips In-System Programming (ISP) 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: TxD, RxD, VSS, VCC, and VPP (see
Figure 44). Only a small connector needs to be available to interface
your application to an external circuit in order to use this feature.
The VPP supply should be adequately decoupled and VPP not
allowed to exceed datasheet limits.
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 P89C51RB2/RC2/RD2 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>
In the Intel Hex record, the “NN” represents the number of data
bytes in the record. The P89C51RB2/RC2/RD2 will accept up to 16
(10H) data bytes. The “AAAA” string represents the address of the
first byte in the record. If there are zero bytes in the record, this field
is often set to 0000. The “RR” string indicates the record type. A
record type of “00” is a data record. A record type of “01” indicates
the end-of-file mark. In this application, additional record types will
be added to indicate either commands or data for the ISP facility.
The maximum number of data bytes in a record is limited to 16
(decimal). ISP commands are summarized in Table 8.
As a record is received by the P89C51RB2/RC2/RD2, the
information in the record is stored internally and a checksum
calculation is performed. The operation indicated by the record type
is not performed until the entire record has been received. Should
an error occur in the checksum, the P89C51RB2/RC2/RD2 will send
an “X” out the serial port indicating a checksum error. If the
checksum calculation is found to match the checksum in the record,
then the command will be executed. In most cases, successful
reception of the record will be indicated by transmitting a “.”
character out the serial port (displaying the contents of the internal
program memory is an exception).
In the case of a Data Record (record type 00), an additional check is
made. A “.” character will NOT be sent unless the record checksum
matched the calculated checksum and all of the bytes in the record
were successfully programmed. For a data record, an “X” indicates
that the checksum failed to match, and an “R” character indicates
that one of the bytes did not properly program. It is necessary to
send a type 02 record (specify oscillator frequency) to the
P89C51RB2/RC2/RD2 before programming data.
The ISP facility was designed to that specific crystal frequencies
were not required in order to generate baud rates or time the
programming pulses. The user thus needs to provide the
P89C51RB2/RC2/RD2 with information required to generate the
proper timing. Record type 02 is provided for this purpose.
WinISP, a software utility to implement ISP programming with a PC,
is available on Philips Semiconductors’ website. In addition, at the
website is a listing of third party commercially available serial and
parallel programmers.