Keil
http://www.keil.com/pack/
LPC1800_DFP
NXP LPC1800 Series Device Support, Drivers and Examples

## 2.7.0-rel

CMSIS device: - corrected doxy comments is system file CMSIS driver: - Updated SSP: -- corrected PIN Configuration and Unconfiguration - Updated CAN: -- corrected receive overrun clearing and signaling -- corrected interrupt routine (status interrupt could case lockup) -- corrected functionality when NULL pointer is provided for one or both signal callbacks in Initialize function call -- corrected CAN1 IRQ routine -- corrected MessageSend function to return busy if transmission is in progress

## 2.6.0 2016-02-01

Updated GPDMA driver to transfer data larger than 4k. CMSIS driver: - added CAN: driver and configuration options in RTE_Device.h - updated all: corrected PowerControl function for conditional Power full state (driver must be initialized) - updated USART, I2S, SSP: interwork with new GPDMA driver - updated I2C: pending IRQ flag cleared after aborted transfer - updated USB Device: removed unnecessary __packed specifier for GCC compliance - updated EMAC: corrected return value of the ReadFrame function Board examples for Keil MCB1800: - added CAN Data and CAN RTR MDK projects

## 2.5.0 2015-06-19

Updated CMSIS drivers: - I2C, MCI, EMAC, I2S, SPI, USART, USB Device, USB Host: Updated initialization, uninitialization and power procedures - I2S, SPI, USART, USB Device, USB Host: Corrected status bit-field race conditions - MCI: -- Interrupt processing optimized -- Data timeout handling corrected Updated example for USB device VirtualCOM

## 2.4.0 2015-04-24

Device support: - added LPC18Sxx series devices - updated device features Updated CMSIS Driver: - I2S: improved fs divider calculation - MCI: avoid DMA buffer alignment issues - USART: -- corrected disabling of receive DMA channel when aborting Receive or Transfer -- moved fract_div_lookup_table from header file to driver .c file Updated Example for USB Device Mass Storage

## 2.3.0 2015-03-20

Required PACKs: ARM.CMSIS.4.3.0.pack, Keil.MDK-Middleware.6.3.0.pack, Keil.ARM_Compiler.1.0.0.pack Updated device support files: - LPC18xx.h (added FLASHCFGA, FLASHCFGB register) Updated drivers: - RTE_Device.h (driver configuration): -- corrected RTE_USB1_IND0_PIN_EN into RTE_USB1_IND1_PIN_EN -- removed RTE_USB_USB0_DEV_EP and RTE_USB_USB1_DEV_EP - EMAC: corrected return value of PHY_Read and PHY_Write functions - MCI: enabled High speed capability and added block size handling - SSP: corrected pin handling, ssp->info->mode handling - USART: improved baudrate calculation - USB Device: -- corrected isochronous endpoint configuration -- corrected transfer procedure -- corrected CLK_M4_USB1_CFG into CLK_M4_USB0_CFG in USBD_PowerControl function Added: - I2S driver - USB Device Audio example - Audio Board interface for MCB1800 Evaluation Board Updated examples: - Compiler I/O software component is now used for I/O retargeting

## 2.2.0 2014-12-11

Updated for use with MDK-Middleware Version 6.2: - File_Demo and USB Host MassStorage examples due to new fdelete() API in File System 6.2 - emWin GUIDemo example (corrected JOYSTICK orientation) Corrected: - USBD0 driver corrected PORTSC1_D_PFSC into USB_PORTSC1_D_PFSC - SCU driver SCU_SFSCLKx(clk_pin) and SCU_ENAIOx(n) macros - USART driver modem lines handling - SPI0/1 driver avoid stack corruption - GPDMA driver initialization and uninitialization is done from drivers - ETH driver implemented GetMacAddress function Updated SVD file.

## 2.1.0 2014-07-15

Corrected Touch calibration in GUIDemo example (for use with Keil.MDK-Middleware.6.1.0) Corrected conditions for SPI drivers and ARM Compiler toolchain dependency Updated USB Device drivers Updated Flash Programming Algorithm

## 2.0.0 2014-06-12

CMSIS Driver V2 compliant drivers (requires ARM.CMSIS.4.1.0) - I2C, MCI, SSP, USART, USB Host and Device, Ethernet MAC Examples for MCB1800 Evaluation Board (requires Keil.MDK-Middleware.6.0.0) - USB, Network, Graphics and Filesystem Board Support Interface drivers - ADC, Buttons, Joystick, Graphic LCD, Touchscreen, EEPROM, Thermometer

## 1.0.6

Renamed subFamilies to 185x for example.

## 1.0.5

Updated device description with features, added MCB1800 Board description

## 1.0.4

Updated I2C driver USB Device drivers re-implemented

## 1.0.3

Updated devices list

## 1.0.2

Updated drivers (namespace prefix ARM_ added)

## 1.0.1

Synchronized Middleware examples to Keil Middleware version 5.0.1

## 1.0.0

Beta version of LPC1800 Device Family Pack.
NXP
Device Support
Device Family Package NXP
LPC1800
LPC18xx
__var VecResetWithPeriph = 1; // Reset peripherals on Vector Reset

// TPIU Pin Routing (TRACECLK fixed on PF_4) // - Bit 0: TRACEDATA[0]: 0 - PF_5, 1 - P7_4 // - Bit 1: TRACEDATA[1]: 0 - PF_6, 1 - P7_5 // - Bit 2: TRACEDATA[2]: 0 - PF_7, 1 - P7_6 // - Bit 3: TRACEDATA[3]: 0 - PF_8, 1 - P7_7 __var RoutingTPIU = 0x00000000; // Default selection (MCB1800)
// Execute VECTRESET via AIRCR Write32(0xE000ED0C, 0x05FA0001);
// Reset peripherals Write32(0x40053100, 0xFFDF0030); // RESET_CTRL0 Write32(0x40053104, 0xFFFFFFFF); // RESET_CTRL1
__var chipID = 0;

// Read chip ID chipID = Read32(0x40043200);
__var resetVecBankA = 0; __var resetVecBankB = 0;

// Clear Reset Vector Catch Write32(0xE000EDFC, Read32(0xE000EDFC) & (~0x00000001));

// Read reset vector from bank A resetVecBankA = Read32(0x1A000004); // Read reset vector from bank B resetVecBankB = Read32(0x1B000004);
// Even Address Write32(0xE0002008, (resetVecBankA & 0x1FFFFFFC) | 0x40000001); // Write address to FPB Comparator 0
// Odd Address Write32(0xE0002008, (resetVecBankA & 0x1FFFFFFC) | 0x80000001); // Write address to FPB Comparator 0
// Even Address Write32(0xE000200C, (resetVecBankB & 0x1FFFFFFC) | 0x40000001); // Write address to FPB Comparator 1
// Odd Address Write32(0xE000200C, (resetVecBankB & 0x1FFFFFFC) | 0x80000001); // Write address to FPB Comparator 1
// Enable FPB Write32(0xE0002000, 0x00000003);
// Clear FPB Comparators 0 and 1 Write32(0xE0002008, 0x00000000); Write32(0xE000200C, 0x00000000);

// Disable FPB Write32(0xE0002000, 0x00000002);
// Nothing required for SWO Trace __var traceTPIU = (__traceout & 0x2) != 0; __var traceBuffer = (__traceout & 0x4) != 0;
Sequence("EnableTraceTPIU");
Sequence("EnableTraceBuffer");
// Nothing required for SWO Trace __var traceTPIU = (__traceout & 0x2) != 0; __var traceBuffer = (__traceout & 0x4) != 0;
Sequence("DisableTraceTPIU");
Sequence("DisableTraceBuffer");
__var tracePortWidth = (__traceout & 0x003F0000) >> 16;

// Setup fixed TRACECLK pin Write32(0x40086790, 0x000000B2); // LPC_SCU->SFSPF_4 : Func 2, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x40086794, 0x000000B3); // LPC_SCU->SFSPF_5 : Func 3, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x40086390, 0x000000B5); // LPC_SCU->SFSP7_4 : Func 5, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x40086798, 0x000000B3); // LPC_SCU->SFSPF_6 : Func 3, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x40086394, 0x000000B5); // LPC_SCU->SFSP7_5 : Func 5, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x4008679C, 0x000000B3); // LPC_SCU->SFSPF_7 : Func 3, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x40086398, 0x000000B5); // LPC_SCU->SFSP7_6 : Func 5, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x400867A0, 0x000000B3); // LPC_SCU->SFSPF_8 : Func 3, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
Write32(0x4008639C, 0x000000B5); // LPC_SCU->SFSP7_7 : Func 5, EPD 0, EPUN 1, EHS 1, EZI 0, ZIF 1
// ETB accesses SRAM at 0x2000C000 - 0x2000FFFF // This memory region is not available to application when using ETB Write32(0x40043128, 0x00000000); // ETBCFG: ETB bit
__var tracePortWidth = (__traceout & 0x003F0000) >> 16;

// Setup fixed TRACECLK pin Write32(0x40086790, 0x00000000); // LPC_SCU->SFSPF_4 : Reset Value 0x00000000
Write32(0x40086794, 0x00000000); // LPC_SCU->SFSPF_5 : Reset Value 0x00000000
Write32(0x40086390, 0x00000000); // LPC_SCU->SFSP7_4 : Reset Value 0x00000000
Write32(0x40086798, 0x00000000); // LPC_SCU->SFSPF_6 : Reset Value 0x00000000
Write32(0x40086394, 0x00000000); // LPC_SCU->SFSP7_5 : Reset Value 0x00000000
Write32(0x4008679C, 0x00000000); // LPC_SCU->SFSPF_7 : Reset Value 0x00000000
Write32(0x40086398, 0x00000000); // LPC_SCU->SFSP7_6 : Reset Value 0x00000000
Write32(0x400867A0, 0x00000000); // LPC_SCU->SFSPF_8 : Reset Value 0x00000000
Write32(0x4008639C, 0x00000000); // LPC_SCU->SFSP7_7 : Reset Value 0x00000000
// AHB accesses SRAM at 0x2000C000 - 0x2000FFFF Write32(0x40043128, 0x00000001); // ETBCFG: ETB bit

Cortex-M3 Generic User Guide

NXP LPC1800 devices are high-speed and offer extensive communication peripherals. Typical applications include Industrial, RFID readers, Consumer, e-Metering and White goods.

- Three PLLs - Quad SPI Flash interface (SPIFI) - State Configurable Timer (SCT) - LCD Controller (1024x768) for STN and TFT - Motor control PWM for three-phase motor - Unique ID for each device

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

MCB1800 User's Guide

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC1800 Series Reference Manual

LPC1800 Series Datasheet

LPC1800 Series Erratasheet

MCB1800 User's Guide

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC18xx Reference Manual

LPC18S50/S30/S10 Datasheet

LPC18xx Reference Manual

LPC18S50/S30/S10 Datasheet

LPC18xx Reference Manual

LPC18S5x/S3x Series Datasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1

LPC18xx Reference Manual

LPC18S50/S30/S10 Datasheet

LPC18xx Reference Manual

LPC18S5x/S3x Series Datasheet

$K/ARM/BIN/ElfDwT.exe !L BASEADDRESS(0x1A000000)
1
Keil MCB1800 Development Board

MCB1800 Evaluation Board Web Page

Quick Start Guide

MCB1800 Schematics

User Manual

NXP LPC1800 Series devices
NXP LPC1800 Series devices and CMSIS-CORE and ARMCC compiler
NXP LPC1800 with CMSIS and SCU
NXP LPC1800 with CMSIS, RTOS and SCU
NXP LPC1800 with CMSIS, SCU and GPIO
NXP LPC1800 with CMSIS, SCU and GPDMA
NXP LPC1800 with CMSIS, SCU, GPIO and GPDMA
NXP LPC1800 with CMSIS, SCU, GPIO and SPI
NXP LPC1800 with CMSIS, SCU, GPIO, SPI and Display
NXP LPC1800 with CMSIS and I2C Driver
NXP LPC1800 with CMSIS, RTOS and I2C Driver
NXP LPC1800 with CMSIS, SCU, GPIO and SAI/I2C Driver
Blinky example
Getting Started
Blinky ULINKpro example
Getting Started
CMSIS-RTOS based Blinky example
Getting Started
CMSIS-RTX
System Startup for NXP LPC1800 Series
#define RTE_DEVICE_STARTUP_LPC18XX /* Device Startup for NXP18XX */
SCU driver used by RTE Drivers for LPC1800 Series
GPIO driver used by RTE Drivers for LPC1800 Series
GPDMA driver used by RTE Drivers for LPC1800 Series
CAN Driver for LPC1800 series
#define RTE_Drivers_CAN0 /* Driver CAN0 */ #define RTE_Drivers_CAN1 /* Driver CAN1 */
USB0 Device Driver for the LPC1800 series
#define RTE_Drivers_USBD0 /* Driver USBD0 */
USB1 Device Driver for the LPC1800 series
#define RTE_Drivers_USBD1 /* Driver USBD1 */
USB0 EHCI Host Driver for the LPC1800 series
#define RTE_Drivers_USBH0 /* Driver USBH0 */
USB1 EHCI Host Driver for the LPC1800 series
#define RTE_Drivers_USBH1 /* Driver USBH1 */
Ethernet MAC Driver for LPC1800 Series
#define RTE_Drivers_ETH_MAC0 /* Driver ETH_MAC0 */
MCI Driver for LPC1800 Series
#define RTE_Drivers_MCI0 /* Driver MCI0 */
I2C Driver for LPC1800 Series
#define RTE_Drivers_I2C0 /* Driver I2C0 */ #define RTE_Drivers_I2C1 /* Driver I2C1 */
SPI (SSP) Driver for LPC1800 Series
#define RTE_Drivers_SPI0 /* Driver SPI0 */ #define RTE_Drivers_SPI1 /* Driver SPI1 */
USART Driver for LPC1800 Series
#define RTE_Drivers_USART0 /* Driver USART0 */ #define RTE_Drivers_USART1 /* Driver USART1 */ #define RTE_Drivers_USART2 /* Driver USART2 */ #define RTE_Drivers_USART3 /* Driver USART3 */
SAI (I2S) Driver for LPC1800 Series
#define RTE_Drivers_SAI0 /* Driver SAI0 */ #define RTE_Drivers_SAI1 /* Driver SAI1 */
Keil Development Board MCB1800
Documents/mcb1800.chm
A/D Converter interface for Keil MCB1800 Development Board
LED interface for Keil MCB1800 Development Board
Buttons interface for Keil MCB1800 Development Board
Joystick interface for Keil MCB1800 Development Board
Graphic LCD interface for Keil MCB1800 Development Board
Touchscreen interface for STMPE811
Thermometer interface for LM75
EEPROM interface for 24LC128
Audio interface for UDA1380