8-bit microcontrollers with two-clock 80C51 core
2 kB/4 kB/8 kB 3 V low-power Flash with 256-byte data RAM
Rev. 08 — 15 December 2004Product data
1.General description
The P89LPC920/921/922/9221 are single-chip microcontrollers designed for
applications demanding high-integration, low cost solutions over a wide range of
performance requirements. The P89LPC920/921/922/9221 is based on a high
performance processor architecture that executes instructions in two to four clocks,
six times therate of standard 80C51 devices. Manysystem-level functions havebeen
incorporated into the P89LPC920/921/922/9221 in order to reduce component count,
board space, and system cost.
detection, automatic address detection and versatile interrupt capabilities.
■ 400 kHz byte-wide I2C-bus communication port.
■ Configurable on-chip oscillator with frequency range and RC oscillator options
(selected by userprogrammed Flash configuration bits). The RC oscillator (factory
calibrated to ±1 %) option allows operation without external oscillator
components. Oscillator options support frequencies from 20 kHz to the maximum
operating frequency of 18 MHz. The RC oscillator option is selectable and fine
tunable.
■ 2.4 V to 3.6 V VDDoperating range. I/O pins are 5 V tolerant (may be pulled up or
driven to 5.5 V).
■ High drive current (20 mA) on eight I/O pins on the P89LPC9221 (P0.3 to P0.7,
P1.4, P1.6, P1.7).
Philips Semiconductors
2.2 Additional features
■ 15 I/O pins minimum. Up to 18 I/O pins while using on-chip oscillator and reset
■ 20-pin TSSOP and DIP packages.
■ A high performance 80C51 CPU provides instruction cycle times of 111 ns to
■ In-Application Programming of the Flash code memory. This allows changing the
■ Serial Flash programming allows simple in-circuit production coding. Flash
■ Watchdog timer with separate on-chip oscillator, requiring no external
■ Low voltage reset (Brownout detect) allows a graceful system shutdown when
■ Idle and two differentPower-down reduced power modes. Improvedwake-up from
■ Active-LOWreset. On-chip power-on reset allows operation without external reset
■ Oscillator Fail Detect. The watchdog timer has a separate fully on-chip oscillator
■ Programmable port output configuration options:
■ Port ‘input pattern match’ detect. Port 0 may generate an interrupt when the value
■ LED drive capability (20 mA) on all port pins. A maximum limit is specified for the
■ Controlled slew rate port outputs to reduce EMI. Outputs have approximately
■ Only power and ground connections are required to operate the
■ Four interrupt priority levels.
■ Eight keypad interrupt inputs, plus two additional external interrupt inputs.
■ Second data pointer.
■ Schmitt trigger port inputs.
■ Emulation support.
P89LPC920/921/922/9221
8-bit microcontrollers with two-clock 80C51 core
options.
222 ns for all instructions except multiply and divide when executing at 18 MHz.
This is six times the performance of the standard 80C51 running at the same
clock frequency. A lower clock frequency for the same performance results in
power savings and reduced EMI.
code in a running application.
security bits prevent reading of sensitive application programs.
components. The watchdog prescaler is selectable from eight values.
power fails. May optionally be configured as an interrupt.
Power-down mode (a low interrupt input starts execution). Typical Power-down
current is 1 µA (total Power-down with voltage comparators disabled).
components. A reset counter and reset glitch suppression circuitry prevent
spurious and incomplete resets. A software reset function is also available.
allowing it to perform an oscillator fail detect function.
◆ quasi-bidirectional,
◆ open drain,
◆ push-pull,
◆ input-only.
of the pins match or do not match a programmable pattern.
entire chip (160 mA for the P89LPC9221; 80 mA for the P89LPC920/921/922).
10 ns minimum ramp times.
P89LPC920/921/922/9221 when internal reset option is selected.
P89LPC920FDH2 kB−40 °C to +85 °C0 MHz to 18 MHz
P89LPC921FDH4 kB−40 °C to +85 °C0 MHz to 18 MHz
P89LPC922FDH8 kB−40 °C to +85 °C0 MHz to 18 MHz
P89LPC922FN8 kB−40 °C to +85 °C0 MHz to 18 MHz
P89LPC9221FN8 kB−40 °C to +85 °C0 MHz to 18 MHz
P89LPC9221FDH8 kB−40 °C to +85 °C0 MHz to 18 MHz
P0.0 to P0.7I/OPort 0: Port 0 is an 8-bit I/O port with a user-configurable output type. During reset
Port 0 latches are configured in the input only mode with the internal pull-up disabled.
The operation of Port 0 pins as inputs and outputs depends upon the port configuration
selected. Each port pin is configured independently. Refer to Section 8.12.1 “Port
configurations” and Table 8 “DC electrical characteristics” for details.
The Keypad Interrupt feature operates with Port 0 pins.
All pins have Schmitt triggered inputs.
Port 0 also provides various special functions as described below:
Port 1: Port 1 is an 8-bit I/O port with a user-configurable output type, except for three
pins as noted below. During reset Port 1 latches are configured in the input only mode
with the internal pull-up disabled. The operation of the configurablePort 1 pins as inputs
and outputs depends upon the port configuration selected. Each of the configurable
port pins are programmed independently. Refer to Section 8.12.1 “Port configurations”
and Table 8 “DC electrical characteristics” for details. P1.2 - P1.3 are open drain when
used as outputs. P1.5 is input only.
All pins have Schmitt triggered inputs.
Port 1 also provides various special functions as described below:
12I/OP1.0 — Port 1 bit 0.
OTXD — Transmitter output for the serial port.
11I/OP1.1 — Port 1 bit 1.
IRXD — Receiver input for the serial port.
10I/OP1.2 — Port 1 bit 2 (open-drain when used as output).
I/OT0 — Timer/counter 0 external count input or overflowoutput (open-drain when used as
output).
I/OSCL — I
2
9I/OP1.3 — Port 1 bit 3 (open-drain when used as output).
I
I/OSDA — I
INT0 — External interrupt 0 input.
2
8I/OP1.4 — Port 1 bit 4. High current source (P89LPC9221).
I
INT1 — External interrupt 1 input.
4IP1.5 — Port 1 bit 5 (input only).
I
RST — External Reset input (if selected via FLASH configuration). A LOW on this pin
resets the microcontroller, causing I/O ports and peripherals to take on their default
states, and the processor begins execution at address 0. When using an oscillator
frequency above 12 MHz, the reset input function of P1.5 must be enabled. An
external circuit is required to hold the device in reset at power-up until V
reached its specified level. When system power is removed V
minimum specified operating voltage. When using an oscillator frequency above
12 MHz, in some applications, an external brownout detect circuit may be
required to hold the device in reset when V
operating voltage.
3I/OP1.6 — Port 1 bit 6. High current source (P89LPC9221).
2I/OP1.7 — Port 1 bit 7. High current source (P89LPC9221).
P3.0 to P3.1I/OPort 3: Port 3 is an 2-bit I/O port with a user-configurable output type. During reset
Port 3 latches are configured in the input only mode with the internal pull-up disabled.
The operation of Port 3 pins as inputs and outputs depends upon the port configuration
selected. Each port pin is configured independently. Refer to Section 8.12.1 “Port
configurations” and Table 8 “DC electrical characteristics” for details.
All pins have Schmitt triggered inputs.
Port 3 also provides various special functions as described below:
7I/OP3.0 — Port 3 bit 0.
OXTAL2 — Output from the oscillator amplifier (when a crystal oscillator option is
selected via the FLASH configuration.
OCLKOUT — CPU clock divided by 2 when enabled via SFR bit (ENCLK - TRIM.6). It
can be used if the CPU clock is the internal RC oscillator, watchdog oscillator or
external clock input, except when XTAL1/XTAL2 are used to generate clock source for
the real time clock/system timer.
6I/OP3.1 — Port 3 bit 1.
IXTAL1 — Input to the oscillator circuit and internal clock generator circuits (when
selected via the FLASH configuration). It can be a port pin if internal RC oscillator or
watchdog oscillator is used as the CPU clock source, and if XTAL1/XTAL2 are not used
to generate the clock for the real time clock/system timer.
V
SS
V
DD
5IGround: 0 V reference.
15IPower Supply: This is the power supply voltage for normal operation as well as Idle
and Power down modes.
[1] Input/Output for P1.0-P1.4, P1.6, P1.7. Input for P1.5.
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
9397 750 14469
Product dataRev. 08 — 15 December 200410 of 46
Table 4:Special function registers
* indicates SFRs that are bit addressable.
NameDescriptionSFR
ACC*AccumulatorE0H0000000000
AUXR1Auxiliary function registerA2HCLKLPEBRRENT1ENT0SRST0-DPS00
B*B registerF0H0000000000
BRGR0
BRGR1
BRGCON Baud rate generator controlBDH------SBRGSBRGEN 00xxxxxx00
CMP1Comparator 1 control register ACH--CE1CP1CN1OE1CO1CMF100
CMP2Comparator 2 control register ADH--CE2CP2CN2OE2CO2CMF200
DIVMCPU clock divide-by-M
DPTRData pointer (2 bytes)
DPHData pointer HIGH83H0000000000
DPLData pointer LOW82H0000000000
FMADRHProgram Flash address HIGH E7H0000000000
FMADRLProgram Flash address LOWE6H0000000000
FMCONProgram Flash control (Read) E4HBUSY---HVAHVESVOI7001110000
Program Flash control (Write) E4HFMCMD.7FMCMD.6FMCMD.5FMCMD.4FMCMD.3FMCMD.2FMCMD.1FMCMD.
2
C slave address registerDBHI2ADR.6I2ADR.5 I2ADR.4I2ADR.3I2ADR.2I2ADR.1I2ADR.0GC0000000000
Bit addressDFDEDDDCDBDAD9D8
2
C control registerD8H-I2ENSTASTOSIAA-CRSEL 00x00000x0
2
C data registerDAH
DDH0000000000
duty cycle register HIGH
MSBLSBHexBinary
[1]
[1]
[1]
0
000000x0
xx000000
xx000000
Philips Semiconductors
P89LPC920/921/922/9221
8-bit microcontrollers with two-clock 80C51 core
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
C status registerD9HSTA.4STA.3STA.2STA.1STA.0000F811111000
Bit addressAFAEADACABAAA9A8
Bit addressEFEEEDECEBEAE9E8
Bit addressBFBEBDBCBBBAB9B8
Bit addressFFFEFDFCFBFAF9F8
86H0000000000
register
Bit address8786858483828180
Bit address9796959493929190
Bit addressB7B6B5B4B3B2B1B0
MSBLSBHexBinary
[1]
[1]
[1]
PT1HPX1HPT0HPX0H00
[1]
PSRH
[1]
[1]
KBIF00
[1]
_SEL
/KB6
CMPREF
/KB5
RSTINT1INT0/
CIN1A
/KB4
CIN1B
/KB3
CIN2A
/KB2
CIN2B
/KB1
CMP2
/KB0
T0/SCLRXDTXD
SDA
[1]
00000000
00x00000
x0000000
x0000000
00x00000
00x00000
xxxxxx00
[1]
[1]
[1]
11x1xx11
Philips Semiconductors
P89LPC920/921/922/9221
8-bit microcontrollers with two-clock 80C51 core
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
RTCLReal-time clock register LOW D3H00
SADDRSerial port address registerA9H0000000000
SADENSerial port address enableB9H0000000000
SBUFSerial Port data buffer
SCON*Serial port control98HSM0/FESM1SM2RENTB8RB8TIRI0000000000
SSTATSerial port extended status
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
9397 750 14469
Product dataRev. 08 — 15 December 200413 of 46
Table 4:Special function registers
* indicates SFRs that are bit addressable.
NameDescriptionSFR
TRIMInternal oscillator trim register 96H-ENCLKTRIM.5TRIM.4TRIM.3TRIM.2TRIM.1TRIM.0
WDCONWatchdog control registerA7HPRE2PRE1PRE0--WDRUNWDTOFWDCLK
WDLWatchdog loadC1HFF11111111
WFEED1Watchdog feed 1C2H
WFEED2Watchdog feed 2C3H
[1] All ports are in input only (high impedance) state after power-up.
[2] BRGR1 and BRGR0 must only be written if BRGEN in BRGCON SFR is ‘0’. If any are written while BRGEN = 1, the result is unpredictable.
[3] The RSTSRC register reflects the cause of the P89LPC920/921/922/9221 reset. Upon a power-up reset, all reset source flags are cleared except POF and BOF; the power-on
[4] After reset, the valueis 111001x1, i.e., PRE2-PRE0 are all ‘1’, WDRUN = 1 and WDCLK = 1. WDTOF bit is ‘1’ after watchdogreset and is ‘0’ after power-on reset. Other resets will
[5] On power-on reset, the TRIM SFR is initialized with a factory preprogrammed value. Other resets will not cause initialization of the TRIM register.
[6] The only reset source that affects these SFRs is power-on reset.
The P89LPC920/921/922/9221 uses an enhanced 80C51 CPU which runs at 6 times
the speed of standard 80C51 devices. A machine cycle consists of two CPU clock
cycles, and most instructions execute in one or two machine cycles.
8.2 Clocks
8.2.1 Clock definitions
The P89LPC920/921/922/9221 device has several internal clocks as defined below:
OSCCLK — Input to the DIVM clock divider. OSCCLK is selected from one of four
clock sources (see Figure 5) and can also be optionally divided to a slower frequency
(see Section 8.7 “CPU Clock (CCLK) modification: DIVM register”).
Note: f
CCLK — CPU clock; output of the clock divider. There are two CCLK cycles per
machine cycle, and most instructions are executed in one to two machine cycles (two
or four CCLK cycles).
RCCLK — The internal 7.373 MHz RC oscillator output.
PCLK — Clock for the various peripheral devices and is CCLK/2
is defined as the OSCCLK frequency.
osc
P89LPC920/921/922/9221 User’s Manual
for a more
8.2.2 CPU clock (OSCCLK)
The P89LPC920/921/922/9221 provides several user-selectable oscillator options in
generating the CPU clock. This allows optimization for a range of needs from high
precision to lowest possible cost. These options are configured when the FLASH is
programmed and include an on-chip watchdog oscillator, an on-chip RC oscillator, an
oscillator using an external crystal, or an external clock source. The crystal oscillator
can be optimized for low, medium, or high frequency crystals covering a range from
20 kHz to 12 MHz.
8.2.3 Low speed oscillator option
This option supports an external crystal in the range of 20 kHz to 100 kHz. Ceramic
resonators are also supported in this configuration.
8.2.4 Medium speed oscillator option
This option supports an external crystal in the range of 100 kHz to 4 MHz. Ceramic
resonators are also supported in this configuration.
8.2.5 High speed oscillator option
This option supports an external crystal in the range of 4 MHz to 18 MHz. Ceramic
resonators are also supported in this configuration. When using an oscillator
frequency above 12 MHz, the reset input function of P1.5 must be enabled. An
external circuit is required to hold the device in reset at power-up until VDDhas
reached its specified level. When system power is removed VDD will fall below