P89C668 Philips Semiconductors, P89C668 Datasheet - Page 49
![no-image](/images/manufacturer_photos/0/5/522/philips_semiconductors_sml.jpg)
P89C668
Manufacturer Part Number
P89C668
Description
80C51 8-bit Flash microcontroller family 64KB ISP FLASH with 8KB RAM
Manufacturer
Philips Semiconductors
Datasheet
1.P89C668.pdf
(54 pages)
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
P89C668HBA
Manufacturer:
PHILIPS
Quantity:
1 000
Company:
Part Number:
P89C668HBA
Manufacturer:
PHILIPS
Quantity:
1 000
Part Number:
P89C668HBA
Manufacturer:
PHILIPS/飞利浦
Quantity:
20 000
Company:
Part Number:
P89C668HBA/00,512
Manufacturer:
NXP Semiconductors
Quantity:
10 000
Company:
Part Number:
P89C668HBBD
Manufacturer:
TI
Quantity:
25 600
Company:
Part Number:
P89C668HBBD
Manufacturer:
PHILPS
Quantity:
500
Company:
Part Number:
P89C668HBBD/00,557
Manufacturer:
NXP Semiconductors
Quantity:
10 000
Part Number:
P89C668HFA
Manufacturer:
NXP/恩智浦
Quantity:
20 000
Philips Semiconductors
In Application Programming Method
Several In Application Programming (IAP) calls are available for use
by an application program to permit selective erasing and
programming of Flash sectors. All calls are made through a common
interface, PGM_MTP. The programming functions are selected by
setting up the microcontroller’s registers before making a call to
PGM_MTP at FFF0H. The oscillator frequency is an integer number
rounded down to the nearest megahertz. For example, set R0 to 11
for 11.0592 MHz. Results are returned in the registers. The API calls
are shown in Table 10.
Table 10. IAP calls
2001 Jul 27
80C51 8-bit Flash microcontroller family
64KB ISP Flash with 8KB RAM
PROGRAM DATA BYTE
ERASE BLOCK
ERASE BOOT VECTOR
PROGRAM SECURITY BIT
PROGRAM STATUS BYTE
IAP CALL
Input Parameters:
Return Parameter
Input Parameters:
Return Parameter
Input Parameters:
Return Parameter
Input Parameters:
Return Parameter
Input Parameters:
Return Parameter
R0 = osc freq (integer)
R1 = 02h
R1 = 82h (WDT feed)
DPTR = address of byte to program
ACC = byte to program
ACC = 00 if pass, !00 if fail
R0 = osc freq (integer)
R0 = 0 (Quick Erase)
R1 = 01h
R1 = 81h (WDT feed)
DPH = block code as shown below:
DPL = 00h
none
R0 = osc freq (integer)
R1 = 04h
R1 = 84h (WDT feed)
DPH = 00h
DPL = don’t care
none
R0 = osc freq (integer)
R1 = 05h
R1 = 85h (WDT feed)
DPH = 00h
DPL = 00h – security bit # 1 (inhibit writing to Flash)
none
R0 = osc freq (integer)
R1 = 06h
R1 = 86h (WDT feed)
DPH = 00h
DPL = 00h – program status byte
ACC = status byte
ACC = status byte
01h – security bit # 2 (inhibit Flash verify)
02h – security bit # 3 (disable external memory)
block 0,
block 1,
block 2, 16k to 32k, 40H
block 3, 32k to 48k, 80H
block 4, 48k to 64k, C0H
0k to
8k to 16k, 20H
49
8k, 00H
Using the Watchdog Timer (WDT)
The P89C668 supports the use of the WDT in IAP. The user
specifies that the WDT is to be fed by setting the most significant bit
of the function passed in R1 prior to calling PCM_MTP. The WDT
function is only supported for Block Erase when using the Quick
Block Erase. The Quick Block Erase is specified by performing a
Block Erase with register R0 = 0. Requesting a WDT feed during
IAP should only be performed in applications that use the WDT
since the process of feeding the WDT will start the WDT if the WDT
was not running.
PARAMETER
P89C668
Preliminary data