32-bit Arm Cortex®-M3 microcontroller; up to 512 kB flash and
64 kB SRAM with Ethernet, USB 2.0 Host/Device/OTG, CAN
Rev. 9.8 — 4 May 2018Product data sheet
1. General description
The LPC1769/68/67/66/65/64/63 are ARM Cortex-M3 based microcontrollers for
embedded applications featuring a high level of integration and low power consumption.
The Arm Cortex-M3 is a next generation core that offers system enhancements such as
enhanced debug features and a higher level of support block integration.
The LPC1768/67/66/65/64/63 operate at CPU frequencies of up to 100 MHz. The
LPC1769 operates at CPU frequencies of up to 120 MHz. The Arm Cortex-M3 CPU
incorporates a 3-stage pipeline and uses a Harvard arc hit ec tu re with s eparate loca l
instruction and data buses as well as a third bus for peripher als. The Arm Cortex-M3 CPU
also includes an internal prefetch unit that supports speculative branching.
The peripheral complement of the LPC1769/68/67 /66/65/64/63 includes up to 512 kB of
flash memory, up to 64 kB of data memory, Ethernet MAC, USB Device/Host/OTG
interface, 8-channel general purpose DMA controller, 4 UARTs, 2 CAN channels, 2 SSP
controllers, SPI interface, 3 I
8-channel 12-bit ADC, 10-bit DAC, motor control PWM, Quadrature Encoder interface,
four general purpose timers, 6-output general purpose PWM, ultra-low power Real-Time
Clock (RTC) with separate battery supply, and up to 70 general purpose I/O pins.
The LPC1769/68/67/66/65/64/63 are pin-co mpatible to the 100-pi n LPC236x Arm7-base d
microcontroller series.
For additional documentation, see Section 19 “
2. Features and benefits
Arm Cortex-M3 processor, running at frequencies of up to 100 MHz
(LPC1768/67/66/65/64/63) or of up to 120 MHz (LPC1769) . A Memory Pro tection Unit
(MPU) supporting eight regions is included.
Arm Cortex-M3 built-in Nested Vectored Interrupt Controller (NVIC).
Up to 512 kB on-chip flash programming memory. Enhanced flash memory accelerator
enables high-speed 120 MHz operation with zero wait states.
In-System Programming (ISP) and In-Application Programming (IAP) via on-chip
bootloader software.
On-chip SRAM includes:
32/16 kB of SRAM on the CPU with local code/data bus for high-performance CPU
access.
2
C-bus interfaces, 2-input plus 2-output I2S-bus interface,
References”.
NXP Semiconductors
Eight channel General Purpose DMA controller (GPDMA) on the AHB multilayer
Multilayer AHB matrix interconnect provides a separate bus for each AHB master.
Split APB bus allows high throughput with few stalls between the CPU and DMA.
Serial interfaces:
Other peripherals:
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
Two/one 16 kB SRAM blocks with separate access paths for higher throughput.
These SRAM blocks may be used for Ethernet, USB, and DMA memory, as well as
for general purpose CPU instruction and data storage.
matrix that can be used with SSP, I
Digital-to-Analog converter peripherals, timer match signals, and for
memory-to-memory transfers.
AHB masters include the CPU, General Purpose DMA controller, Ethernet MAC, and
the USB interface. This interconnect provides communication with no arbitration
delays.
Ethernet MAC with RMII interface and dedicated DMA controller. (Not available on
all parts, see Table 2
.)
USB 2.0 full-speed device/Host/OTG controller with de dic at ed DMA contr o ller and
on-chip PHY for device, Host, and OTG functions. (Not available on all parts, see
Table 2
.)
Four UARTs with fractional baud rate generation, internal FIFO, and DMA support.
One UART has modem control I/O and RS-485/EIA-485 support, and one UART
has IrDA support.
CAN 2.0B controller with two channels. (Not available on all parts, see Table 2
SPI controller with synchronous, serial, full duplex communication and
programmable data length.
Two SSP controllers with FIFO and multi-protocol capabilities. The SSP interfaces
can be used with the GPDMA controller.
Three enhanced I
2
I
C specification and Fast mode plus with data rates of 1 Mbit/s, two with standard
2
C bus interfaces, one with an open-drain output supporting full
port pins. Enhancements include multiple address recognition and monitor mode.
2
I
S (Inter-IC Sound) interface for digital audio input or output, with fractional rate
control. The I
2
S-bus interface can be used with the GPDMA. The I2S-bus interface
supports 3-wire and 4-wire data transmit and receive as well as master clock
input/output. (Not available on all parts, see Table 2
70 (100 pin package) General Purpose I/O (GPIO) pins with configurable
pull-up/down resistors. All GPIOs support a new , configurable o pen-drain operating
mode. The GPIO block is accessed through the AHB multilayer bus for fast access
and located in memory such that it supports Cortex-M3 bit banding and use by the
General Purpose DMA Controller.
12-bit Analog-to-Digital Converter (ADC) with input multiplexing among eight pins,
conversion rates up to 200 kHz, and multiple result registers. The 12-bit ADC can
be used with the GPDMA controller.
10-bit Digital-to-Analog Converter (DAC) with dedicated conversion timer and DMA
support. (Not available on all parts, see Table 2
Four general purpose timers/counters, with a total of eight capture inputs and ten
compare outputs. Each timer block has an external count input. Specific timer
events can be selected to generate DMA requests.
One motor control PWM with support for three-phase motor control.
Four reduced power modes: Sleep, Deep-sleep, Power-down, and Deep power-down.
Single 3.3 V power supply (2.4 V to 3.6 V).
Four external interrupt inputs configurable as edge/level sensitive. All pins on Port 0
Non-maskable Interrupt (NMI) input.
Clock output function that can reflect the main oscillator clock, IRC clock, RTC clock,
The Wake-up Interrupt Controller (WIC) allows the CPU to automatically wake up from
Processor wake-up from Power-down mode via any interrupt able to operate during
Brownout detect with separate threshold for interrupt and forced reset.
Power-On Reset (POR).
Crystal oscillator with an operating range of 1 MHz to 25 MHz.
4 MHz internal RC oscillator trimmed to 1 % accuracy that can optionally be used as a
PLL allows CPU operation up to the maximum CPU rate without the need for a
USB PLL for added flexibility.
Code Read Protection (CRP) with different security levels.
Unique device serial number for identification purposes.
Available as LQFP100 (14 mm 14 mm 1.4 mm), TFBGA100
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
Quadrature encoder interface that can monitor one external quadrature encoder.
One standard PWM/timer block with external count input.
RTC with a separate power domain and dedicated RTC oscillator. The RTC block
includes 20 bytes of battery-powered backup registers.
WatchDog Timer (WDT). The WDT can be clocked from the internal RC oscillator,
the RTC oscillator, or the APB clock.
Arm Cortex-M3 system tick timer, including an external clock input option.
Repetitive interrupt timer provides programmable and repeating timed interrupts.
Each peripheral has its own clock divider for further power savings.
and Serial Wire Trace Port options. Boundary Scan Description Language (BSDL) is
not available for this device.
instruction execution.
minimize power consumption during Sleep, Deep sleep, Power-down, and Deep
power-down modes.
and Port 2 can be used as edge sensitive interrupt sources.
CPU clock, and the USB clock.
any priority interrupt that can occur while the clocks are stopped in deep sleep,
Power-down, and Deep power-down modes.
Power-down mode (includes external interrupts, RTC interrupt, USB activity, Ethernet
wake-up interrupt, CAN bus activity, Port 0/2 pin interrupt, and NMI).
system clock.
high-frequency crystal. May be run from the main oscillator, the internal RC oscillator,
or the RTC oscillator.
1
(9 mm 9 mm 0.7
mm), and WLCSP100 (5.07 5.07 0.53 mm) package.
The LPC176x devices typically have the following top-side marking:
LPC176xxxx
xxxxxxx
xxYYWWR[x]
The last/second to last letter in the third line (field ‘R’) will identify the device revision. This
data sheet covers the following revisions of the LPC176x:
P0[0] to P0[31]I/OPort 0: Port 0 is a 32-bit I/O port with individual direction controls for
P0[0]/RD1/TXD3/
SDA1
P0[1]/TD1/RXD3/
SCL1
P0[2]/TXD0/AD0[7] 98C4B1
P0[3]/RXD0/AD0[6] 99A2C3
LQFP100
TFBGA100
WLCSP100
46K8H10
47J8H9
each bit. The operation of port 0 pins depends upon the pin function
selected via the pin connect block. Pins 12, 13, 14, and 31 of this
port are not available.
[1]
I/OP0[0] — General purpose digital input/output pin.
IRD1 — CAN1 receiver input. (LPC1769/68/66/65/64 only).
OTXD3 — Transmitter output for UART3.
2
I/OSDA1 — I
C1 data input/output. (This is not an I2C-bus compliant
open-drain pin).
[1]
I/OP0[1] — General purpose digital input/output pin.
OTD1 — CAN1 transmitter output. (LPC1769/68/66/65/64 only).
IRXD3 — Receiver input for UART3.
2
I/OSCL1 — I
C1 clock input/output. (This is not an I2C-bus compliant
open-drain pin).
[2]
I/OP0[2] — General purpose digital input/output pin.
OTXD0 — Transmitter output for UART0.
IAD0[7] — A/D converter 0, input 7.
[2]
I/OP0[3] — General purpose digital input/output pin.
IRXD0 — Receiver input for UART0.
IAD0[6] — A/D converter 0, input 6.
I/OP0[6] — General purpose digital input/output pin.
I/OI2SRX_SDA — Receive data. It is driven by the transmitter and read
by the receiver. Corresponds to the signal SD in the I
specification. (LPC1769/68/67/66/65/63 only).
I/OSSEL1 — Slave Select for SSP1.
OMAT2[0] — Match output for Timer 2, channel 0.
[1]
P0[7]/
I2STX_CLK/
SCK1/MAT2[1]
78A9J1
I/OP0[7] — General purpose digital input/output pin.
I/OI2STX_CLK — Transmit Clock. It is driven by the master and
received by the slave. Corresponds to the signal SCK in the I
specification. (LPC1769/68/67/66/65/63 only).
I/OSCK1 — Serial Clock for SSP1.
OMAT2[1] — Match output for Timer 2, channel 1.
[1]
P0[8]/
I2STX_WS/
MISO1/MAT2[2]
77C8H2
I/OP0[8] — General purpose digital input/output pin.
I/OI2STX_WS — Transmit Word Select. It is driven by the master and
received by the slave. Corresponds to the signal WS in the I
specification. (LPC1769/68/67/66/65/63 only).
I/OMISO1 — Master In Slave Out for SSP1.
OMAT2[2] — Match output for Timer 2, channel 2.
[1]
P0[9]/
I2STX_SDA/
MOSI1/MAT2[3]
76A10 H3
I/OP0[9] — General purpose digital input/output pin.
I/OI2STX_SDA — Transmit data. It is driven by the transmitter and
read by the receiver. Corresponds to the signal SD in the I
specification. (LPC1769/68/67/66/65/63 only).
I/OMOSI1 — Master Out Slave In for SSP1.
OMAT2[3] — Match output for Timer 2, channel 3.
[1]
P0[10]/TXD2/
SDA2/MAT3[0]
48H7H8
I/OP0[10] — General purpose digital input/output pin.
OTXD2 — Transmitter output for UART2.
I/OSDA2 — I
OMAT3[0] — Match output for Timer 3, channel 0.
2
S-bus
2
2
C2 data input/output (this is not an open-drain pin).
I/OP0[11] — General purpose digital input/output pin.
IRXD2 — Receiver input for UART2.
I/OSCL2 — I
OMAT3[1] — Match output for Timer 3, channel 1.
[1]
P0[15]/TXD1/
SCK0/SCK
62F10 H6
I/OP0[15] — General purpose digital input/output pin.
OTXD1 — Transmitter output for UART1.
I/OSCK0 — Serial clock for SSP0.
I/OSCK — Serial clock for SPI.
[1]
P0[16]/RXD1/
SSEL0/SSEL
63F8J5
I/OP0[16] — General purpose digital input/output pin.
IRXD1 — Receiver input for UART1.
I/OSSEL0 — Slave Select for SSP0.
I/OSSEL — Slave Select for SPI.
[1]
P0[17]/CTS1/
MISO0/MISO
61F9K6
I/OP0[17] — General purpose digital input/output pin.
ICTS1 — Clear to Send input for UART1.
I/OMISO0 — Master In Slave Out for SSP0.
I/OMISO — Master In Slave Out for SPI.
[1]
P0[18]/DCD1/
MOSI0/MOSI
60F6J6
I/OP0[18] — General purpose digital input/output pin.
IDCD1 — Data Carrier Detect input for UART1.
I/OMOSI0 — Master Out Slave In for SSP0.
I/OMOSI — Master Out Slave In for SPI.
[1]
P0[19]/DSR1/
SDA1
59G10 K7
I/OP0[19] — General purpose digital input/output pin.
IDSR1 — Data Set Ready input for UART1.
I/OSDA1 — I
open-drain pin).
[1]
P0[20]/DTR1/SCL1 58G9J7
I/OP0[20] — General purpose digital input/output pin.
ODTR1 — Data Termina l Ready output for UART1. Can also be
configured to be an RS-485/EIA-485 output enable signal.
I/OSCL1 — I
open-drain pin).
[1]
P0[21]/RI1/RD157G8H7
I/OP0[21] — General purpose digital input/output pin.
IRI1 — Ring Indicator input for UART1.
IRD1 — CAN1 receiver input. (LPC1769/68/66/65/64 only).
[1]
P0[22]/RTS1/TD156H10 K8
I/OP0[22] — General purpose digital input/output pin.
ORTS1 — Request to Send output for UART1. Can also be
configured to be an RS-485/EIA-485 output enable signal.
OTD1 — CAN1 transmitter output. (LPC1769/68/66/65/64 only).
2
C2 clock input/output (this is not an open-drain pin).
2
C1 data input/output (this is not an I2C-bus compliant
2
C1 clock input/output (this is not an I2C-bus compliant
I/OP0[24] — General purpose digital input/output pin.
IAD0[1] — A/D converter 0, input 1.
I/OI2SRX_WS — Receive Word Select. It is driven by the master and
received by the slave. Corresponds to the signal WS in the I
I/OP0[25] — General purpose digital input/output pin.
IAD0[2] — A/D converter 0, input 2.
I/OI2SRX_SDA — Receive data. It is driven by the transmitter and read
by the receiver. Corresponds to the signal SD in the I
specification. (LPC1769/68/67/66/65/63 only).
OTXD3 — Transmitter output for UART3.
[3]
P0[26]/AD0[3]/
AOUT/RXD3
6D3C5
I/OP0[26] — General purpose digital input/output pin.
IAD0[3] — A/D converter 0, input 3.
OAOUT — DAC output (LPC1769/68/67/66/65/63 only).
IRXD3 — Receiver input for UART3.
[4]
P0[27]/SDA0/
USB_SDA
25J2C8
I/OP0[27] — General purpose digital inpu t/output pin. Output is
open-drain.
I/OSDA0 — I
compliance).
I/OUSB_SDA — USB port I
LPC1769/68/66/65 only).
[4]
P0[28]/SCL0/
USB_SCL
24J1B9
I/OP0[28] — General purpose digital inpu t/output pin. Output is
open-drain.
I/OSCL0 — I
compliance).
I/OUSB_SCL — USB port I
LPC1769/68/66/65 only).
[5]
P0[29]/USB_D+29J3B10
I/OP0[29] — General purpose digital input/output pin.
I/OUSB_D+ — USB bidirectional D+ line. (LPC1769/68/66/65/64 only).
[5]
P0[30]/USB_D30G4C9
I/OP0[30] — General purpose digital input/output pin.
I/OUSB_D — USB bidirectional D line. (LPC1769/68/66/65/64 only).
2
2
S-bus
2
C0 data input/output. Open-drain output (for I2C-bus
I/OP1[20] — General purpose digital input/output pin.
IMCI0 — Motor control PWM channel 0, input. Also Quadrature
Encoder Interface PHA input.
OPWM1[2] — Pulse Width Modulator 1, channel 2 output.
I/OSCK0 — Serial clock for SSP0.
P1[21]/MCABORT
PWM1[3]/
SSEL0
/
35F5E9
[1]
I/OP1[21] — General purpose digital input/output pin.
OMCABORT
OPWM1[3] — Pulse Width Modulator 1, channel 3 output.
I/OSSEL0 — Slave Select for SSP0.
[1]
P1[22]/MCOB0/
USB_PWRD/
MAT1[0]
36J5D10
I/OP1[22] — General purpose digital input/output pin.
OMCOB0 — Motor control PWM channel 0, output B.
IUSB_PWRD — Power Status for USB port (host power switch,
LPC1769/68/66/65 only).
OMAT1[0] — Match output for Timer 1, channel 0.
[1]
P1[23]/MCI1/
PWM1[4]/MISO0
37K5E7
I/OP1[23] — General purpose digital input/output pin.
IMCI1 — Motor control PWM channel 1, input. Also Quadrature
Encoder Interface PHB input.
OPWM1[4] — Pulse Width Modulator 1, channel 4 output.
I/OMISO0 — Master In Slave Out for SSP0.
[1]
P1[24]/MCI2/
PWM1[5]/MOSI0
38H5F8
I/OP1[24] — General purpose digital input/output pin.
IMCI2 — Motor control PWM channel 2, input. Also Quadrature
Encoder Interface INDEX input.
OPWM1[5] — Pulse Width Modulator 1, channel 5 output.
I/OMOSI0 — Master Out Slave in for SSP0.
I/OP1[25] — General purpose digital input/output pin.
OMCOA1 — Motor control PWM channel 1, output A.
OMAT1[1] — Match output for Timer 1, channel 1.
[1]
P1[26]/MCOB1/
PWM1[6]/CAP0[0]
40K6E10
I/OP1[26] — General purpose digital input/output pin.
OMCOB1 — Motor control PWM channel 1, output B.
OPWM1[6] — Pulse Width Modulator 1, channel 6 output.
ICAP0[0] — Capture input for Timer 0, channel 0.
P1[27]/CLKOUT
/USB_OVRCR
CAP0[1]
43K7G9
/
[1]
I/OP1[27] — General purpose digital input/output pin.
OCLKOUT — Clock output pin.
IUSB_OVRCR
— USB port Over-Current status. (LPC1769/68/66/65
only).
ICAP0[1] — Capture input for Timer 0, channel 1.
[1]
P1[28]/MCOA2/
PCAP1[0]/
MAT0[0]
44J7G10
I/OP1[28] — General purpose digital input/output pin.
OMCOA2 — Motor control PWM channel 2, output A.
IPCAP1[0] — Capture input for PWM1, channel 0.
OMAT0[0] — Match output for Timer 0, channel 0.
[1]
P1[29]/MCOB2/
PCAP1[1]/
MAT0[1]
45G6G8
I/OP1[29] — General purpose digital input/output pin.
OMCOB2 — Motor control PWM channel 2, output B.
IPCAP1[1] — Capture input for PWM1, channel 1.
OMAT0[1] — Match output for Timer 0, channel 1.
P1[30]/V
AD0[4]
BUS
/
21H1B8
[2]
I/OP1[30] — General purpose digital input/output pin.
IV
— Monitors the presence of USB bus power.
BUS
(LPC1769/68/66/65/64 only).
Note: This signal must be HIGH for USB reset to occur.
IAD0[4] — A/D converter 0, input 4.
[2]
P1[31]/SCK1/
AD0[5]
20F4C7
I/OP1[31] — General purpose digital input/output pin.
I/OSCK1 — Serial Clock for SSP1.
IAD0[5] — A/D converter 0, input 5.
P2[0] to P2[31]I/OPort 2: Port 2 is a 32-bit I/O port with individual direction controls for
each bit. The operation of port 2 pins depends upon the pin function
selected via the pin connect block. Pins 14 through 31 of this port
are not available.
[1]
P2[0]/PWM1[1]/
TXD1
75B9K1
I/OP2[0] — General purpose digital input/output pin.
OPWM1[1] — Pulse Width Modulator 1, channel 1 output.
OTXD1 — Transmitter output for UART1.
[1]
P2[1]/PWM1[2]/
RXD1
74B10 J2
I/OP2[1] — General purpose digital input/output pin.
OPWM1[2] — Pulse Width Modulator 1, channel 2 output.
IRXD1 — Receiver input for UART1.
I/OP2[2] — General purpose digital input/output pin.
OPWM1[3] — Pulse Width Modulator 1, channel 3 output.
ICTS1 — Clear to Send input for UART1.
OTRACEDATA[3] — Trace data, bit 3.
[1]
P2[3]/PWM1[4]/
DCD1/
TRACEDATA[2]
70E7K3
I/OP2[3] — General purpose digital input/output pin.
OPWM1[4] — Pulse Width Modulator 1, channel 4 output.
IDCD1 — Data Carrier Detect input for UART1.
OTRACEDATA[2] — Trace data, bit 2.
[1]
P2[4]/PWM1[5]/
DSR1/
TRACEDATA[1]
69D9J3
I/OP2[4] — General purpose digital input/output pin.
OPWM1[5] — Pulse Width Modulator 1, channel 5 output.
IDSR1 — Data Set Ready input for UART1.
OTRACEDATA[1] — Trace data, bit 1.
[1]
P2[5]/PWM1[6]/
DTR1/
TRACEDATA[0]
68D10 H4
I/OP2[5] — General purpose digital input/output pin.
OPWM1[6] — Pulse Width Modulator 1, channel 6 output.
ODTR1 — Data Termina l Ready output for UART1. Can also be
configured to be an RS-485/EIA-485 output enable signal.
OTRACEDATA[0] — Trace data, bit 0.
[1]
P2[6]/PCAP1[0]/
RI1/TRACECLK
67E8K4
I/OP2[6] — General purpose digital input/output pin.
IPCAP1[0] — Capture input for PWM1, channel 0.
IRI1 — Ring Indicator input for UART1.
OTRACECLK — Trace Clock.
[1]
P2[7]/RD2/
RTS1
66E9J4
I/OP2[7] — General purpose digital input/output pin.
IRD2 — CAN2 receiver input. (LPC1769/68/66/65/64 only).
ORTS1 — Request to Send output for UART1. Can also be
configured to be an RS-485/EIA-485 output enable signal.
[1]
P2[8]/TD2/
TXD2
65E10 H5
I/OP2[8] — General purpose digital input/output pin.
OTD2 — CAN2 transmitter output. (LPC1769/68/66/65/64 only).
OTXD2 — Transmitter output for UART2.
[1]
P2[9]/
USB_CONNECT/
RXD2
64F7K5
I/OP2[9] — General purpose digital input/output pin.
OUSB_CONNECT — Signal used to switch an external 1.5 k
resistor under software control. Used with the SoftConnect USB
feature. (LPC1769/68/66/65/64 only).
IRXD2 — Receiver input for UART2.
P2[10]/EINT0
/NMI53J10 K9
[6]
I/OP2[10] — General purpose digital input/output pin. A LOW level on
this pin during reset starts the ISP command handler.
IEINT0
I/OP2[11] — General purpose digital input/output pin.
IEINT1
— External interrupt 1 input.
I/OI2STX_CLK — Transmit Clock. It is driven by the master and
2
received by the slave. Corresponds to the signal SCK in the I
S-bus
specification. (LPC1769/68/67/66/65/63 only).
P2[12]/EINT2
I2STX_WS
/
51K10 K10
[6]
I/OP2[12] — General purpose digital input/output pin.
IEINT2
— External interrupt 2 input.
I/OI2STX_WS — Transmit Word Select. It is driven by the master and
2
received by the slave. Corresponds to the signal WS in the I
S-bus
specification. (LPC1769/68/67/66/65/63 only).
P2[13]/EINT3
I2STX_SDA
/
50J9J9
[6]
I/OP2[13] — General purpose digital input/output pin.
IEINT3
— External interrupt 3 input.
I/OI2STX_SDA — Transmit data. It is driven by the transmitter and
2
read by the receiver. Corresponds to the signal SD in the I
S-bus
specification. (LPC1769/68/67/66/65/63 only).
P3[0] to P3[31]I/OPort 3: Port 3 is a 32-bit I/O port with individual direction controls for
each bit. The operation of port 3 pins depends upon the pin function
selected via the pin connect block. Pins 0 through 24, and 27
through 31 of this port are not available.
[1]
P3[25]/MAT0[0]/
PWM1[2]
27H3D8
I/OP3[25] — General purpose digital input/output pin.
OMAT0[0] — Match output for Timer 0, channel 0.
OPWM1[2] — Pulse Width Modulator 1, output 2.
[1]
P3[26]/STCLK/
MAT0[1]/PWM1[3]
26K1A10
I/OP3[26] — General purpose digital input/output pin.
ISTCLK — System tick timer clock input. The maximum STCLK
frequency is 1/4 of the Arm processor clock frequency CCLK.
OMAT0[1] — Match output for Timer 0, channel 1.
OPWM1[3] — Pulse Width Modulator 1, output 3.
P4[0] to P4[31]I/OPort 4: Port 4 is a 32-bit I/O port with individual direction controls for
each bit. The operation of port 4 pins depends upon the pin function
selected via the pin connect block. Pins 0 through 27, 30, and 31 of
this port are not available .
[1]
P4[28]/RX_MCLK/
MAT2[0]/TXD3
82C7G1
I/OP4[28] — General purpose digital input/output pin.
2
ORX_MCLK — I
S receive master clock. (LPC1769/68/67/66/65
only).
OMAT2[0] — Match output for Timer 2, channel 0.
OTXD3 — Transmitter output for UART3.
[1]
P4[29]/TX_MCLK/
MAT2[1]/RXD3
85E6F1
I/OP4[29] — General purpose digital input/output pin.
2
OTX_MCLK — I
S transmit master clock. (LPC1769/68/67/66/65
only).
OMAT2[1] — Match output for Timer 2, channel 1.
IRXD3 — Receiver input for UART3.
VREFN15F1A6IADC negative reference voltage: This should be nominally the
same voltage as VSS but should be isolated to minimize noise and
error. Level on this pin is used as a reference for ADC and DAC.
[10][12]
VBAT19G2A8
IRTC pin power supply: 3.3 V on this pin supplies the power to the
RTC peripheral.
n.c.13D4, E4B6,
-not connected.
D6
[1] 5 V tolerant pad providing digital I/O functions with TTL levels and hysteresis. This pin is pulled up to a voltage level of 2.3 V to 2.6 V.
[2] 5 V tolerant pad providing digital I/O functions (with TTL levels and hysteresis) and analog input. When configured as a ADC input,
digital section of the pad is disabled and the pin is not 5 V tolerant. This pin is pulled up to a voltage level of 2.3 V to 2.6 V.
[3] 5 V tolerant pad providing digital I/O with TTL levels and hysteresis and analog output function. When configured as the DAC output,
digital section of the pad is disabled. This pin is pulled up to a voltage level of 2.3 V to 2.6 V.
[4] Open-drain 5 V tolerant digital I/O pad, compatible with I
output functionality. When power is switched off, this pin connected to the I
Open-drain configuration applies to all functions on this pin.
[5] Pad provides digital I/O and USB functions. It is designed in accordance with the USB specification, revision 2.0 (Full-speed and
Low-speed mode only). This pad is not 5 V tolerant.
[6] 5 V tolerant pad with 10 ns glitch filter providing digital I/O functions with TTL levels and hysteresis. This pin is pulled up to a voltage
level of 2.3 V to 2.6 V.
[7] 5 V tolerant pad with TTL levels and hysteresis. Internal pull-up and pull-down resistors disabled.
[8] 5 V tolerant pad with TTL levels and hysteresis and internal pull-up resistor.
[9] 5 V tolerant pad with 20 ns glitch filter providing digital I/O function with TTL levels and hysteresis.
[10] Pad provides special analog functionality. A 32 kHz crystal oscillator must be used with the RTC.
[11] When the system oscillator is not used, connect XTAL1 and XTAL2 as follows: XTAL1 can be left floating or can be grounded (grounding
is preferred to reduce susceptibility to noise). XTAL2 should be left floating.
[12] When the RTC is not used, connect VBAT to V
DD(REG)(3V3)
2
C-bus 400 kHz specification. This pad requires an external pull-up to provide
and leave RTCX1 floating.
2
C-bus is floating and does not disturb the I2C lines.
Remark: In the following, the notation LPC17xx refers to all parts:
LPC1769/68/67/66/65/64/63.
The Arm Cortex-M3 includes three AHB-Lite buses: the system bus, the I-code bus, and
the D-code bus (see Figure 1
system bus and are used similarly to TCM interfaces: one bus dedicated for instruction
fetch (I-code) and one bus for data access (D-c ode). The use of two core buses allows for
simultaneous operations if concurrent operations target different devices.
The LPC17xx use a multi-layer AHB matrix to connect the Arm Cortex-M3 buses and
other bus masters to peripherals in a flexible mann e r tha t op tim ize s pe rfo rm a nc e by
allowing peripherals that are on different slaves ports of the matrix to be accessed
simultaneously by different bus masters.
8.2 Arm Cortex-M3 processor
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
). The I-code and D-code core buses are faster than the
The Arm Cortex-M3 is a general purpose, 32-bit microprocessor, which offers hig h
performance and very low power consumption. The Arm Cortex-M3 offers many new
features, including a Thumb-2 instruction set, low interrupt latency, hardware divide,
interruptible/continuable multiple load and store instructions, automatic state save and
restore for interrupts, tightly integrated interrupt controller with wake-up interrupt
controller, and multiple core buses capable of simultaneous accesses.
Pipeline techniques are employed so that all part s of the pro cessing 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 Arm Cortex-M3 processor is described in detail in the Cortex-M3 Technical Reference Manual that can be found on official Arm website.
8.3 On-chip flash program memory
The LPC17xx contain up to 512 kB of on-chip flash memory. A new two-port flash
accelerator maximizes performance for use with the two fast AHB-Lite buses.
8.4 On-chip SRAM
The LPC17xx contain a total of 64 kB on-chip st atic RAM memory. This includes the main
32 kB SRAM, accessible by the CPU and DMA controller on a higher-speed bus, and two
additional 16 kB each SRAM blocks situated on a separate slave port on the AHB
multilayer matrix.
This architecture allows CPU and DMA accesses to be spread over three separate RAMs
that can be accessed simultaneously.
8.5 Memory Protection Unit (MPU)
The LPC17xx have a Memory Protection Unit (MPU) which can be used to improve the
reliability of an embedded system by protecting critical data within the user application.
The MPU allows separating processing tasks by disallowing access to each other's data,
disabling access to memory regions, allowing memory regions to be defined as re ad -onl y
and detecting unexpected memory accesses that could potentially break the system.
The MPU separates the memory into distinct regions and implements protection by
preventing disallowed accesses. The MPU supports up to 8 regions each of which can be
divided into 8 subregions. Accesses to memory locations that are not defined in the MPU
regions, or not permitted by the region settin g , will ca use the Memory Management Fault
exception to take place.
8.6 Memory map
The LPC17xx incorporates several distinct memory regions, shown in the following
figures. Figure 5
program viewpoint following reset. The interrupt vector area supports address remapping.
The AHB peripheral area is 2 MB in size and is divided to allow for up to 128 peripherals.
The APB peripheral area is 1 MB in size and is divided to allow for up to 64 peripherals.
Each peripheral of either type is allocated 16 kB of space. This allows simplifying the
address decoding for each peripheral.
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
shows the overall map of the entire address space from the user
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
The NVIC is an integral part of the Cortex-M3. The tight coup ling to the CPU allows for low
interrupt latency and efficient processing of late arriving interrupts.
8.7.1 Features
• Controls system exceptions and peripheral interrupts
• In the LPC17xx, the NVIC supports 33 vectored interrupts
Each peripheral device has one interrupt line con nected to the NVIC but may have several
interrupt flags. Individual interrupt flags may also represent more than one interrupt
source.
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
Any pin on Port 0 and Port 2 (total of 42 pins) regardless of the selected function, can be
programmed to generate an interrupt on a rising edge, a falling edge, or both.
8.8 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.
Most pins can also be configured as open-drain outpu ts or to have a pull-up, pull- down, or
no resistor enabled.
8.9 General purpose DMA controller
The GPDMA is an AMBA AHB compliant peripheral allowing selected peripherals to have
DMA support.
The GPDMA enables peripheral-to-memory, memory-to-peripheral,
peripheral-to-peripheral, and memory-to-memory transactions. The source and
destination areas can each be either a memory region or a peripheral, and can be
accessed through the AHB master. The GPDMA controller allows data transfers between
the USB and Ethernet controllers and the various on-chip SRAM areas. The supported
APB peripherals are SSP0/1, all UARTs, the I
Two match signals for each timer can be used to trigger DMA transfers.
2
S-bus interface, the ADC, and the DAC.
Remark: The Ethernet controller is available on parts LPC1769/68/67/66/64. The USB
controller is available on parts LPC1769/68/66/65/64. The I
parts LPC1769/68/67/66/65. The DAC is available on parts LPC1769/68/67/66/65/63.
• Eight DMA channels. Each channel can support an unidirectional transfer.
• 16 DMA request lines.
• Single DMA and burst DMA request signals. Each peripheral connected to the DMA
• Memory-to-memory, memory-to-peripheral, peripheral-to-memory, and
• Scatter or gather DMA is supported through the use of linked lists. This means that
• Hardware DMA channel priority.
• AHB slave DMA programming interface. The DMA Controller is programmed by
• One AHB bus master for transferring data. The interface transfers data when a DMA
• 32-bit AHB master bus width.
• Incrementing or non-incrementing addressing for source and destination.
• Programmable DMA burst size. The DMA burst size can be programmed to more
• Internal four-word FIFO per channel.
• Supports 8, 16, and 32-bit wide tra n sactions.
• Big-endian and little-endian support. The DMA Controller defaults to little-endian
• An interrupt to the processor can be generated on a DMA completion or when a DMA
• Raw interrupt status. The DMA error and DMA count raw interrupt status can be read
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
Controller can assert either a burst DMA request or a single DMA request. The DMA
burst size is set by programming the DMA Controller.
peripheral-to-peripheral transfers are supported.
the source and destination areas do not have to occupy contiguous areas of memory.
writing to the DMA control registers over the AHB slave interface.
request goes active.
efficiently transfer data.
mode on reset.
error has occurred.
prior to masking.
8.10 Fast general purpose parallel I/O
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 nu mber of outputs simultaneously. The value of the
output register may be read back as well as the current state of the port pins.
LPC17xx use accelerated GPIO functions:
• GPIO registers are ac ce sse d th ro ug h the AHB mu ltilaye r bu s so th at th e fa ste st
possible I/O timing can be achieved.
• Mask registers allow treating sets of port bits as a group, leaving other bits
unchanged.
• All GPIO registers are byte and half-word addressable.
• Entire port value can be written in one instruction.
Additionally, any pin on Port 0 and Port 2 (total of 42 pins) providing a digital function can
be programmed to generate an interrupt on a rising edge, a falling edge, or both. The
edge detection is asynchronous, so it may operate when clocks are not present such as
during Power-down mode. Each enabled interrupt can be used to wake up the chip from
Power-down mode.
8.10.1 Features
• Bit level set and clear registers allow a single instruction to set or clear any number of
• Direction control of individual bits.
• All I/O default to inputs after reset.
• Pull-up/pull-down resistor configuration and open-drain configuration can be
8.11 Ethernet
Remark: The Ethernet controller is available on part s LPC1769/68/67/66/64. The
Ethernet block supports bus clock rates of up to 100 MHz (LPC1768/67/66/64) or 120
MHz (LPC1769). See Table 2
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
bits in one port.
programmed through the pin connect block for each GPIO pin.
.
The Ethernet block contains a full featured 10 Mbit/s or 100 Mbit/s Ethernet MAC
designed to provide optimized performance through the use of DMA hardware
acceleration. Features include a generous suite of control registers, half or full duplex
operation, flow control, control frames, hardware acceleration for transmit retry, receive
packet filtering and wake-up on LAN activity. Automatic frame transmission and reception
with scatter-gather DMA off-loads many operations from the CPU.
The Ethernet block and the CPU share the Arm Cortex-M3 D-code and system bus
through the AHB-multilayer matrix to access the various on-chip SRAM blocks for
Ethernet data, control, and status information.
The Ethernet block interfaces between an off-chip Ethernet PHY using the Reduced MII
(RMII) protocol and the on-chip Media Independent Interface Management (MIIM) serial
bus.
8.11.1 Features
• Ethernet standards support:
– Supports 10 Mbit/s or 100 Mbit/s PHY devices including 10 Base-T, 100 Base-TX,
100 Base-FX, and 100 Base-T4.
– Fully compliant with IEEE standard 802.3.
– Fully compliant with 802.3x full duplex flow control and half duplex back pressure.
– Flexible transmit and receive frame options.
– Virtual Local Area Network (VLAN) frame support.
• Memory management:
– Independent transmit and receive buffer s memory mapped to shared SRAM.
– DMA managers with scatter/gather DMA and arrays of frame descriptors.
– Memory traffic optimized by buffering and pre-fetching.
– Receive filtering.
– Multicast and broadcast frame support for both transmit and receive.
– Optional automatic Frame Check Sequence (FCS) insertion with Cyclic
Redundancy Check (CRC) for transmit.
– Selectable automatic transmit frame padding.
– Over-length frame support for both transmit and receive allows any length frames.
– Promiscuous receive mode.
– Automatic collision back-off and frame retransmission.
– Includes power management by clock switching.
– Wake-on-LAN power management support allows system wake-up: using the
receive filters or a magic frame detection filter.
– Attachment of external PHY chip through stan dard RMII interface.
– PHY register access is available via the MIIM interface.
8.12 USB interface
Remark: The USB controller is available as device/Host/OTG controller on parts
LPC1769/68/66/65 and as device-only controller on part LPC1764.
The Universal Serial Bus (USB) is a 4-wire bus that supports communication between a
host and one or more (up to 127) peripherals. The host controller allocates the USB
bandwidth to attached devices through a token-based protocol. The bus supports hot
plugging and dynamic configuration of the devices. All transactions are initiated by the
host controller.
The USB interface includes a device, Host, and OTG controller with on-chip PHY for
device and Host functions. The OTG switching protocol is supported through the use of an
external controller. Details on typical USB interfacing solutions can be found in
Section 15.1
8.12.1 USB device controller
The device controller enables 12 Mbit/s data exchange with a USB Host controller. It
consists of a register interface, serial interface engine, endpoint buffer memory, and a
DMA controller. The seria l interface eng ine decod es the USB dat a strea m and writes dat a
to the appropriate endpoint buffer. The status of a completed USB transfer or error
condition is indicated via status registers. An interrupt is also generated if enabled. When
enabled, the DMA controller transfers data between the endpoint buffer and the on-chip
SRAM.
.
8.12.1.1 Features
• Fully compliant with USB 2.0 specification (full speed).
• Supports 32 physical (16 logical) endpoints with a 4 kB endpoint buffer RAM.
• Supports Control, Bulk, Interrupt and Isochronous endpoints.
• Endpoint Maximum packet size selection (up to USB maximum specification) by
• Supports SoftConnect and GoodLink features.
• While USB is in the Suspend mode, the part can ente r one of the re du ce d power
• Supports DMA transfers with all on-c hip SRAM blo cks on all non-control endpoints.
• Allows dynamic switching between CPU-controlled slave and DMA modes.
• Double buffer implementation for Bulk and Isochronous endpoints.
8.12.2 USB host controller
The host controller enables full- and low-speed dat a exchange with USB devices attached
to the bus. It consists of a register interface, a serial interface engine, and a DMA
controller. The register interface complies with the OHCI specification.
8.12.2.1 Features
• OHCI compliant.
• One downstream port.
• Supports port power switchin g .
LPC1769/68/67/66/65/64/63
32-bit ARM Cortex-M3 microcontroller
software at run time.
modes and wake up on USB activity.
8.12.3 USB OTG controller
USB OTG is a supplement to the USB 2.0 specification that augments the capability of
existing mobile devices and USB peripherals by adding host functionality for connection to
USB peripherals.
The OTG Controller integrates the host controller, device controller, and a master-only
2
C-bus interface to implement OTG dual-role device functionality. The dedicated I2C-bus
I
interface controls an external OTG transceiver.
8.12.3.1 Features
• Fully compliant with On-The-Go supplement to the USB 2.0 Specification, Revision
1.0a.
• Hardware support for Host Negotiation Protocol (HNP).
• Includes a programmable timer required for HNP and Session Request Protocol
(SRP).
• Supports any OTG transceiver compliant with the OTG Transceiver Specification
(CEA-2011), Rev. 1.0.
8.13 CAN controller and acceptance filters
Remark: The CAN controllers are available on parts LPC1769/68/66/65/64. See Table 2.
The Controller Area Network (CAN) is a serial communications protocol which efficiently
supports distributed real-time control with a very high level of security. Its domain of
application ranges from high-speed networks to low cost multiplex wiring.
The CAN block is intended to support multiple CAN buses simultaneously, allowing the
device to be used as a gateway, switch, or router among a number of CAN buses in
industrial or automotive applications.