INTEGRATED CIRCUITS
2002 Nov 22
P89LPC932
80C51 8-bit microcontroller with two-clock core
8 KB 3 V low-power Flash with 512-byte data EEPROM
USER
MANUAL
Philips Semiconductors
User’s Manual - Subject to Change -
P89LPC932
80C51 8-bit microcontroller with two-cycle instructions
8KB Flash with 512 Byte Data EEPROM and 768 Byte RAM
Philips Semiconductors
User Manual - Subject to Change
P89LPC932
80C51 8-bit microcontroller with two-clock core
8 KB 3 V low-power Flash with 512-byte data EEPROM
2002 Nov 22 2
Table of Contents
General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Pin configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Pin descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Special Function Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Enhanced CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Clocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Clock definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Oscillator clock (OSCCLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Low speed oscillator option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Medium speed oscillator option . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
High speed oscillator option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Clock output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
On-chip RC oscillator option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Watchdog oscillator option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
External clock input option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Oscillator Clock (OSCCLK) wakeup delay . . . . . . . . . . . . . . . . . . . . 22
CPU Clock (CCLK) modification: DIVM register. . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Low power select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Data RAM arrangement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Interrupt priority structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
External Interrupt inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
External Interrupt pin glitch suppression. . . . . . . . . . . . . . . . . . . . . . 26
I/O ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Port configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Quasi-bidirectional output configuration . . . . . . . . . . . . . . . . . . . . . . 28
Open drain output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Input-only configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Push-pull output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Port 0 analog functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Additional port features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Power monitoring functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Brownout Detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Power-on Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Power reduction modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Reset vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Timers/Counters 0 and 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Philips Semiconductors
User’s Manual - Subject to Change -
P89LPC932
80C51 8-bit microcontroller with two-cycle instructions
8KB Flash with 512 Byte Data EEPROM and 768 Byte RAM
Philips Semiconductors
User Manual - Subject to Change
P89LPC932
80C51 8-bit microcontroller with two-clock core
8 KB 3 V low-power Flash with 512-byte data EEPROM
2002 Nov 22 3
Mode 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Mode 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Timer Overflow toggle output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Real-time Clock/System Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Real-time Clock source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Changing RTCS1-0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Real-time Clock interrupt/wake up . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Reset sources affecting the Real-time Clock . . . . . . . . . . . . . . . . . . 45
Capture/Compare Unit (CCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
CCU Clock (CCUCLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
CCU Clock prescaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Basic timer operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Output compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Input capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
PWM operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Alternating Output Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Synchronized PWM register update . . . . . . . . . . . . . . . . . . . . . . . . . 52
Halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
PLL operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CCU interrupt structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mode 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
SFR space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Baud Rate Generator and selection . . . . . . . . . . . . . . . . . . . . . . . . . 58
Updating the BRGR1 and BRGR0 SFRs . . . . . . . . . . . . . . . . . . . . . 59
Framing Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Break Detect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
More about UART Mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
More about UART Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
More about UART Modes 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Framing Error and RI in Modes 2 and 3 with SM2 = 1 . . . . . . . . . . . 63
Break Detect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Double buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Double buffering in different modes . . . . . . . . . . . . . . . . . . . . . . . . . 64
Transmit interrupts with double buffering enabled (Modes 1, 2 and 3) 64
The 9th bit (bit 8) in double buffering (Modes 1, 2 and 3). . . . . . . . . 65
Multiprocessor communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Automatic address recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
I2C serial interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
I2C Data register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
I2C Slave Address register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
I2C Control register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Philips Semiconductors
User’s Manual - Subject to Change -
P89LPC932
80C51 8-bit microcontroller with two-cycle instructions
8KB Flash with 512 Byte Data EEPROM and 768 Byte RAM
Philips Semiconductors
User Manual - Subject to Change
P89LPC932
80C51 8-bit microcontroller with two-clock core
8 KB 3 V low-power Flash with 512-byte data EEPROM
2002 Nov 22 4
I2C Status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
I2C SCL Duty Cycle registers I2SCLH and I2SCLL . . . . . . . . . . . . . 71
I2C operation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Master Transmitter Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Master Receiver Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Slave Receiver Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Slave Transmitter Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Serial Peripheral Interface (SPI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Typical SPI configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Configuring the SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Additional considerations for a slave . . . . . . . . . . . . . . . . . . . . . . . . 88
Additional considerations for a master . . . . . . . . . . . . . . . . . . . . . . . 88
Mode change on SS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Write collision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Data mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
SPI clock prescaler select. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Analog comparators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Comparator configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Internal reference voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Comparator interrupt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Comparators and power reduction modes . . . . . . . . . . . . . . . . . . . . 93
Comparator configuration example. . . . . . . . . . . . . . . . . . . . . . . . . . 94
Keypad interrupt (KBI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Watchdog timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Watchdog function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Feed sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Watchdog Control register (WDCON). . . . . . . . . . . . . . . . . . . . . . . . 99
Watchdog Timer in Timer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
WDCLK = 0 and CPU power down. . . . . . . . . . . . . . . . . . . . . . . . . . 101
Switching of the Watchdog clock source . . . . . . . . . . . . . . . . . . . . . 101
Additional features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Software reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Dual Data Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Data EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Data EEPROM read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Data EEPROM write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Hardware reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Multiple writes to the DEEDAT register. . . . . . . . . . . . . . . . . . . . . . . 105
Sequence of writes to DEECON and DEEDAT registers . . . . . . . . . 105
Data EEPROM Row Fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Data EEPROM Block Fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Flash program memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
ISP & IAP capabilities of the LPC932. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Philips Semiconductors
User’s Manual - Subject to Change -
P89LPC932
80C51 8-bit microcontroller with two-cycle instructions
8KB Flash with 512 Byte Data EEPROM and 768 Byte RAM
Philips Semiconductors
User Manual - Subject to Change
P89LPC932
80C51 8-bit microcontroller with two-clock core
8 KB 3 V low-power Flash with 512-byte data EEPROM
2002 Nov 22 5
Flash organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Flash programming and erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Boot ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Power-On reset code execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Hardware activation of the Boot Loader . . . . . . . . . . . . . . . . . . . . . . 107
In-System Programming (ISP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Using the In-System Programming. . . . . . . . . . . . . . . . . . . . . . . . . . 107
In-Application Programming method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
User configuration bytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
User security bytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Boot Vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Boot Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Disclaimers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Licences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Contact information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126