The LPC2104/2105/2106 are based on a 16/32 bit ARM7TDMI-S™ CPU with
real-time emulation and embedded trace support, together with 128 kbytes (kB) of
embedded high speed flash memory. A 128 bit wide memory interface and a unique
accelerator architecture enable 32 bit code execution at maximum clock rate. 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, these microcontrollers are ideal for
applications where miniaturization is a key requirement, such as access control and
point-of-sale. With a wide range of serial communications interfaces and on-chip
SRAM options up to 64 kB, they are very well suited for communication gateways and
protocol converters, soft modems, voice recognition and low end imaging, providing
both large buffer size and high processing power. Various 32 bit timers, PWM
channels and 32 GPIO lines make these microcontrollers particularly suitable for
industrial control and medical systems.
2.Features
2.1 Key features
■ 16/32 bit ARM7TDMI-S processor.
■ 16/32/64 kB on-chip Static RAM.
■ 128 kB on-chip Flash Program Memory. 128 bit wide interface/accelerator
enables high speed 60 MHz operation.
■ In-System Programming (ISP) and In-Application Programming (IAP) via on-chip
boot-loader software. Flash programming takes 1 ms per 512 byte line. Single
sector or full chip erase takes 400 ms.
■ Vectored Interrupt Controller with configurable priorities and vector addresses.
■ EmbeddedICE-RT interface enables breakpoints and watch points. Interrupt
service routines can continue to execute whilst the foreground task is debugged
with the on-chip RealMonitor™ software.
■ Embedded Trace Macrocell enables non-intrusive high speed real-time tracing of
instruction execution.
■ Multiple serial interfaces including two UARTs (16C550), Fast I2C (400 kbits/s)
and SPI™.
■ Two 32-bit timers (7 capture/compare channels), PWM unit (6 outputs), Real Time
Clock and Watchdog.
■ Up to thirty-two 5 V tolerant general purpose I/O pins in a tiny LQFP48
(7 × 7mm2) package.
Philips Semiconductors
■ 60 MHz maximum CPU clock available from programmable on-chip
Phase-Locked Loop with settling time of 100 µs.
■ On-chip crystal oscillator with an operating range of 1 MHz to 30 MHz.
■ Two low power modes, Idle and Power-down.
■ Processor wake-up from Power-down mode via external interrupt.
■ Individual enable/disable of peripheral functions for power optimization.
■ Dual power supply:
◆ CPU operating voltage range of 1.65 V to 1.95 V (1.8 V ± 8.3 %).
◆ I/O power supply range of 3.0 V to 3.6 V (3.3 V ± 10 %) with 5 V tolerant I/O
OPIPESTAT1 — Pipeline Status, bit 1. Standard I/O port with internal pull-up.
38I/OP0.25 — Port 0 bit 25.
OPIPESTAT2 — Pipeline Status, bit 2. Standard I/O port with internal pull-up.
39I/OP0.26 — Port 0 bit 26.
OTRACESYNC — Trace Synchronization Standard I/O port with internal
pull-up.
8I/OP0.27 — Port 0 bit 27.
OTRACEPKT0 — Trace Packet, bit 0. Standard I/O port with internal pull-up.
ITRST — Test Reset for JTAG interface, secondary JTAG pin group.
9I/OP0.28 — Port 0 bit 28.
OTRACEPKT1 — Trace Packet, bit 1. Standard I/O port with internal pull-up.
ITMS — Test Mode Select for JTAG interface, secondary JTAG pin group
10I/OP0.29 — Port 0 bit 29.
OTRACEPKT2 — Trace Packet, bit 2. Standard I/O port with internal pull-up.
ITCK — Test Clock for JTAG interface, secondary JTAG pin group.
15I/OP0.30 — Port 0 bit 30.
OTRACEPKT3 — Trace Packet, bit 3. Standard I/O port with internal pull-up.
ITDI — Test Data In for JTAG interface, secondary JTAG pin group.
16I/OP0.31 — Port 0 bit 31.
IEXTIN0 — External Trigger Input. Standard I/O port with internal pull-up.
OTDO — Test Data out for JTAG interface, secondary JTAG pin group.
RTCK26I/OReturned Test Clock output: Extra signal added to the JTAG port. Assists
debugger synchronization when processor frequency varies. Also used
during debug mode entry to select primary or secondary JTAG pins with the
48-pin package. Bi-directional pin with internal pull-up.
DBGSEL27IDebug Select: When LOW, the part operates normally. When HIGH, debug
mode is entered. Input pin 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.
X111IInput to the oscillator circuit and internal clock generator circuits.
X212OOutput from the oscillator amplifier.
V
V
SS1
DD1.8
- V
SS4
7, 19, 31, 43IGround: 0 V reference.
5I1.8 V Core Power Supply: This is the power supply voltage for internal
circuitry.
V
DD3
17, 40I3.3 V Pad Power Supply: This is the power supply voltage for the I/O ports.
NC4, 20, 25, 42-Not Connected: These pins are not connected in the 48 pin package.
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. 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 all parts 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.
LPC2104/2105/2106
Single-chip 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.
6.2 On-Chip Flash program memory
The LPC2104/2105/2106 incorporate a 128 kB Flash memory system. This memory
may be used for both code and data storage. Programming of the Flash memory may
be accomplished in several ways. It may be programmed In System via the serial
port. The application program may 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. When on-chip bootloader is used, 120 kB of Flash memory is
available for user code.
The LPC2104/2105/2106 Flash memory provides a minimum of 100,000 erase/write
cycles and 20 years of data retention.
6.3 On-Chip static RAM
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 LPC2104 provides a 16 kB static RAM,
the LPC2105 provides a 32 kB static RAM, and the LPC2106 provides a 64 kB static
RAM.
The LPC2104, LPC2105 and LPC2106 memory maps incorporate several distinct
regions, as shown in the following figures.
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