Philips Semiconductors Product data
P89C660/P89C662/P89C664/
P89C668
80C51 8-bit Flash microcontroller family
16KB/32KB/64KB ISP/IAP Flash with 512B/1KB/2KB/8KB RAM
2002 Oct 28
64
FFFF
C000
8000
4000
2000
0000
BLOCK 4
16 KBYTES
BLOCK 3
16 KBYTES
BLOCK 2
16 KBYTES
BLOCK 1
8 KBYTES
BLOCK 0
8 KBYTES
PROGRAM
ADDRESS
BOOT ROM
(1 KBYTE)
FFFF
FC00
SU01264
89C664/89C668
89C662
89C660
Figure 55. Flash Memory Configurations
Power-On Reset Code Execution
The P89C660/662/664/668 contains two special Flash registers: the
BOOT VECTOR and the STATUS BYTE. At the falling edge of reset,
the P89C660/662/664/668 examines the contents of the Status
Byte. If the Status Byte is set to zero, power-up execution starts at
location 0000H, which is the normal start address of the users
application code. When the Status Byte is set to a value other than
zero, the contents of the Boot Vector is used as the high byte of the
execution address and the low byte is set to 00H. The factory
default setting is 0FCH, corresponds to the address 0FC00H for the
factory masked-ROM ISP boot loader. A custom boot loader can be
written with the Boot Vector set to the custom boot loader.
NOTE: When erasing the Status Byte or Boot Vector,
both bytes are erased at the same time. It is necessary
to reprogram the Boot Vector after erasing and
updating the Status Byte.
Hardware Activation of the Boot Loader
The boot loader can also be executed by holding PSEN LOW, P2.7,
P2.6 high, EA
greater than V
IH
(such as +5 V), and ALE HIGH (or
not connected) at the falling edge of RESET. This is the same effect
as having a non-zero status byte. This allows an application to be
built that will normally execute the end users code but can be
manually forced into ISP operation.
If the factory default setting for the Boot Vector (0FCH) is changed, it
will no longer point to the ISP masked-ROM boot loader code. If this
happens, the only possible way to change the contents of the Boot
Vector is through the parallel 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
Status Byte.
After programming the Flash, the status byte should be programmed
to zero in order to allow execution of the users application code
beginning at address 0000H.
Philips Semiconductors Product data
P89C660/P89C662/P89C664/
P89C668
80C51 8-bit Flash microcontroller family
16KB/32KB/64KB ISP/IAP Flash with 512B/1KB/2KB/8KB RAM
2002 Oct 28
65
+ 5V (+12V Tolerant)
+5V
TxD
RxD
V
SS
V
PP
V
CC
TxD
RxD
RST
XTAL2
XTAL1
SU01265
V
SS
V
CC
89C660
89C662
89C664
89C668
“1”P2.6, P2.7
Figure 56. 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 P89C660/662/664/668 through the serial port. This firmware is
provided by Philips and embedded within each
P89C660/662/664/668 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, V
SS
, V
CC
, and V
PP
(see
Figure 56). Only a small connector needs to be available to interface
your application to an external circuit in order to use this feature.
The V
PP
supply should be adequately decoupled and V
PP
not
allowed to exceed datasheet limits.
Free ISP software is available on the Philips web site: “WinISP”
1. Direct your browser to the following page:
http://www.semiconductors.philips.com/products/standard/
microcontrollers/download/80c51/flash/
2. Download “WinISP.exe”
3. Execute WinISP.exe to install the software
Free ISP software is also available from the Embedded Systems
Academy: “FlashMagic”
1. Direct your browser to the following page:
http://www.esacademy.com/software/flashmagic/
2. Download Flashmagic
3. Execute “flashmagic.exe” to install the software
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 P89C660/662/664/668 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 P89C660/662/664/668 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 14.
As a record is received by the P89C660/662/664/668, 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 P89C660/662/664/668 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 exceptions).
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” indicates that one of
the bytes did not properly program. It is necessary to send a type 02
record (specify oscillator frequency) to the P89C660/662/664/668
before programming data.
Philips Semiconductors Product data
P89C660/P89C662/P89C664/
P89C668
80C51 8-bit Flash microcontroller family
16KB/32KB/64KB ISP/IAP Flash with 512B/1KB/2KB/8KB RAM
2002 Oct 28
66
The ISP facility was designed so 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
P89C660/662/664/668 with information required to generate the
proper timing. Record type 02 is provided for this purpose.
Table 14. Intel-Hex Records Used by In-System Programming
RECORD TYPE COMMAND/DATA FUNCTION
00 Program Data
:nnaaaa00dd....ddcc
Where:
Nn = number of bytes (hex) in record
Aaaa = memory address of first byte in record
dd....dd = data bytes
cc = checksum
Example:
:10008000AF5F67F0602703E0322CFA92007780C3FD
01 End of File (EOF), no operation
:xxxxxx01cc
Where:
xxxxxx = required field, but value is a “don’t care”
cc = checksum
Example:
:00000001FF
02 Specify Oscillator Frequency
:01xxxx02ddcc
Where:
xxxx = required field, but value is a “don’t care”
dd = integer oscillator frequency rounded down to nearest MHz
cc = checksum
Example:
:0100000210ED (dd = 10h = 16, used for 16.0–16.9 MHz)

P89C660HBA/00,512

Mfr. #:
Manufacturer:
NXP Semiconductors
Description:
IC MCU 8BIT 16KB FLASH 44PLCC
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union