Single-chip 16-bit/32-bit microcontrollers; 8 kB/16 kB/32 kB
flash with ISP/IAP, fast ports and 10-bit ADC
Rev. 04 — 2 June 2009Product data sheet
1.General description
The LPC2101/02/03 microcontrollers are based on a 16-bit/32-bit ARM7TDMI-S CPU with
real-time emulation that combines the microcontroller with 8 kB, 16 kB or 32 kB of
embedded high-speed flash memory. A 128-bit wide memory interface and a unique
accelerator architecture enable 32-bit code execution at the maximum clock rate. For
critical performance in interrupt service routines and DSP algorithms, this increases
performance up to 30 % over Thumb mode. For critical code size applications, the
alternative 16-bit Thumb mode reduces code by more than 30 % with minimal
performance penalty.
Due to their tiny size and low power consumption, the LPC2101/02/03 are ideal for
applications where miniaturization is a key requirement. A blendof serial communications
interfaces ranging from multiple UARTs, SPI to SSP and two I2C-buses, combined with
on-chip SRAM of 2 kB/4 kB/8 kB, make these devices very well suited for communication
gateways and protocol converters. The superior performance also makes these devices
suitable for use as math coprocessors. Various 32-bit and 16-bit timers, an improved
10-bit ADC, PWM features through output match on all timers,and32 fastGPIO lines with
up to nine edge or level sensitive external interrupt pins make these microcontrollers
particularly suitable for industrial control and medical systems.
2.Features
2.1 Enhanced features
2.2 Key features
Enhanced features are available in parts LPC2101/02/03 labelled Revision A and higher:
n Deep power-down mode with option to retain SRAM memory and/or RTC.
n Three levels of flash Code Read Protection (CRP) implemented.
n 16-bit/32-bit ARM7TDMI-S microcontroller in tiny LQFP48 and HVQFN48 packages.
n 2 kB/4 kB/8 kB of on-chip static RAM and 8 kB/16 kB/32 kB of on-chip flash program
n ISP/IAP via on-chip bootloader software. Single flash sector or full chip erase in
100 ms and programming of 256 bytes in 1 ms.
n EmbeddedICE-RT offers real-time debugging with the on-chip RealMonitor software.
n The 10-bit ADC provides eight analog inputs, with conversion times as low as 2.44 µs
per channel and dedicated result registers to minimize interrupt overhead.
n Two 32-bit timers/external event counters with combined seven capture and seven
compare channels.
NXP Semiconductors
n Two 16-bit timers/external event counters with combined three capture and seven
n Low power Real-Time Clock (RTC) with independent power and dedicated 32 kHz
n Multiple serial interfaces including two UARTs (16C550), two Fast I2C-buses
n Vectored interrupt controller with configurable priorities and vector addresses.
n Up to thirty-two, 5 V tolerant fast general purpose I/O pins.
n Up to 13 edge or level sensitive external interrupt pins available.
n 70 MHz maximum CPU clock available from programmable on-chip PLL with a
n On-chip integrated oscillator operates with an external crystal in the range from 1 MHz
n Power saving modes include Idle mode, Power-down mode with RTC active, and
n Individual enable/disable of peripheral functions as well as peripheral clock scaling for
n Processor wake-up from Power-down and Deep power-down (Revision A and higher)
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
compare channels.
clock input.
(400 kbit/s), SPI and SSP with buffering and variable data length capabilities.
possible input frequency of 10 MHz to 25 MHz and a settling time of 100 µs.
P0.0 to P0.31I/OPort 0: Port 0 is a 32-bit I/O port with individual direction controls for each bit.
A total of 31 pins of the Port 0 can be used as general purpose bidirectional
digital I/Os while P0.31 is an output only pin. The operation of port 0 pins
depends upon the pin function selected via the pin connect block.
P0.0/TXD0/
MAT3.1
P0.1/RXD0/
MAT3.2
P0.2/SCL0/
CAP0.0
P0.3/SDA0/
MAT0.0
P0.4/SCK0/
CAP0.1
P0.5/MISO0/
MAT0.1
P0.6/MOSI0/
CAP0.2
P0.7/SSEL0/
MAT2.0
P0.8/TXD1/
MAT2.1
P0.9/RXD1/
MAT2.2
P0.10/RTS1/
CAP1.0/AD0.3
13
14
18
21
22
23
24
28
29
30
35
[1]
I/OP0.0 — General purpose input/output digital pin.
OTXD0 — Transmitter output for UART0.
OMAT3.1 — PWM output 1 for Timer 3.
[1]
I/OP0.1 — General purpose input/output digital pin.
IRXD0 — Receiver input for UART0.
OMAT3.2 — PWM output 2 for Timer 3.
[2]
I/OP0.2 — General purpose input/output digital pin. Output is open-drain.
I/OP0.3 — General purpose input/output digital pin. Output is open-drain.
2
I/OSDA0 — I
C0 data input/output. Open-drain output (for I2C-bus compliance).
OMAT0.0 — PWM output for Timer 0, channel 0. Output is open-drain.
[1]
I/OP0.4 — General purpose input/output digital pin.
I/OSCK0 — Serial clock for SPI0. SPI clock output from master or input to slave.
ICAP0.1 — Capture input for Timer 0, channel 1.
[1]
I/OP0.5 — General purpose input/output digital pin.
I/OMISO0 — Master In Slave Out for SPI0. Data input to SPI master or data
output from SPI slave.
OMAT0.1 — PWM output for Timer 0, channel 1.
[1]
I/OP0.6 — General purpose input/output digital pin.
I/OMOSI0 — Master Out Slave In for SPI0. Data output from SPI master or data
input to SPI slave.
ICAP0.2 — Capture input for Timer 0, channel 2.
[1]
I/OP0.7 — General purpose input/output digital pin.
ISSEL0 — Slave Select for SPI0. Selects the SPI interface as a slave.
OMAT2.0 — PWM output for Timer 2, channel 0.
[1]
I/OP0.8 — General purpose input/output digital pin.
OTXD1 — Transmitter output for UART1.
OMAT2.1 — PWM output for Timer 2, channel 1.
[1]
I/OP0.9 — General purpose input/output digital pin.
IRXD1 — Receiver input for UART1.
OMAT2.2 — PWM output for Timer 2, channel 2.
[3]
I/OP0.10 — General purpose input/output digital pin.
ORTS1 — Request to Send output for UART1.
ICAP1.0 — Capture input for Timer 1, channel 0.
IAD0.3 — ADC 0, input 3.
I/OP0.11 — General purpose input/output digital pin.
ICTS1 — Clear to Send input for UART1.
ICAP1.1 — Capture input for Timer 1, channel 1.
IAD0.4 — ADC 0, input 4.
P0.12/DSR1/
MAT1.0/AD0.5
37
[3]
I/OP0.12 — General purpose input/output digital pin.
IDSR1 — Data Set Ready input for UART1.
OMAT1.0 — PWM output for Timer 1, channel 0.
IAD0.5 — ADC 0, input 5.
P0.13/DTR1/
MAT1.1
41
[1]
I/OP0.13 — General purpose input/output digital pin.
ODTR1 — Data Terminal Ready output for UART1.
OMAT1.1 — PWM output for Timer 1, channel 1.
P0.14/DCD1/
SCK1/EINT1
44
[4][5]
I/OP0.14 — General purpose input/output digital pin.
IDCD1 — Data Carrier Detect input for UART1.
I/OSCK1 — Serial Clock for SPI1. SPI clock output from master or input to slave.
IEINT1 — External interrupt 1 input.
P0.15/RI1/
EINT2
45
[4]
I/OP0.15 — General purpose input/output digital pin.
IRI1 — Ring Indicator input for UART1.
IEINT2 — External interrupt 2 input.
P0.16/EINT0/
MAT0.2
46
[4]
I/OP0.16 — General purpose input/output digital pin.
IEINT0 — External interrupt 0 input.
OMAT0.2 — PWM output for Timer 0, channel 2.
P0.17/CAP1.2/
SCL1
47
[6]
I/OP0.17 — General purpose input/output digital pin. The output is not
open-drain.
ICAP1.2 — Capture input for Timer 1, channel 2.
I/OSCL1 — I
function is selected in the pin connect block.
P0.18/CAP1.3/
SDA1
48
[6]
I/OP0.18 — General purpose input/output digital pin. The output is not
open-drain.
ICAP1.3 — Capture input for Timer 1, channel 3.
I/OSDA1 — I
function is selected in the pin connect block.
P0.19/MAT1.2/
MISO1
[1]
1
I/OP0.19 — General purpose input/output digital pin.
OMAT1.2 — PWM output for Timer 1, channel 2.
I/OMISO1 — Master In Slave Out for SSP. Data input to SSP master or data
output from SSP slave.
P0.20/MAT1.3/
MOSI1
[1]
2
I/OP0.20 — General purpose input/output digital pin.
OMAT1.3 — PWM output for Timer 1, channel 3.
I/OMOSI1 — Master Out Slave for SSP. Data output from SSP master or data
input to SSP slave.
P0.21/SSEL1/
MAT3.0
[1]
3
I/OP0.21 — General purpose input/output digital pin.
ISSEL1 — Slave Select for SPI1. Selects the SPI interface as a slave.
OMAT3.0 — PWM output for Timer 3, channel 0.
2
C1 clock Input/output. This pin is an open-drain output if I2C1
2
C1 data Input/output. This pin is an open-drain output if I2C1
I/OP0.22 — General purpose input/output digital pin.
IAD0.0 — ADC 0, input 0.
P0.23/AD0.133
[3]
I/OP0.23 — General purpose input/output digital pin.
IAD0.1 — ADC 0, input 1.
P0.24/AD0.234
[3]
I/OP0.24 — General purpose input/output digital pin.
IAD0.2 — ADC 0, input 2.
P0.25/AD0.638
[3]
I/OP0.25 — General purpose input/output digital pin.
IAD0.6 — ADC 0, input 6.
P0.26/AD0.739
[3]
I/OP0.26 — General purpose input/output digital pin.
IAD0.7 — ADC 0, input 7.
P0.27/
CAP2.0
TRST/
[1]
8
I/OP0.27 — General purpose input/output digital pin.
I
TRST — Test Reset for JTAG interface. If DBGSEL is HIGH, this pin is
automatically configured for use with EmbeddedICE (Debug mode).
ICAP2.0 — Capture input for Timer 2, channel 0.
P0.28/TMS/
CAP2.1
[1]
9
I/OP0.28 — General purpose input/output digital pin.
ITMS — Test Mode Select for JTAG interface. If DBGSEL is HIGH, this pin is
automatically configured for use with EmbeddedICE (Debug mode).
ICAP2.1 — Capture input for Timer 2, channel 1.
P0.29/TCK/
CAP2.2
10
[1]
I/OP0.29 — General purpose input/output digital pin.
ITCK — Test ClockforJTAGinterface.This clock must be slower than
1
⁄6of the
CPU clock (CCLK) for the JTAG interface to operate. If DBGSEL is HIGH, this
pin is automatically configured for use with EmbeddedICE (Debug mode).
ICAP2.2 — Capture input for Timer 2, channel 2.
P0.30/TDI/
MAT3.3
15
[1]
I/OP0.30 — General purpose input/output digital pin.
ITDI — Test Data In for JTAG interface. If DBGSEL is HIGH, this pin is
automatically configured for use with EmbeddedICE (Debug mode).
OMAT3.3 — PWM output 3 for Timer 3.
P0.31/TDO16
[1]
OP0.31 — General purpose output only digital pin.
OTDO — Test Data Out for JTAG interface. If DBGSEL is HIGH, this pin is
automatically configured for use with EmbeddedICE (Debug mode).
RTCX120
RTCX225
RTCK26
[7][8]
[7][8]
[7]
IInput to the RTC oscillator circuit. Input voltage must not exceed 1.8 V.
OOutput from the RTC oscillator circuit.
I/OReturned test clock output: Extra signal added to the JTAG port. Assists
debugger synchronization when processor frequency varies. Bidirectional pin
with internal pull-up.
XTAL111IInput to the oscillator circuit and internal clock generator circuits. Input voltage
must not exceed 1.8 V.
XTAL212OOutput from the oscillator amplifier.
DBGSEL27IDebug select: When LOW, the part operates normally. When externally
pulled HIGH at reset, P0.27 to P0.31 are configured as JTAG port, and the
part is in Debug mode
[9]
. Input with internal pull-down.
RST6IExternal reset input: A LOW on this pin resets the device, causing I/O ports
and peripherals to take on their default states and processor execution to
begin at address 0. TTL with hysteresis, 5 V tolerant.
7, 19, 43IGround: 0 V reference.
31IAnalog ground: 0 V reference. This should be nominally the same voltage as
V
but should be isolated to minimize noise and error.
SS
42IAnalog 3.3 V power supply: This should be nominally the same voltage as
V
but should be isolated to minimize noise and error. The level on this
DD(3V3)
pin also provides a voltage reference level for the ADC.
V
DD(1V8)
5I1.8 V core power supply: This is the power supply voltage for internal
circuitry and the on-chip PLL.
V
DD(3V3)
17, 40I3.3 V pad power supply: This is the power supply voltage for the I/O ports.
VBAT4IRTC power supply: 3.3 V on this pin supplies the power to the RTC.
[1] 5 V tolerant (if V
[2] Open-drain 5 V tolerant (if V
pull-up to provide an output functionality. Open-drain configuration applies to ALL functions on that pin.
[3] 5 V tolerant (if V
analog input function. If configured for an input function, this pad utilizes built-in glitch filter that blocks pulses shorter than 3 ns. When
configured as an ADC input, digital section of the pad is disabled.
[4] 5 V tolerant (if V
If configured for an input function, this pad utilizes built-in glitch filter that blocks pulses shorter than 3 ns.
[5] A LOW level during reset on pin P0.14 is considered as an external hardware request to start the ISP command handler.
[6] Open-drain 5 V tolerant (if V
pull-up to provide an output functionality. Open-drain configuration applies only to I2C function on that pin.
[7] Pad provides special analog functionality.
[8] For lowest power consumption, pin should be left floating when the RTC is not used.
[9] See
LPC2101/02/03 User manual UM10161
DD(3V3)
DD(3V3)
DD(3V3)
and V
and V
and V
≥ 3.0 V) pad providing digital I/O functions with TTL levels and hysteresis and 10 ns slew rate control.
DDA
and V
DD(3V3)
≥ 3.0 V) pad providing digital I/O (with TTL levels and hysteresis and 10 ns slew rate control) and
DDA
≥ 3.0 V) pad providing digital I/O functions with TTL levels and hysteresis and 10 ns slew rate control.
DDA
and V
DD(3V3)
≥ 3.0 V) digital I/O I2C-bus 400 kHz specification compatible pad. It requires external
DDA
≥ 3.0 V) digital I/O I2C-bus 400 kHz specification compatible pad. It requires external
The ARM7TDMI-S is a general purpose 32-bit microprocessor, which offers high
performance and very low power consumption. The ARM architecture is based on
Reduced Instruction Set Computer (RISC) principles, and the instruction set and related
decode mechanism are much simpler than those of microprogrammed Complex
Instruction Set Computers (CISC). This simplicity results in a high instruction throughput
and impressive real-time interrupt response from a small and cost-effective processor
core.
Pipeline techniques are employed so that allparts of the processing and memory systems
can operate continuously. Typically, while one instruction is being executed, its successor
is being decoded, and a third instruction is being fetched from memory.
The ARM7TDMI-S processor also employs a unique architectural strategy known as
Thumb, which makes it ideally suited to high-volume applications with memory
restrictions, or applications where code density is an issue.
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
The key idea behind Thumb is that of a super-reduced instruction set. Essentially, the
ARM7TDMI-S processor has two instruction sets:
• The standard 32-bit ARM set.
• A 16-bit Thumb set.
The Thumb set’s 16-bit instruction length allows it to approach twice the density of
standard ARM code while retaining most of the ARM’s performance advantage over a
traditional 16-bit processor using 16-bit registers. This is possible because Thumb code
operates on the same 32-bit register set as ARM code.
Thumb code is able to provide up to 65 % of the code size of ARM, and 160 % of the
performance of an equivalent ARM processor connected to a 16-bit memory system.
The particular flash implementation in the LPC2101/02/03 allows for full speed execution
also in ARM mode. It is recommended to program performance critical and short code
sections in ARM mode. The impact on the overallcode size will be minimal but the speed
can be increased by 30 % over Thumb mode.
6.2 On-chip flash program memory
The LPC2101/02/03 incorporate a 8 kB, 16 kB or 32 kB flash memory system
respectively. This memory may be used for both code and data storage. Programming of
the flash memory maybe accomplished in several ways. It may be programmed in system
via the serial port. The application programmay also erase and/or program the flash while
the application is running, allowing a great degree of flexibility for data storage field
firmware upgrades, etc. The entire flash memory is available for user code as the
bootloader resides in a separate memory.
The LPC2101/02/03 flash memory provides a minimum of 100,000 erase/write cycles and
20 years of data-retention memory.
On-chip static RAM may be used for code and/or data storage. The SRAM may be
accessed as 8-bits, 16-bits, and 32-bits. The LPC2101/02/03 provide 2 kB,4 kB or 8 kB of
static RAM.
6.4 Memory map
The LPC2101/02/03 memory map incorporates several distinct regions, as shown in
Figure 4.
In addition, the CPU interrupt vectors may be re-mapped to allow them to reside in either
flash memory (the default) or on-chip static RAM. This is described in Section 6.17
The VIC accepts all of the interrupt request inputs and categorizes them as FIQ, vectored
IRQ, and non-vectored IRQ as defined by programmable settings. The programmable
assignment scheme means that priorities ofinterrupts from thevarious peripherals can be
dynamically assigned and adjusted.
FIQ has the highest priority. If more than one request is assigned to FIQ, the VIC
combines the requests to produce the FIQ signal to the ARM processor. The fastest
possible FIQ latency is achieved when only one requestis classified as FIQ, because then
the FIQ service routine does not need to branch into the interrupt service routine but can
run from the interrupt vector location. If more than one request is assigned to the FIQ
class, the FIQ service routine will read a word from the VIC that identifies which FIQ
source(s) is (are) requesting an interrupt.
Vectored IRQs have the middle priority.Sixteen of the interrupt requests can be assigned
to this category. Any of the interrupt requests can be assigned to any of the 16 vectored
IRQ slots, among which slot 0 has the highest priority and slot 15 has the lowest.
Non-vectored IRQs have the lowest priority.
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
The VIC combines the requests from all the vectored and non-vectored IRQs to produce
the IRQ signal to the ARM processor. The IRQ service routine can start by reading a
register from the VIC and jumping there. If any of the vectored IRQs are pending, the VIC
provides the address of the highest-priority requesting IRQs service routine, otherwise it
provides the address of a default routine that is shared by all the non-vectored IRQs. The
default routine can read another VIC register to see what IRQs are active.
6.5.1 Interrupt sources
Each peripheral device has one interrupt line connected to the Vectored Interrupt
Controller,but may have several internal interrupt flags. Individual interrupt flags may also
represent more than one interrupt source.
6.6 Pin connect block
The pin connect block allows selected pins of the microcontroller to have more than one
function. Configuration registers control the multiplexers to allow connection between the
pin and the on chip peripherals. Peripherals should be connected to the appropriate pins
prior to being activated, and prior to any related interrupt(s) being enabled. Activity of any
enabled peripheral function that is not mapped to a related pin should be considered
undefined.
The pin control module with its pin select registers defines the functionality of the
microcontroller in a given hardware environment.
After reset all pins of Port 0 are configured as input with the following exceptions: If the
DBGSEL pin is HIGH (Debug mode enabled), the JTAG pins will assume their JTAG
functionality for use with EmbeddedICE and cannot be configured via the pin connect
block.
Device pins that are not connected to a specific peripheral function are controlled by the
GPIO registers. Pins may be dynamically configured as inputs or outputs. Separate
registers allow setting or clearing any number of outputs simultaneously. The value of the
output register may be read back, as well as the current state of the port pins.
LPC2101/02/03 introduce accelerated GPIO functions over prior LPC2000 devices:
• GPIO registers are relocated to the ARM local bus for the fastest possible I/O timing.
• Mask registers allow treating sets of port bits as a group, leaving other bits
• All GPIO registers are byte addressable.
• Entire port value can be written in one instruction.
6.7.1 Features
• Bit-level set and clear registers allow a single instruction set or clear of any number of
• Direction control of individual bits.
• Separate control of output set and clear.
• All I/O default to inputs after reset.
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
unchanged.
bits in one port.
6.8 10-bit ADC
The LPC2101/02/03 contain one ADC. It is a single 10-bit successive approximation ADC
with eight channels.
6.8.1 Features
• Measurement range of 0 V to 3.3 V.
• Each converter capable of performing more than 400,000 10-bit samples per second.
• Burst conversion mode for single or multiple inputs.
• Optional conversion on transition on input pin or Timer Match signal.
• Every analog input has a dedicated result register to reduce interrupt overhead.
6.9 UARTs
The LPC2101/02/03 each contain two UARTs. In addition to standard transmit and
receive data lines, UART1 also provides a full modem control handshake interface.
Compared to previous LPC2000 microcontrollers, UARTs in LPC2101/02/03 include a
fractional baud rate generator for both UARTs. Standard baud rates such as 115200 can
be achieved with any crystal frequency above 2 MHz.
6.9.1 Features
• 16 byte Receive and Transmit FIFOs.
• Register locations conform to 16C550 industry standard.
• Receiver FIFO trigger points at 1, 4, 8, and 14 bytes
• Built-in fractional baud rate generator covering wide range of baud rates without a
• Transmission FIFO control enables implementation of software (XON/XOFF) flow
• UART1 is equipped with standard modem interface signals. This module also
6.10 I2C-bus serial I/O controllers
The LPC2101/02/03 each contain two I2C-bus controllers.
The I2C-bus is bidirectional, for inter-IC control using only two wires: a Serial Clock Line
(SCL), and a Serial Data Line (SDA). Each device is recognized by a unique address and
can operate as either a receiver-only device (e.g., LCD driver) or a transmitter with the
capability to both receive and send information such as serial memory. Transmitters
and/or receivers can operate in either master or slave mode, depending on whether the
chip has to initiate a data transfer or is only addressed. The I2C-bus is a multi-master bus,
it can be controlled by more than one bus master connected to it.
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
need for external crystals of particular values.
control on both UARTs.
provides full support for hardware flow control (auto-CTS/RTS).
The I2C-bus implemented in LPC2101/02/03 supports bit rates up to 400 kbit/s (Fast
I2C-bus).
6.10.1 Features
• Compliant with standard I
• Easy to configure as Master, Slave, or Master/Slave.
• Bidirectional data transfer between masters and slaves.
• Multi-master bus (no central master).
• Arbitration between simultaneously transmitting masters without corruption of serial
data on the bus.
• Serial clock synchronization allows devices with different bit rates to communicate via
one serial bus.
• Serialclock synchronization can be usedas a handshake mechanism to suspendand
resume serial transfer.
• The I
2
C-bus can also be used for test and diagnostic purposes.
6.11 SPI serial I/O controller
The LPC2101/02/03 each contain one SPI controller. The SPI is a full duplex serial
interface, designed to handle multiple masters and slaves connected to a given bus. Only
a single master and a single slave can communicate on the interface during a given data
transfer. During a data transfer the master always sends 8 bits to 16 bits of data to the
slave, and the slave always sends 8 bits to 16 bits of data to the master.
2
C-bus interface.
6.11.1 Features
• Compliant with SPI specification.
• Synchronous, Serial, Full Duplex, Communication.
• Maximum data bit rate of one eighth of the input clock rate.
6.12 SSP serial I/O controller
The LPC2101/02/03 each contain one SSP. The SSP controller is capable of operationon
a SPI, 4-wire SSI, or Microwire bus. It caninteract with multiplemasters and slaves on the
bus.However, only a single master and asingle slave can communicate on the busduring
a given data transfer. The SSP supports full duplex transfers, with data frames of 4 bits to
16 bits flowing from the master to the slave and from the slave to the master. Often only
one of these data streams carries meaningful data.
6.12.1 Features
• Compatible with Motorola SPI, 4-wire Texas Instruments SSI, and National
• Synchronous serial communication
• Master or slave operation
• 8-frame FIFOs for both transmit and receive
• Four bits to 16 bits per frame
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
Semiconductor’s Microwire buses
6.13 General purpose 32-bit timers/external event counters
The Timer/Counter is designed to count cycles of the Peripheral Clock (PCLK) or an
externally supplied clock and optionally generate interrupts or perform other actions at
specified timer values, based on four match registers. It also includes four capture inputs
to trap the timer value when an input signal transitions, optionally generating an interrupt.
Multiple pins can be selected to perform a single capture or match function, providing an
application with ‘or’ and ‘and’, as well as ‘broadcast’ functions among them.
The LPC2101/02/03 can count external events on one of the capture inputs if the
minimum external pulse is equal or longer thana period ofthe PCLK. In thisconfiguration,
unused capture lines can be selected as regular timer capture inputs or used as external
interrupts.
6.13.1 Features
• A 32-bit timer/counter with a programmable 32-bit prescaler.
• External event counter or timer operation.
• Four 32-bit capture channels per timer/counter that can take a snapshot of the timer
value when an input signal transitions. A capture event may also optionally generate
an interrupt.
• Four 32-bit match registers that allow:
– Continuous operation with optional interrupt generation on match.
– Stop timer on match with optional interrupt generation.
– Reset timer on match with optional interrupt generation.
• Four external outputs per timer/counter corresponding to match registers, with the
6.14 General purpose 16-bit timers/external event counters
The Timer/Counter is designed to count cycles of the peripheral clock (PCLK) or an
externally supplied clock and optionally generate interrupts or perform other actions at
specified timer values, based on four match registers.It also includesthree captureinputs
to trap the timer value when an input signal transitions, optionally generating an interrupt.
Multiple pins can be selected to perform a single capture or match function, providing an
application with ‘or’ and ‘and’, as well as ‘broadcast’ functions among them.
The LPC2101/02/03 can count external events on one of the capture inputs if the
minimum external pulse is equal or longer thana period ofthe PCLK. In thisconfiguration,
unused capture lines can be selected as regular timer capture inputs or used as external
interrupts.
6.14.1 Features
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
– Set HIGH on match.
– Toggle on match.
– Do nothing on match.
• Two 16-bit timer/counters with a programmable 16-bit prescaler.
• External event counter or timer operation.
• Three 16-bit capture channels that can take a snapshot of the timer value when an
input signal transitions. A capture event may also optionally generate an interrupt.
• Four 16-bit match registers that allow:
– Continuous operation with optional interrupt generation on match.
– Stop timer on match with optional interrupt generation.
– Reset timer on match with optional interrupt generation.
• Four external outputs per timer/counter corresponding to match registers, with the
following capabilities:
– Set LOW on match.
– Set HIGH on match.
– Toggle on match.
– Do nothing on match.
6.15 Watchdog timer
The purpose of the watchdog is toreset the microcontrollerwithin a reasonableamount of
time if it enters an erroneous state. When enabled, the watchdog will generate a system
reset if the user program fails to ‘feed’ (or reload) the watchdog within a predetermined
amount of time.
6.15.1 Features
• Internally resets chip if not periodically reloaded.
• Debug mode.
• Enabled by software but requires a hardware reset or a watchdogreset/interrupt tobe
• Incorrect/Incomplete feed sequence causes reset/interrupt if enabled.
• Flag to indicate watchdog reset.
• Programmable 32-bit timer with internal pre-scaler.
• Selectable time period from (T
6.16 Real-time clock
The Real-Time Clock (RTC) is designed to provide a set of counters to measure time
when normal or idle operating mode is selected. The RTC has been designed to use little
power, making it suitable for battery powered systems where the CPU is not running
continuously (Idle mode).
6.16.1 Features
• Measures the passage of time to maintain a calendar and clock.
• Ultra-low power design to support battery powered systems.
T
PCLK
× 4.
× 256 × 4) to (T
PCLK
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
× 232× 4) in multiples of
PCLK
• ProvidesSeconds, Minutes, Hours, Day of Month, Month, Year, Day of Week, and Day
of Year.
• Can use either the RTC dedicated 32 kHz oscillator input or clock derived from the
external crystal/oscillator input at XTAL1. The programmable reference clock divider
allows fine adjustment of the RTC.
• Dedicated power supply pin can be connected to a battery or the main 3.3 V.
6.17 System control
6.17.1 Crystal oscillator
The on-chip integrated oscillator operates with external crystal in range of 1 MHz to
25 MHz. The oscillator output frequency is called f
frequency is referred to as CCLK for purposes of rate equations, etc. f
the same value unless the PLL is running and connected. Refer to Section 6.17.2 “PLL”
and Section 10.1 “XTAL1 input” for additional information.
6.17.2 PLL
The PLL accepts an input clock frequency in the range of 10 MHz to 25 MHz. The input
frequency is multiplied up into the range of 10 MHz to 70 MHz with a Current Controlled
Oscillator (CCO). The multiplier can be an integer value from 1 to 32 (in practice, the
multiplier value cannot be higher than 6 on this family of microcontrollers due to the upper
frequency limit of the CPU). The CCO operates in the range of 156 MHz to 320 MHz, so
there is an additional divider in the loop to keep the CCO within its frequency range while
the PLL is providing the desired output frequency. The output divider may be set to divide
by 2, 4, 8, or 16 to produce the output clock. Since the minimum output divider value is 2,
it is insured that the PLL output has a 50 % duty cycle. The PLL is turned off and
bypassed following a chip reset and may be enabled by software. The program must
configure and activate the PLL, wait for the PLL to lock, and then connect to the PLL as a
clock source. The PLL settling time is 100 µs.
Reset has two sources on the LPC2101/02/03: the RSTpin and watchdog reset. The RST
pin is a Schmitt trigger input pin with an additional glitch filter. Assertion of chip reset by
any source starts the wake-up timer (see wake-up timer description below), causing the
internal chip reset to remain asserted until the external reset is de-asserted, the oscillator
is running, a fixed number of clocks have passed, and the on-chip flash controller has
completed its initialization.
When the internal reset is removed, the processor begins executing at address 0, which is
the reset vector. At that point, all of the processor and peripheral registers have been
initialized to predetermined reset values.
The wake-up timer ensures that the oscillator and other analog functions required for chip
operation are fully functional before the processor is allowed to execute instructions. This
is important at power on, all types of reset, and whenever any of the aforementioned
functions are turned off forany reason. Since the oscillator and other functions are turned
off during Power-down and Deep power-down mode, any wake-up of the processor from
the Power-down modes makes use of the wake-up timer.
The wake-up timer monitors the crystal oscillator as the means of checking whether it is
safe to begin code execution. When power is applied to the chip, or some event caused
the chip to exit Power-down mode, some time is required for the oscillator to produce a
signal of sufficient amplitude to drive the clock logic. The amount of time depends on
many factors, including the rate of VDD ramp (in the case of power on), the type of crystal
and its electrical characteristics (if a quartz crystal is used), as well as any other external
circuitry (e.g., capacitors), and the characteristics of the oscillator itself under the existing
ambient conditions.
This feature of the LPC2101/02/03 allows user to enable different levels of security in the
system so that accessto theon-chip flashand useof theJTAG and ISP can be restricted.
When needed, CRP is invoked by programming a specific pattern into a dedicated flash
location. IAP commands are not affected by the CRP.
Implemented in bootloader code version 2.21 are three levels of the Code Read
Protection:
1. CRP1 disables access to chip via the JTAG and allows partial flash update (excluding
2. CRP2 disables access to chip via the JTAG and only allows full flash erase and
3. Running an application with level CRP3 selected fully disables any access to chip via
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
flash sector 0) using a limited set of the ISP commands. This mode is useful when
CRP is required and flash field updates are needed but all sectors cannot be erased.
update using a reduced set of the ISP commands.
the JTAG pins and the ISP. This mode effectively disables ISP override using P0.14
pin, too. It is up to the user’s application to provide (if needed) flash update
mechanism using IAP calls or call reinvoke ISP command to enable flash update via
UART0.
CAUTION
If level three Code Read Protection (CRP3) is selected, no future factory testing can be
performed on the device.
Remark: Parts LPC2101/02/03 Revision ‘-’ have CRP2 enabled only (bootloader code
version 2.2).
6.17.5 External interrupt inputs
The LPC2101/02/03 include up to three edgeor level sensitive external interrupt inputs as
selectable pin functions. When the pins are combined, external events can be processed
as three independent interrupt signals. The external interrupt inputs can optionally be
used to wake-up the processor from Power-down mode and Deep power-down mode.
Additionally all 10 capture input pins can also be used as external interrupts without the
option to wake the device up from Power-down mode.
6.17.6 Memory mapping control
The memory mapping control alters the mapping of the interrupt vectors that appear
beginning at address 0x0000 0000. Vectors may be mapped to the bottom of the on-chip
flash memory, or to the on-chip static RAM. This allows code running in different memory
spaces to have control of the interrupts.
6.17.7 Power control
The LPC2101/02/03 supports three reduced power modes: Idle mode, Power-down
mode, and Deep power-down mode.
In Idle mode, executionof instructions is suspended until either a resetor interrupt occurs.
Peripheral functions continue operation during Idle mode and may generate interrupts to
cause the processor to resume execution. Idle mode eliminates power used by the
processor itself, memory systems and related controllers, and internal buses.
In Power-down mode, the oscillator is shut down and the chip receives no internal clocks.
The processor state and registers, peripheral registers, and internal SRAM values are
preserved throughout Power-down mode and the logic levels of chip output pins remain
static. The Power-down mode can be terminated and normal operation resumed by either
a reset or certain specific interrupts that are able to function without clocks. Since all
dynamic operation of the chip is suspended, Power-down mode reduces chip power
consumption to nearly zero.
Selecting an external 32 kHz clock instead of the PCLK as a clock-source for the on-chip
RTC will enable the microcontroller to have the RTC active during Power-down mode.
Power-down current is increased with RTCactive. However, it is significantly lower than in
Idle mode.
In Deep-power down mode all poweris removed from the internal chip logic except for the
RTC module, the I/O ports, the SRAM, and the 32 kHz external oscillator. For additional
power savings, SRAM and the 32 kHz oscillator can be powered down individually. The
Deep power-down mode produces the lowest possible power consumption without
actually removing power from the entire chip. In Deep power-down mode, the contents of
registers and memory are not preserved except for SRAM, if selected, and three general
purpose registers. Therefore, to resume operations, a full chip reset process is required.
LPC2101/02/03
Single-chip 16-bit/32-bit microcontrollers
A power selector moduleswitches the RTC power supply from VBAT toV
the core voltage is present on pin V
A power control for peripherals feature allows individual peripherals to be turned off if they
are not needed in the application, resulting in additional power savings during Active and
Idle mode.
6.17.8 APB
The APB divider determines therelationship between the processor clock(CCLK) and the
clock used by peripheral devices (PCLK). The APB divider serves two purposes. The first
is to provide peripherals with the desired PCLK via APB so that they can operate at the
speed chosen for the ARM processor. In order to achieve this, the APB may be slowed
down to1⁄2 to1⁄4 of the processor clock rate. Because the APB must work properly at
power-up (and itstiming cannot bealtered if itdoes not worksince the APBdivider control
registers reside on the APB), the default condition at reset is for the APB to run at1⁄4of the
processor clock rate. The second purpose of the APB divider is to allow power savings
when an application does not require any peripherals to run at the full processor rate.
Because the APB divider is connected to the PLL output, the PLL remains active (if it was
running) during Idle mode.
6.18 Emulation and debugging
The LPC2101/02/03 support emulation and debugging via a JTAG serial port.
Standard ARM EmbeddedICE logic provides on-chip debug support. The debugging of
the target system requires a host computer running the debugger software and an
EmbeddedICE protocol converter. The EmbeddedICE protocol converter converts the
remote debug protocol commands to the JTAG data needed to access the ARM core.
The ARM core has a debug communication channel function built-in. The debug
communication channel allows a program running on the target to communicate with the
host debugger or another separate host without stopping the program flow or even
entering the debug state. The debug communication channel is accessed as a
coprocessor 14 by the program running on the ARM7TDMI-S core. The debug
communication channel allows the JTAG port to be used for sending and receiving data
without affecting the normal program flow. The debug communication channel data and
control registers are mapped in to addresses in the EmbeddedICE logic. The JTAG clock
(TCK) must be slower than1⁄6 of the CPU clock (CCLK) for the JTAG interface to operate.
6.18.2 RealMonitor
RealMonitor is a configurable software module, developed by ARM Inc., which enables
real time debug. It is a lightweight debug monitor that runs in the background while users
debug their foreground application. It communicates with the host usingthe DCC, which is
present in the EmbeddedICE logic. The LPC2101/02/03 contain a specific configuration of
RealMonitor software programmed into the on-chip boot ROM memory.
In accordance with the Absolute Maximum Rating System (IEC 60134).
[1]
SymbolParameterConditionsMinMaxUnit
V
DD(1V8)
V
DD(3V3)
V
DDA
V
i(VBAT)
V
IA
V
I
supply voltage (1.8 V)
supply voltage (3.3 V)
analog 3.3 V pad supply voltage−0.5+4.6V
input voltage on pin VBATfor the RTC−0.5+4.6V
analog input voltage
input voltage5 V tolerant I/O
[2]
−0.5+2.5V
[3]
−0.5+4.6V
[4]
−0.5+5.1V
[5][6]
−0.5+6.0V
pins
I
DD
I
SS
T
stg
P
tot(pack)
other I/O pins
supply current
ground current
storage temperature
total power dissipation (per package)based on package
[5]
−0.5VDD + 0.5
[8]
-100
[10]
-100
[11]
−65+150°C
-1.5W
[7]
V
[9]
[9]
mA
mA
heat transfer, not
device power
consumption
V
ESD
electrostatic discharge voltageHuman Body
−4000+4000V
Model (HBM)
Machine Model
−200+200V
(MM)
Charged Device
−800+800V
Model (CDM)
[12]
[13]
[14]
[1] The following applies to the limiting values:
a) This product includes circuitry specifically designed for the protection of its internal devices from the damaging effects of excessive
static charge. Nonetheless, it is suggested that conventional precautions be taken to avoid applying greater than the rated maximum.
b) Parameters are valid over operating temperature range unless otherwise specified. All voltages are with respect to VSS unless
otherwise noted.
[2] Core and internal rail.
[3] External rail.
[4] On ADC related pins.
[5] Including voltage on outputs in 3-state mode.
[6] Only valid when the V
[7] Not to exceed 4.6 V.
[8] Per supply pin.
[9] The peak current is limited to 25 times the corresponding maximum current.
[10] Per ground pin.
[11] Dependent on package type.
[12] Performed per AEC-Q100-002.
[13] Performed per AEC-Q100-003.
[14] Performed per AEC-Q100-011.
=−40°C to +85°C for commercial applications, unless otherwise specified.
amb
SymbolParameterConditionsMinTyp
V
o(XTAL2)
output voltage on
…continued
[1]
0-1.8V
pin XTAL2
V
i(RTCX1)
input voltage on pin
0-1.8V
RTCX1
V
o(RTCX2)
output voltage on
0-1.8V
pin RTCX2
[1] Typical ratings are not guaranteed. The values listed are at room temperature (25 °C), nominal supply voltages.
[2] Core and internal rail.
[3] External rail.
[4] If V
[5] If V
[6] The RTC typically fails when V
[7] Including voltage on outputs in 3-state mode.
[8] V
DD(3V3)
[9] 3-state outputs go into 3-state mode when V
[10] Accounts for 100mV voltage drop in all supply lines.
[11] Allowed as long as the current limit does not exceed the maximum current allowed by the device.
[12] Minimum condition for VI= 4.5 V, maximum condition for VI= 5.5 V. V
[13] Applies to P0.25:16.
[14] Battery supply current on pin VBAT.
[15] Input leakage current to VSS.
< 3.0 V, the I/O pins are not 5 V tolerant, and the ADC input voltage is limited to V
DD(3V3)
< 3.0 V, the I/O pins are not 5 V tolerant.
DDA
drops below 1.6 V.
i(VBAT)
supply voltages must be present.
is grounded.
DD(3V3)
≥ 3.0 V and V
DDA
DD(3V3)
DDA
≥ 3.0 V.
= 3.0 V.
MaxUnit
Table 6.ADC static characteristics
V
= 2.5 V to 3.6 V; T
DDA
=−40°C to +85°C unless otherwise specified. ADC frequency 4.5 MHz.
amb
SymbolParameterConditionsMinTypMaxUnit
V
IA
C
ia
E
D
E
L(adj)
E
O
E
G
E
T
[1] Conditions: V
resolution at full speed.
[2] The ADC is monotonic, there are no missing codes.
[3] The differential linearity error (ED) is the difference between the actual step width and the ideal step width. See Figure 5.
[4] The integral non-linearity (E
appropriate adjustment of gain and offset errors. See Figure 5.
[5] The offset error (EO) is the absolute difference between the straight line which fits the actual curve and the straight line which fits the
ideal curve. See Figure 5.
[6] The gain error (EG) is the relative difference in percent between the straight line fitting the actual transfer curve after removing offset
error, and the straight line which fits the ideal transfer curve. See Figure 5.
[7] The absolute error (ET) is the maximum difference between the center of the steps of the actual transfer curve of the non-calibrated ADC
[1] Parameters are valid over operating temperature range unless otherwise specified.
[2] Typical ratings are not guaranteed. The values listed are at room temperature (25 °C), nominal supply voltages.
[3] Bus capacitance Cb in pF, from 10 pF to 400 pF.
10. Application information
10.1 XTAL1 input
The input voltage to the on-chip oscillators is limited to 1.8 V.If the oscillator is driven by a
clock in slave mode, it is recommended that the input be coupled through a capacitor with
Ci = 100 pF. To limit the input voltage to the specified range, choose an additional
capacitor to ground Cgwhich attenuates the input voltage by a factor Ci/(Ci+Cg). In slave
mode, a minimum of 200 mV (RMS) is needed. For more details see the
User manual UM10161
.
LPC2xxx
XTAL1
C
i
100 pF
C
g
LPC2101/02/03
002aae718
Fig 9.Slave mode operation of the on-chip oscillator
10.2 XTAL and RTC Printed Circuit Board (PCB) layout guidelines
The crystal should be connected on the PCB as close as possible to the oscillator input
and output pins of the chip. Take care that the load capacitors Cx1 and Cx2, and Cx3 in
case of third overtone crystal usage, have a common ground plane. The external
components must also be connected to the ground plain. Loops must be made as small
as possible, in order to keep the noise coupled in via the PCB as small as possible. Also
parasitics should stay as small as possible. Values of Cx1 and Cx2 should be chosen
smaller accordingly to the increase in parasitics of the PCB layout.
Objective [short] data sheetDevelopmentThis document contains data from the objective specification for product development.
Preliminary [short] data sheet QualificationThis document contains data from the preliminary specification.
Product [short] data sheetProductionThis document contains the product specification.
[1] Please consult the most recently issued document before initiating or completing a design.
[2] The term ‘short data sheet’ is explained in section “Definitions”.
[3] The product status of device(s)described in this document may havechanged since this document was published and may differ in case of multiple devices. The latest product status
information is available on the Internet at URL
[1][2]
Product status
14.2Definitions
Draft — The document is a draft version only. The content is still under
internal review and subject to formal approval, which may result in
modifications or additions. NXP Semiconductors does not give any
representations or warranties as to the accuracy or completeness of
information included herein and shall have no liability fortheconsequencesof
use of such information.
Short data sheet — A short data sheet is an extract from a full data sheet
with the same product type number(s) and title. A short data sheet is intended
for quick reference only and should not be relied upon to contain detailed and
full information. For detailed and full information see the relevant full data
sheet, which is available on request via the local NXP Semiconductors sales
office. In case of any inconsistency or conflict with the short data sheet, the
full data sheet shall prevail.
14.3Disclaimers
General — Information in this document is believed to be accurate and
reliable. However,NXP Semiconductors does not give any representations or
warranties, expressedor implied, as to the accuracy or completeness of such
information and shall have no liability for the consequences of use of such
information.
Right to make changes — NXP Semiconductors reserves the right to make
changes to information published in this document, including without
limitation specifications and product descriptions, at any time and without
notice. This document supersedes and replaces all information supplied prior
to the publication hereof.
Suitability for use — NXP Semiconductors products are not designed,
authorized or warranted to be suitable for use in medical, military, aircraft,
space or life support equipment, nor in applications where failure or
malfunction of an NXP Semiconductors product can reasonably be expected
to result in personal injury, death or severe property or environmental
[3]
http://www.nxp.com.
Definition
damage. NXP Semiconductors accepts no liability for inclusion and/or use of
NXP Semiconductors products in such equipment or applications and
therefore such inclusion and/or use is at the customer’s own risk.
Applications — Applications that are described herein for any of these
products are for illustrative purposes only. NXP Semiconductors makes no
representation or warranty that such applications will be suitable for the
specified use without further testing or modification.
Limiting values — Stress above one or more limiting values (as defined in
the Absolute Maximum Ratings System of IEC 60134) may cause permanent
damage to the device. Limiting values are stress ratings only and operation of
the device at these or any other conditions above those given in the
Characteristics sections of this document is not implied. Exposure to limiting
values for extended periods may affect device reliability.
Terms and conditions of sale — NXP Semiconductors products are sold
subject to the general terms and conditions of commercial sale, as published
at
http://www.nxp.com/profile/terms, including those pertaining to warranty,
intellectual property rights infringement and limitation of liability, unless
explicitly otherwise agreed to in writing by NXP Semiconductors. In case of
any inconsistency or conflict between information in this document and such
terms and conditions, the latter will prevail.
No offer to sell or license — Nothing in this document may be interpreted
or construed as an offer to sell products that is open for acceptance or the
grant, conveyanceor implication of any license under any copyrights, patents
or other industrial or intellectual property rights.
Export control — This document as well as the item(s) described herein
may be subject to export control regulations. Export might require a prior
authorization from national authorities.
14.4Trademarks
Notice: All referencedbrands,product names, service names and trademarks
are the property of their respective owners.
I2C-bus — logo is a trademark of NXP B.V.
15. Contact information
For more information, please visit: http://www.nxp.com
For sales office addresses, please send an email to: salesaddresses@nxp.com
Please be aware that important notices concerning this document and the product(s)
described herein, have been included in section ‘Legal information’.