356
1-day ARM Training Standard Microcontroller Paolo Bernasconi NXP Semiconductors, FAE

1-day-arm-20071088

Embed Size (px)

DESCRIPTION

arm training

Citation preview

Page 1: 1-day-arm-20071088

1-day ARM TrainingStandard Microcontroller

Paolo Bernasconi

NXP Semiconductors, FAE

Page 2: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Agenda9:30 LPC2000 Technical Training Part I

- Introduzione- LPC2000 devices and roadmaps dev tools. I nuovi dispositivi dellafamiglia LPC2300 e LPC2400. Novità per il 2007 ☺ Break

- Presentazione dell'Architettura ARM7 (mappa di memoria, systemcontrol, peripherals)

12:30☺ Pranzo13:30 LPC2000 Technical Training Part II

- Inizializzazione delle periferiche di sistemaPLL, Vector Interrupt Controller e USB

- presentazioni di esempi con tool Keil e scheda di valutazione Keil☺ Break

- Implementazone dell’architettura ARM7 nella famiglia LPC23/24- Q&A

17:30 Chiusura

Page 3: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Standard Microcontroller Cores

16-bit XA

1

10

100

64 KB 1 MB >16 MB2 KB

Thro

ughp

ut

Memory Size

C51 12-Clock

C51X2 6-Clock

8-bit

32/16-bit

6-Clock MX

16-bit

LPC900 2-Clock

ARM7TDMI-S

ARM926EJ

LPC2000

LPC3000

LPC700 6-Clock

Page 4: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

0.5μ 0.4μ 0.35μ 0.18μ 0.16μ 0.14μ 90n 65n

Mature product linelow-cost, 3-5V OTP

LPC900 Family 3V Flash

MOS34 / ASMC

5V Flash family Si Foundry

LPC2000 FamilyARM7S-TDMI

1.8V FlashMOS34 / SSMC

Planned Embedded

FlashCMOS90

Crolles2

Process Feature Size

ARM926EJCMOS90

Crolles2

ARM1156EJCMOS65

Crolles2

NXP Embedded Flash Process Roadmap

Page 5: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Standard Microcontroller Strategy Summary

Develop Innovative and Cost Effective Products

Focus on 16/32-bit market with wide range of ARM7 & ARM9 based products

Expand the successful LPC Family approach:- New peripherals like USB, Ethernet, .......

Use highly competitive flash based processes:- 0.35 μm and 0.18 μm Flash in production- Shrink path down to 0.14 μm- First products in 90nm in 2005

Introduction of innovative packages:- Chip scale packages like HVSON10, TFBGA256

Page 6: 1-day-arm-20071088

LPC2000 Family16/32-bit ARM7TDMI-S Products

Page 7: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM MicrocontrollersNXP has developed a family of ARM-based Microcontrollers

For

- Low-Cost High Volume Applications

With

- Embedded Flash and SRAM

- On-board AMBA-bus Peripherals (Adv. µC Bus Architecture)

- Real-Time Deterministic behavior (no Cache required)

-High performance NXP specific Flash Memory matrix

-and access design

- Full Debug, Real-time Monitoring and Trace facilities

To

- Continue on from our successful 8-bit 80C51 Family

- Enable new low-cost 16/32-bit Microcontroller-based applications

Page 8: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP Standard Microcontrollers

The Ultimate Products…..

LPC2000

LPC3000

13 mm

Page 9: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

History - NXP a leader in ARM

NXP relationship with ARM Ltd. spans a decade– One of the three founding partners of ARM

– Development with cores starting from ARM2 through ARM11

NXP offers the most experience– Over 250 ARM designs - more than anyone else in the industry

– In Top 3 for ARM shipments worldwide

– More than a dozen ARM cores in over 7 CMOS processes

NXP is a long-term ARM licensee– Extensive license relationship provides continuous access to all architectures

– Announcing off-the-shelf ARM microcontrollers with embedded Flash

Page 10: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM vs. other 32/16-bit Emb. Architectures

Source: SEMICO Research, Q4 2002Numbers excluding cell phone handsets

ARM Volume in Y2004: 190 MU

ARM : Leading solution for Industrial / Automotive, Communications and General Purpose

1998

1999

2000

2001

2002

2003

2004

2005

2006

2007

ARM68

KM

IPS

SH-7XXX

PowerP

CSPARC80

X86ST20

+

0

50

100

150

200

250

300

350

400

450M

units

Page 11: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Shipments of all ARM products

Million U

SD R

evenues of AR

M H

oldings PLC

ARM’s partners shipped 1,662 Mpcs in 2005 (+31%)

M U

nit S

hip m

ent o

f AR

M b

ase d

pro

duct

s

Page 12: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM7TDMI-S NXP Choice

The ARM7TDMI-S is based on an ARM7 core

T- Thumb architecture extension• ARM Instructions are all 32 bit• Thumb instructions are all 16 bit• Two execution states to select which instruction set to execute

D- Core has debug extensionsM- Core has enhanced multiplier I- Core has Embedded ICE MacrocellS- Fully synthesis able

Page 13: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIALTiming/features/packages of non released parts may change without prior notification

16/32-bit ARM7 LPC2000

144pinsUART(2), I2C SPI(2), RTC

ADC, CAN(2/4)

LPC2294256K/16KCAN (4)

LPC22900K/16KCAN (2)

LPC2292256K/16KCAN (2)

64pinsUART(2), I2CSPI(2), RTCADC, CAN

LPC2119128K/16KCAN (2)

LPC2129256K/16KCAN (2)

LPC2114128K/16K

ADC

LPC2124256K/16K

ADC

LPC2194256K/16KCAN (4)

144pinsUART(2), I2C SPI(2), RTC

ADC

LPC22100K/16K

ADC

LPC2212128K/16K

ADC

LPC2214256K/16K

ADC

LPC22200K/64K

ADC

64pinsUART(2), I2C SPI(2), USB,

LV RTCADC, DAC

LPC2146256K/32K+8K

USBADC(2), DAC

LPC2148512K/32K+8K

USBADC(2), DAC

LPC214264K/16K+8K

USBADC, DAC

LPC2144128K/16K+8K

USBADC(2), DAC

LPC214132K/8K+8K

USBADC

64pinsUART(2), I2C SPI, SPI/SSP,

LV RTCADC(1-2), DAC

LPC2138512K/32K

ADC(2), DAC

LPC213132K/8K

ADC

LPC213264K/16K

ADC, DAC

LPC2134128K/16K

ADC(2), DAC

LPC2136256K/32K

ADC(2), DAC

UART(2), I2CSPI(2), RTC

ADC1.8V and 3.3 V

UART(2), I2CSPI(2), RTCADC, CAN

Flash Security1.8V and 3.3 V

UART(2), I2C SPI/SSP, LV RTCADC(1-2), DAC

3V single p.supplyFlash Security

UART(2), I2C, USB SPI/SSP, LV RTCADC(1-2), DAC

3V p.supply Flash Security

UART(2), I2CSPI(2), RTCADC, CAN

Flash Security1.8V and 3.3 V+external bus

UART(2), I2C SPI(2), RTC

10b-ADCFlash Security1.8V and 3.3 V+ external bus

LPC28800M/64KUSB HS

180 pinsFlex. Suppl.

HS USB, Flex. Ext.

Mem.LCDcontr.Interf

.

LPC318064K RAM,

32+32K Cache

320 pinsADC, 2xI2C,

2xSPI, 7xUART,USB-

OTG.

LPC28881M/64KUSB HS

LPC21xx

CAN(2)

Released (28)

2007

48pinsUART(2),

I2C(2), SPI,SPI/SSP, RTC,

ADC

LPC2104128K/16K

LPC2105128K/32K

LPC2106128K/64K

LPC2101/2/38/16/32K/Flsh

2/4/8KRamADC,LV,RTC

/01

/01

/01

+ externalbus

16 bits codecUSB High

speed device

ARM7TDMI-S : LPC2000ARM926EJ : LPC3000

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01

/01LPC2458512K/98KEthernet,

USB, CAN

LPC2468512K/98KEthernet,

USB, CAN

LPC2364128K/34KEthernet,

USB, CAN

LPC2366256K/58KEthernet,

USB, CAN

LPC2368512K/58KEthernet,

USB, CAN,MMC

LPC2378512K/58KEthernet,

USB, CAN,MiniBus, MMC

UART(4)2x AHB + Ethernet +Single p supply

3.3VMinibus

+external bus+ USB

OTG/Host

Floatingpoint

coprocessorUSB Host full

speed

100 - 144 pinsUART(4), I2C(3) SPI(1), SSP(2),

LV RTC,ADC, DAC,

PWM(2), USB full

10/100 Ethernet,CAN(2), IRC

180 - 208 pinsUART(4), I2C(3) SPI(1), SSP(2),

LV RTC,ADC, DAC,

PWM(2), USB-OTG

10/100 Ethernet,CAN(2), IRC,External Bus

H2 ’06

LPC3190LCD intIIS,SPI

Ethernet

/01 H1 2007

Page 14: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Roadmap – 32-bit portfolio

LPC2364

LPC2468

Recently released

Roadmap

LPC22xx/01

LPC21xx/01

LPC2000LCD

Time

Func

tiona

lity

2007

LPC2366

LPC2378LPC2368

LPC210x/01

LPC2458

LPC3190

LPC2000LCDLPC2000

LCD

LPC3000LPC3000

LPC3000

LPC3000

Recently released

New releases

Feature and performance improvements

LPC24xx: ARM7• Ethernet (MII+RMII)• USB FS Device• USB Host/OTG• 2 x CAN• Ext. Memory (SDRAM, SRAM)• 96K SRAMLPC23xx: ARM7

• Ethernet (RMII)• USB FS Device• 2 x CAN

LPC31xx: ARM9• SPI• IIS interface• Ethernet MAC controller• LCD interface

Page 15: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

/00 Versions Status

Reset.1 bug fixed

LPC2104/00 and LPC2105/00 are Indus. Temp. range qualified

Parts Samples StatusLPC2104FBD48/00 Yes RFSLPC2105FBD48/00 Yes RFSLPC2106FBD48/00 Yes RFSLPC2106FHN48/00 Yes RFSLPC2114FBD64/00 Yes RFSLPC2124FBD64/00 Yes RFSLPC2119FBD64/00 Yes RFSLPC2129FBD64/00 Yes RFSLPC2194HBD64/00 Yes RFSLPC2212FBD144/00 Yes RFSLPC2214FBD144/00 Yes RFSLPC2292FBD144/00 Yes RFSLPC2292FET144/00 Yes RFSLPC2294HBD144/00 Yes RFS

Page 16: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

• All bugs corrected excepted core.1

• Some enhanced features:Fast I/O (3-4 times faster than

standard)Counter inputsDedicated result registers per ADC

inputUART improvementsProgram security (for the LPC210x)…

Parts Samples Status RFS dateLPC2104FBD48/01 No Dev H1/07LPC2105FBD48/01 No Dev H1/07LPC2106FBD48/01 No Dev H1/07LPC2106FHN48/01 No Dev H1/07LPC2114FBD64/01 No Dev H1/07LPC2124FBD64/01 No Dev H1/07LPC2119FBD64/01 No Dev H1/07LPC2129FBD64/01 No Dev H1/07LPC2131FBD64/01 Yes RFS NowLPC2132FBD64/01 Yes RFS NowLPC2132FHN64/01 Yes RFS NowLPC2134FBD64/01 Yes RFS NowLPC2136FBD64/01 Yes RFS NowLPC2138FBD64/01 Yes RFS NowLPC2138FHN64/01 No RFS NowLPC2194HBD64/01 No Dev H1/07LPC2210FBD144/01 Yes RFS NowLPC2290FBD144/01 Yes RFS NowLPC2212FBD144/01 No Dev H1/07LPC2214FBD144/01 No Dev H1/07LPC2292FET144/01 No Dev H1/07LPC2294HBD144/01 No Dev H1/07

/01 Versions Status

Page 17: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2104/5/6 Block Diagram

VLSI Peripheral Bus (VPB)

MemoryAccelerator

MemoryAccelerator

128 KBFLASH128 KBFLASH

SRAMController

SRAMController

16-64KBSRAM

16-64KBSRAM

Test/Debug

TCK

TMS

TDI

TDO

TraceTrace

TRST

Vectored Interrupt Controller

Vectored Interrupt Controller

AHB to VPB BridgeAHB to VPB BridgeWatchdogTimer

WatchdogTimer

Real TimeClock

Real TimeClock

Local Bus

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLLPLL

System Clock

I2C I2C

SCL

SDA

GPIOGPIO

GPI

O

SPI PortSPI Port

MO

SI

MIS

OSC

K

SSEL

UART0UART0

2 pi

ns

UART1UART1

8 pi

ns

Timer0Timer0

CA

P0.0

-2

MA

T0.0

-2

Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

ARM 7TDMI-SARM 7TDMI-S

RTC

K

AH

B B

ridge

AH

B B

ridge

Page 18: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2101/2/3 Blocks

Vectored Interrupt

Controller

Vectored Interrupt

Controller

AHB BusAHB BusARM Local BusARM Local Bus

VLSI Peripheral Bus (VPB)VLSI Peripheral Bus (VPB)

AHB to VPB Bridge

AHB to VPB Bridge

FastGPIOFastGPIO

Fast

GPI

OWatchdog

TimerWatchdog

TimerRTC Osc

Vbatt

RTCX1RTCX2

Real TimeClock

Real TimeClock

UART0UART0

2 pi

ns

UART1UART1

8 pi

ns

2 x I2C2 x I2C

SCL

SDA

ADC10-bitsADC

10-bits

8 In

puts

AVS

S

AVD

D

SRAMController

SRAMController

SRAMSRAM

Internal FlashController

Internal FlashController

FLASHFLASHBootloader,RealMonitor

SPISPI

SCK

MIS

OM

OSI

SSEL

SPI/SSPSPI/SSP

SCK

MIS

OM

OSI

SSEL

Timer032-bit

Timer032-bit

3 x

CA

P0

3 x

MA

T0

Timer132-bit

Timer132-bit

4 x

CA

P1

4 x

MA

T1

8/16/32Kb2/4/8Kb

TCK

TMS

TDI

TDO

TRST

EICE ETMETM

ARM 7TDMI-SARM 7TDMI-S

AH

B B

us

Loca

l Bus

GPIOGPIO

GPI

O

SystemFunctions

SystemFunctions

PLLPLL

RST

X1X2

Timer216-bit

Timer216-bit

3 x

CA

P2

3 x

MA

T2

Timer316-bit

Timer316-bit

4 x

MA

T3

Page 19: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2119, LPC2129,LPC2194 Package: LQFP64

Flash Controller / MAM

Flash Controller / MAM

128/256KB*FLASH

128/256KB*FLASH

SRAMController

SRAMController

16KBSRAM16KBSRAM

VLSI Peripheral Bus (VPB)

Vectored Interrupt

Controller

Vectored Interrupt

Controller

AHB to VPB Bridge

AHB to VPB BridgeWatchdog

TimerWatchdog

TimerReal Time

ClockReal Time

Clock

AHB Bus

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLLPLL

System Clock

I2C I2C

SCL

SDA

GPIOGPIO

GPI

O

SCK

SPI PortSPI Port

MO

SI

MIS

O

SSEL

UART0UART0

8 pi

ns

UART1UART1

8 pi

ns

Timer0Timer0

CA

P0.0

-3

MA

T0.0

-3Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

ARM Local Bus

AH

B B

ridge

AH

B B

ridge

10-bit ADC10-bit ADC

AIN

0 -3

CAN1CAN1

TD1

RD

1

CAN2CAN2

TD2

RD

2

E-ICE ETMETM

ARM 7TDMI-SARM 7TDMI-S

10 RT-TraceJTAG 6

LPC2129,94

LPC2119

256KB

128KB*Flash size:

Page 20: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2292, LPC2294

Flash Controller / MAM

Flash Controller / MAM

256KBFLASH256KBFLASH

SRAMController

SRAMController

16KBSRAM16KBSRAM

Vectored Interrupt Controller

Vectored Interrupt Controller

AHB

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLLPLL System Clock

ARM Local BusAHB

BridgeAHB

Bridge

E-ICE ETMETM

ARM7TDMI-SARM7TDMI-S

10 RT-TraceJTAG 6

External Memory Controller

External Memory Controller

CS3

:0B

LS3:

0O

EW

EA

23:0

D31

:0

AHB to VPB Bridge

AHB to VPB Bridge

...CAN1CAN1

TD1

RD

1

CANnCANn

TDn

RD

n

n: LPC2292 = 2LPC2294 = 4

VPB

WatchdogTimer

WatchdogTimer

Real TimeClock

Real TimeClock

I2CI2C

SCL

SDA

SPI0SPI0

4 pi

ns

SPI1SPI1

4 pi

ns

UART1UART1

8 pi

ns

UART0UART0

8 pi

ns

GPIOGPIO

GPI

O

Timer0Timer0

CA

P0.0

-3

MA

T0.0

-3

Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

10-bit ADC

10-bit ADC

AIN

0 -7

144-Pin Packages

Page 21: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VLSI Peripheral Bus (VPB)

MemoryAcceleratorMemory

Accelerator

0/128/256 KBFLASH

0/128/256 KBFLASH

SRAMController

SRAMController

16KB / 64KBSRAM

16KB / 64KBSRAM

Test/Debug

TCK

TMS

TDI

TDO

TraceTrace

TRST

Vectored Interrupt

Controller

Vectored Interrupt

Controller

AHB to VPB BridgeAHB to VPB BridgeWatchdog

TimerWatchdog

TimerReal Time

ClockReal Time

Clock

Local Bus

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLLPLL

System Clock

I2C I2C

SCL

SDA

GPIOGPIO

GPI

O

2xSPI/SSP2xSPI/SSP

MO

SI

MIS

OSC

K

SSEL

UART0UART0

2 pi

ns

UART1UART1

8 pi

ns

Timer0Timer0

CA

P0.0

-2

MA

T0.0

-2

Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

ARM 7TDMI-SARM 7TDMI-S

ADCADC

8 p

ins

0/2xCAN0/2xCAN

External Memory

Controller

External Memory

Controller

CS 3:0A 23:0BLS 3:0OE,WED 31:0

LPC2220 Flashless 72 MHz

Package: LQFP144

RTC

K

AHB

Page 22: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VLSI Peripheral Bus (VPB)

MemoryAccelerator

MemoryAccelerator

32…512 KBFLASH

32…512 KBFLASH

SRAMController

SRAMController

8…32KBSRAM

8…32KBSRAM

Test/Debug

TCK

TMS

TDI

TDO

TraceTrace

TRST

Vectored Interrupt Controller

Vectored Interrupt Controller

AHB to VPB BridgeAHB to VPB BridgeWatchdog

TimerWatchdog

TimerReal Time

ClockReal Time

Clock

and AHB

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLLPLL

System Clock

2x I2C 2x I2C

SCL

SDA

GPIOGPIO

GPI

O

SPI PortSPI Port

MO

SI

MIS

OSC

K

SSEL

UART0UART0

2 pi

ns

UART1UART1

8 pi

ns

Timer0Timer0

CA

P0.0

-2

MA

T0.0

-2

Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

ARM 7TDMI-SARM 7TDMI-S

ADC0/1ADC0/1

2x8

pins

LPC213x Block Diagram

BrownOutDetect

PowerOnReset

BrownOutDetect

PowerOnReset

SSP PortSSP Port

MO

SI

MIS

O

SSEL

SCK

DACDAC

1-10

-bit

32 kHz

Vbat

Package: LQFP64/HVQFN64NOTLPC2131

LPC2131, LPC2132 ONLY ONE

RTC

K

Local Bus

Page 23: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

60 MHz Operation (54MIPS)from both on-chip Flash and SRAM2 I2C, 2 UARTs, 1 SPI, 1 SPI/ SSPTwo 8-channel 10-bit ADCsOne 10-bit DAC 4 Timers (Capture/Match/PWM/WDT)

47 I/O pins (5V tolerant)

3.3V Single-Voltage Supply32KHz RTC, BOD, PORUser-code securityReal-time Debugging & TraceISP, IAP, Parallel Programmer SupportTiny Packages: QFP64 (10 x 10 x 1.4 mm), HVQFN64 (9 x 9 x 0.85 mm)

LPC213x Series Overview

* Available Q1 2005

Page 24: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single Supply Voltage• 3.3V Single-Voltage Supply• CPU operating voltage range of 3.0V to 3.6V (3.3V +/- 10%) with 5 Volt tolerant I/O

pads.

Brown Out Detection (BOD @ 2-stage monitoring of the voltage)• Stage 1: Vdd < 2.9V, the Brown-Out Detector (BOD) asserts an interrupt signal to the

VIC (Vectored Interrupt Controller).• Stage 2: Vdd < 2.6 V LPC213x will be reset to prevent alteration of the Flash as

operation of the various elements of the chip would otherwise become unreliable due to low voltage.

Power On Reset (POR)• The BOD circuit maintains this reset down below 1V, at which point the Power-On Reset

circuitry maintains the overall Reset.

LPC213x Series Overview

Page 25: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTC with additional crystal pins

LPC213x Series Overview

Page 26: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTC:

• Can be clocked by a separate 32.768KHz or by prescaler divider based on VPB clock

• So RTC can run in Power Down mode• Has got its own supply pin Vbat which can be connected to battery

or to the (2.0… 3.3… 3.6 V) supply. • Typical power consumption is 14-20uA (@25 degree, with Vbat 2.5

to 3.6V respectively) when the device is in Power Down Mode

LPC213x Series Overview

Page 27: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VLSI Peripheral Bus (VPB)

MemoryAccelerator

MemoryAccelerator

64-512 KBFLASH

64-512 KBFLASH

SRAMController

SRAMController

16-32KBSRAM

16-32KBSRAM

Test/Debug

TCK

TMS

TDI

TDO

ETMETM

TRST

VICVIC

AHB to VPB

Bridge

AHB to VPB

BridgeWatchdogTimer

WatchdogTimer

Real TimeClock

Real TimeClock

AMBA AHB Bus

System FunctionsSystem

Functions

X1 X2 RST

Vdd

Vss

PLL1PLL1System Clock

I2C 0/1 I2C 0/1

SCL

SDA

Fast I/OFast I/O

GPI

O46

max

SPI PortSPI Port

MO

SI

MIS

OSC

K

SSEL

Timer0/1Timer0/1

CA

P x

8

MA

T x

8

PWMPWM

PWM

1 -6

ARM 7TDMI-SARM 7TDMI-S

ADC 0/1ADC 0/16+

8 pi

ns

LPC2142/44/46/48 Block Diagram

BrownOutDetect

PowerOnReset

BrownOutDetect

PowerOnReset

SSP PortSSP Port

MO

SI

MIS

O

SSEL

SCK

DACDAC

1-10

-bit

32 kHz

Vbat

64-pin LQFPHas 1.8V Regulator. Only 3V input needed

USB 2.0 Full Speed Device

w/ DMA

USB 2.0 Full Speed Device

w/ DMA

PLL2PLL2USB Clock

8 KB SRAMshared w/ DMA (LPC2148 only)

8 KB SRAMshared w/ DMA (LPC2148 only)

D+D-

Up_LED ORConnectVbus

UART0/1UART0/1

Tx/R

X 0,

1

Mod

em

pins

(6)

Local Bus

Page 28: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC214x Series Overview60 MHz Operation from both on-chip Flash and SRAM2 I2C, 2 UARTs, 1 SPI, 1 SPI/ SSPUp to 14-channels 10-bit ADCsOne 10-bit DAC4 Timers (Capture/Match/PWM/WDT)

45 I/O pins (5V tolerant)– 3.5 times faster than older I/O!

3.3V Single-Voltage Supply32KHz RTC with Vbat inputBrown Out Detect, Power On ResetUser-code securityReal-time Debugging & TraceISP, IAP, Parallel Programmer SupportTiny Packages: LQFP64 (10 x 10 x 1.4 mm),HVQFN64 (9 x 9 x 0.85 mm)

2 x 16C550 (one with auto CTS/RTS plus

fractional baud rate divisor)

2 x 16C550UARTs

1 x 8-chan

1 x 6-chan

1 x 6-chan10-bit ADC

32 KB + 8 KB shared

16 KBInternal SRAM

512 KB64 KBInternal Flash

LPC2148LPC2142Spec

Page 29: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC214x - USB Features

USB 2.0 Full Speed Device

Supports 32 physical (16 logical ) endpoints– Supports Control, Interrupt, Bulk and Isochronous endpoints

2kB of endpoint RAM for communication only (not general purpose)

8kB block of general purpose SRAM usable by USB DMA (LPC2148 only)

USB controller has dedicated PLL (functionally same as other PLL)

USB registers are accessed via the VPB bus, but the 8kB block isaccessible via the AHB bus

Customer can choose between the UP_LED (Good LinkTM) OR the CONNECT (Soft ConnectTM) functionality

Page 30: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Extending the success to LPC214xLPC213x Features:• Fast Embedded Flash: Up to 512K Bytes of nearly 60 MHz zero waitstate execution from 128-bitx2 wide Flash with Memory Acceleration

• Single-voltage supply: on-chip DC-DC converter takes a single 3.3V supply with POR and BOD capabilities

• Many standard peripherals: Real-time-clock with power domain, SPI, I2C, UARTS,Timers

LPC214x Adds:• USB 2.0 Full-speed 12 Mbits/sec with full USB standard compliance and DMA

• Fast I/O Capability; speeds up Software controlled I/O by 3.5X, up to 15Mhz port-pin toggling frequency

• 2 10-bit ADCs and a 10-bit DAC with individual result registers

• Enhanced UART with hardware handshake plus fractional baud rate divider. ->crystal frequency can be set to a independent value of to the baud rate generator clock

Page 31: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

2 10-bit Analog-to-Digital Converters with:• 400 Kbits/Sec Sampling frequency with 8 Channels

• Each Channel has its own Result Register thus reducing CPU Interrupt Overhead by a factor of 8

• ADCs can Operate in Burst Mode with autonomous signal acquisition

• ADCs can be synchronized (e.g. for simultaneous current & voltage measurement) and triggered by an input pin or Timer match

Select Multiple ChannelsADCR (7:0)

n-bit ADC(n Clocks/Conv)

ADC Inputs

1 - 8Input Scan

(SEL Bits)

ADC Clock(CLKS Bits)

ADDR0 ADDR1 ADDR7

Select Multiple ChannelsADCR (7:0)

n-bit ADC(n Clocks/Conv)

ADC Inputs

1 - 8Input Scan

(SEL Bits)

ADC Clock(CLKS Bits)

ADDR0 ADDR1 ADDR7…

Page 32: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP USB versus CompetitionUSB Standard Philips Atmel SAM7S64 ST STR71X

Bi-directional* Endpoints supported 16 max/device 16 4 8

Modes Supported Control, Interrupt,Bulk, Isochronous

Control, Interrupt,Bulk, Isochronous

Control, Interrupt,Bulk, Isochronous

Control, Interrupt,Bulk, Isochronous

Max. Control Buffer size. 64 bytes 64 bytes 64 bytes 64 bytes

Max. Interrupt Buffer Size 64 bytes 64 bytes 64 bytes 64 bytes

Max. Bulk Buffer Size 64 bytes 64 bytes 64 bytes 64 bytes

Max. Isoch. Buffer Size 1023 bytes 1023 bytes 64 bytes 512 bytes

DMA Capability Yes No No

* Separate input/output

Page 33: 1-day-arm-20071088

LPC2880/8 Family forMP3 player and audio management best fit

Page 34: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2880/88 Blocks 180 pins

(1) LPC2888 only

Txd,

Rxd

RTS

, CTS

Internal FlashController

Internal FlashController

FLASHFLASH

VLSI Peripheral Bus (VPBVLSI Peripheral Bus (VPB))

Vectored Interrupt

Controller

Vectored Interrupt

Controller

AHB to APB Bridges 0, 1, 2, 3

AHB to APB Bridges 0, 1, 2, 3

WatchdogTimer

WatchdogTimer

Real TimeClock

Real TimeClock

AHB BusAHB BusARM Local BusARM Local Bus

TCK

TMS

TDI

TDO

TRST

E-ICE

ARM 7TDMI-SARM 7TDMI-S

AH

B B

us

Loca

l Bus

External Static MemoryController

(SDRAM/Flash/SRAM)SRAM

ControllerSRAM

Controller

SRAMSRAM64k 1MB (1)

SPISPI

SCK

MIS

O

MO

SISS

ELUARTWithIrDA

UARTWithIrDA

SD/MMCcard

SD/MMCcard

MD

[3:0

]

Timer0Timer0

CA

P0.0

-3

MA

T0.0

-3

Timer1Timer1

CA

P1.0

-3

MA

T1.0

-3

PWMPWM

PWM

1 -6

LCDLCD

LCD

Bus

GPIO85x

GPIO85x

GPI

O

I2CI2C

SCL

SDA

ADC10-bitsADC

10-bits

4 In

puts

2x

System FunctionsBO,POR

System FunctionsBO,POR

PLL-USB

PLL-USB

RST

X1X2

PLL-sys

8KB Cache8KB Cache HS USBWithDMA

HS USBWithDMA

RTC Osc

RTCX1RTCX2

MC

LK

I²SIn/Out

I²SIn/Out

DA

TI

DA

TO, B

CK

O,

DC

LKO

,WSO

BC

KI,

WSI

GP DMAControllerGP DMA

Controller

SEL

ROMController

ROMController

BootROMBootROM

16bitCODEC16bit

CODEC

Ster

eo a

udio

inSt

ereo

aud

io o

ut

Page 35: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2800 FamilyAdvanced and Flexible Memory Capability:

On-chip: 1Mbyte of Flash, 64KB of RAM, and 32KB of ROMExternal Memory Controller for SDRAM, NOR and NAND Flash, and SRAM8KBytes of Cache for enhanced performance from external memory

LPC2800 Peripherals:480 Mbits/sec High-Speed USB device with on-chip PHYMulti-Media Card, I2S, and LCD controller interfacesGeneral Purpose DMAATA interface

LPC2800 Power Supply sub-systems:On-chip High-efficiency Switching regulator and Linear Regulators allow:

Operation from single AA(A) Battery cell (0.9 to 1.6V)Operation from 5V USB input

Page 36: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2800 Key Features (1)On-chip 1Mbyte of flash on LPC2888 (0Kbyte on LPC2880), 64Kbyte RAM, 8 Kbytes cacheBoot ROM allow execution of Flash Code, external code, or flash programming via USBExternal Memory Controller for SDRAM, NOR and NAND flash and SRAM. 8Kbyte of cache for enhanced performance from external memory. 480 Mbits/sec High-Speed USB with on-chip PHYLCD Interface glue logic8 channels General Purpose DMA, (can be connected to the LCD interface too)SD/MMC Card Interface10Bit A/D converter + 16 Bit A/D and DA converters with amplification and gain controlUART with fractional baud rate generator, IrDA IIC and IIS interfaces

Page 37: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

… LPC2800 Key Features (2)

Innovative Event Router allows interrupt, power-up- and clock start capabilities from up to 107 sources. Each signal can act as an interrupt source, or a clock enable or reset source for the LPC2880/88 modules

Advanced clock generation: CPU clock can be obtain from the RCT 32Khz clock now

Integrated DC/DC converter can generate all required voltages from a single battery or from USB power

Page 38: 1-day-arm-20071088

LPC2300/24000 Families32-bit ARM7 Products

Page 39: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

InternalSRAM

Controller

64 KBSRAM

InternalFlash

Controller

512 KBFlash

ARM7TDMI-S

Emul

atio

n Tr

ace

Mod

ule

Test/Debug Interface

ARM7 Local Bus

AHBBridge

AHBBridgeAHB2 AHB1

EthernetMAC with

DMA

16 KBSRAM

GP DMAController

VectoredInterrupt

Controller

16 KBSRAM

USB with4KB RAM

& DMA

ExternalMemory

Controller

AHB toAPB Bridge

APBDivider

TRS

T

TDO

TMS

TCK

TDI

MIIor

RMII

RS

T

Xtal

1

Xtal

2

SystemFunctions

Internal RCOscillator

PLL

SystemClock

APB

AHB toAHB Bridge

MasterPort

SlavePort

A[23:0],D[31:0],

etc.

D+, D-,etc.

Trac

eS

igna

ls

Block Diagram LPC23xx/24xx (1/2)

Page 40: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

APB

Real Time Clock

Vbat

Watchdog Timer

System Control

D/A ConverterAout

A/D ConverterAin7:0

General Purpose I/OP0,1,...

2 x 4 x MATPWM0, 12 x 4 x CAP

2 x 6 x PWM

Capture / CompareTimers 0, 1, 2, 34 x 4 x MAT

4 x 4 x CAP

External InterruptsEINT3:0

RTCOscillator

X1 X2

* : Peripherals supported by the GP DMA Controller

*SD/MMC CardInterface MCICMD, MCIDAT3:0

MCICLK, MCIPWR

FS/SSEL1

MOSI1MISO1

SCK1

*SSP1 Interface

FS/SSEL0

MOSI0MISO0

SCK0

SPI, *SSP0 Interface(no DMA on SPI)

RXSDA,TXSDA

RXCLK, TXCLKRXWS,TXWS

TxD1

UART0, 2, 3 RxD0,2,3TxD0,2,3

I2C Interfaces 0, 1, 2 SDA0, 1, 2SCL0, 1, 2

CAN Channels 1, 2 TX2, 1RX2, 1

DSR, CTS, DCD, RI

RxD1DTR, RTSUART1

2 KB Battery RAMPower Domain 2

*I2S Interface

Alarm

Block Diagram LPC23xx/24xx (2/2)

Page 41: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Features: Core72 MHz ARM7TDMIAdvanced Vectored Interrupt Controller (32 vectors, 16 priorities)Single 3.3V power supply (3.0V to 3.6V).

– On-chip DC/DC converter for internal 1.8V

4 reduced power modes, Idle, Sleep, Power Down, and Deep Power Down.– Processor wakeup from Power Down mode via any interrupt able to operate during

Power Down mode (includes external & GPIO interrupts, RTC, Ethernet wakeup).

On-chip Power On Reset, and Brownout detect with separate thresholds for interrupt and forced reset.On-chip crystal oscillator with an operating range of 1 MHz to 24 MHz.4 MHz internal RC oscillator that is the default system clock.On-chip PLL allows CPU operation up to the maximum CPU rate without the need for a high frequency crystal. May be run from the main oscillator, the internal RC oscillator, or the RTC oscillator.

Page 42: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 42

System Architecture Issues

Challenges to preventing bottlenecks:

• Ethernet requires support of 2 concurrent 100Mbits/sec data streams with up to 1500 byte packets

• USB & Ethernet Streams are asynchronous and must both be supported including Isochronous mode USB (1024 byte data bursts)

• CAN, SPI, SSP, I2C, SDIO, I2S, UARTs, Timers, PWMs, ADC, DAC, etc, must also be supported but these are all lower bandwidth with smaller packet sizes than Ethernet & USB (increases MCU core involvement)

• CPU, Ethernet, and USB clock domains (72, 25/50, and 48 MHz) are all separate and need to communicate through memory

• Multi-ported memory is expensive, complex, and not desirable

Page 43: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 43

The Goals of the LPC2300 Family

Preventing overflow, underflow, and contention:

• Manage multiple Asynchronous high-speed channels with no channel performance bottlenecks

• Provide Ethernet, USB, CAN, UART, SPI, I2S, and I2C channels• Offer a one chip system for high performance and low power at a low cost• Include industry-leading Embedded Flash operating at SRAM speeds combined

with ECC (error correction) for the best performance and power, security and reliability

• Develop a large derivative family in different packages and with different capabilities and memory configurations at different price points, but allowing for easy transitions between family members (preserve code re-use)

Page 44: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 44

Building the LPC2300 – CPU & Memory

ARM7TDMI-S Processor – 72 MHz

Up to 512 KB Flash on-chip Flash– zero wait-state (execute code from Flash or SRAM)– 128-bit wide bus with patented Memory Accelerator Module (MAM)– 8-bits Error Correction Code (ECC) for every 128-bit word– Automotive qualified Flash process for high reliability

Up to 58 KB on-chip Static RAM (all portions accessible by CPU and DMA)

– 8 KB – 32 KB SRAM exclusively for CPU– 16 KB for Ethernet buffering– 8 KB for USB device (code or data)– 2 KB for RTC is for data only– Additional 4 KB USB FIFO buffer

Advanced Vectored Interrupt Controller (VIC) – 32 IRQ sources

Emulation Trace Module supports real-time trace

Low power - 4 reduced power modes including Deep Power Down

Start with the best embedded Flash in the market

Page 45: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 45

Bus Bandwidth required for Industrial network

Ethernet Connection toBackbone and Remote Networks Local CAN Device Cluster

USB and SDIO for storage and peripherals

Sensors, Actuators, Drives, Switches etc.

Microwith

Embedded Flash

SDRAM/SRAM/NOR interface

843CAN (2)

968ADC

884UARTS(2)

812I2C(2)

794SSP

7420Ext, DRAM

544USB

5050Ethernet

Cumulative AHB Bandwidth

AHB Bus bandwidth %

Peripheral

• More than 60% usage of bus bandwidth causes collisions• Loaded system bandwidth at 72Mhz is 96% for applicationConclusion:

1 AHB Bus is not sufficientMultiple Busses and concurrent DMA processing is required

Bus bandwidth usage at 72 MHz

Page 46: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 46

InternalSRAM

Controller

64 KBSRAM

InternalFlash

Controller

512 KBFlash

ARM7TDMI-S

Em

ulat

ion

Trac

eM

odul

e

Test/Debug Interface

ARM7 Local BusVectoredInterrupt

Controller

16 KBSRAM

TRS

T

TDO

TMS

TCK

TDI

Trac

eSi

gnal

s

AHBBridge

AHBBridgeAHB2 AHB1

16 KBSRAM

AHB toAPB Bridge

APBDivider

AHB toAHB Bridge

MasterPort

SlavePort

Building the LPC2300 – Dual AHB BusTwo separate but not isolated AHBs

– Any bus can still reach any other bus through bridges when needed

High-bandwidth peripherals on different AHBs will not overwhelm the CPU or other peripherals

No communications “traffic jams”!!

Page 47: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 47

InternalSRAM

Controller

32 KBSRAM

InternalFlash

Controller

512 KBFlash

ARM7TDMI-S

Em

ulat

i on

Trac

eM

odul

e

Test/Debug Interface

ARM7 Local Bus

AHBBridge

AHBBridgeAHB2 AHB1

EthernetMAC with

DMA

16 KBSRAM

GP DMAController

VectoredInterrupt

Controller

8 KBSRAM

USB with4KB RAM

& DMAAHB to

APB BridgeAPB

Divider

TRS

T

TD

O

TM

S

TCK

TDI

RMII

RS

T

Xta

l 1

Xta

l 2

SystemFunctions

Internal RCOscillator

PLL

SystemClock

APB

AHB toAHB Bridge

MasterPort

SlavePort

D+, D-,etc.

Trac

eS

i gn a

l s

The LPC2300 Advantage - parallel busesConcurrent operations become possible:• Ethernet packet reception and transfer to SRAM• CPU Instruction Fetch • USB packet reception and transfer to SRAM

Dedicating AHB Bus to Ethernet is required to guarantee 100 Mbits/sec Ethernet throughput without contention with other peripherals

Ethernet

USB

Page 48: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Features: I/O Peripherals

160 GPIO pins, all implemented as fast GPIOs, with 64 GPIO interrupts (plus 4 other external interrupts).

10 bit A/D Converter with input multiplexing among 8 pins.

10 bit D/A converter.

Four general purpose Timers with capture inputs, compare outputs, and external count inputs.

Two linkable PWM / Timer blocks with support for 3 phase motor control with "dead time". Each PWM has an external count input.

Real Time Clock with separate power pin, alarm output, and 2K SRAM.

Watchdog Timer. The watchdog timer can be clocked from the internal RC oscillator, the RTC oscillator, or the APB clock.

Page 49: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Features: Serial Interfaces

Ethernet MAC with associated DMA controller. These functions reside on an independent AHB bus.USB Device, Host (OHCI compliant), and OTG block with on-chip Host/Device PHY and associated DMA controller.Four UARTs with fractional baud rate generation, one with modem control I/O, one with IrDA support, all with FIFO.CAN controller with two channels.SPI controller.Two SSP controllers, with FIFO and multi-protocol capabilities. One is an alternate for the SPI port, sharing its interrupt and pins.Three I2C Interfaces. The second and third I2C interfaces are expansion I2Cs with standard port pins rather than special open drain I2C pins.I2S (Inter-IC Sound) interface for digital audio input or output.

Page 50: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power Options

Power options:– On-chip DC-DC converter supplies 1.8V power to all internal logic, except

in the RTC power domain.– 1.8V power can be supplied from off-chip for some pinouts.

Power reduction modes:– Idle mode.– Power Down mode.– Sleep mode.– Deep Power Down mode.

Power reduction modes are entered via an encoding of the IDL and PD bits in PCON, plus an additional new power control bit.

Page 51: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Idle Mode

CPU is halted, reducing power used by:– The CPU itself.– Memories and their controllers used by the CPU.– Internal buses used by the CPU.

Peripheral clocks and functions continue to run.

All registers and memories retain their state.

Wakeup from any enabled interrupt, or Reset.

Page 52: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Sleep Mode

All clocks are stopped to the CPU and peripherals. If enabled, the main oscillator and PLL are shut down.

– All dynamic operation of the device is suspended.– The DC-DC converter remains operational.– The Flash memory remains on, allowing for fast wakeup.

All registers and memories retain their state.

Wakeup from any enabled interrupt that can occur without clocks, or Reset.

Page 53: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power Down Mode

All clocks are stopped to the CPU and peripherals. If enabled, the main oscillator and PLL are shut down.

– All dynamic operation of the device is suspended.– The DC-DC converter remains operational.– The Flash memory is turned off.

All registers and memories retain their state.

Wakeup from any enabled wakeup source that can occur without clocks, or Reset.

Page 54: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Deep Power Down Mode

Similar to Power Down mode, but the DC-DC converter is turned off.– This is only useful if 1.8V power is supplied externally.– Device state is lost (but, see RTC and Battery RAM).

Wakeup can only be accomplished by a chip reset or an Alarm interrupt from the RTC.

During Deep PD mode, power may be removed from the entire device, except for the RTC.

– Restoring power causes a POR.

Wakeup requires that external circuitry restores power.– The alarm output of the RTC can signal external circuitry when power

should be restored, or some external means may be used.

Page 55: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Wakeup from Power Down or Sleep Mode

External interrupts – (EINT0 through EINT3) and GPIO interrupts

Ethernet wakeup – (portions of the Ethernet block receive clocks from the external PHY)

USB or CAN activity (pin state change)

Brown Out Detect

RTC Alarm

Page 56: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Wakeup from Power Down or Sleep Mode

External interrupts – (EINT0 through EINT3) and GPIO interrupts

Ethernet wakeup – (portions of the Ethernet block receive clocks from the external PHY)

USB or CAN activity (pin state change)

Brown Out Detect

RTC Alarm

Page 57: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTC & Battery RAM

APB

Real Time Clock

Vbat

RTCOscillator

X1 X2

2 KB Battery RAM

RTC Power Domain

Alarm

Page 58: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 58

NicheLite for LPC by InternicheNicheLite for LPC is a fully featured TCP/IP stack

– Requires as little as 12 KB of code.

Support for the following protocols:• Address Resolution Protocol (ARP), Internet Protocol (IP), Internet Control Message Protocol

(ICMP), User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Dynamic Host Configuration Protocol (DHCP) Client, Domain Name System (DNS) Client, Bootstrap Protocol (BOOTP), Trivial File Transfer Protocol (TFTP)

Includes NicheTask ™ a cooperative multi-tasking scheduler.

Supports InterNiche's Light Weight API and a Zero-Copy option.

Single Ethernet interface with device drivers optimized for the LPC2300 and LPC2400

Example applications (TFTP Client, TFTP Server, HTTP Listener)

Source code is free to NXP customers

License - Unlimited use with NXP LPC2000 and LPC3000 microcontrollers only

Support from Interniche at [email protected]

Page 59: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 59

LPC24xx

LPC24xx features beyond those offered in the LPC23xx.

· More RAM

· Ethernet MII interface (in addition to RMII)

· USB Host and OTG functionality

· External Memory Interface with additional External Memory Controller circuitry

· Additional GPIO

· Additional PWM

Page 60: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Announcement on the web

Datasheets by email ([email protected])

2 Devices:– LPC2458: 512KB flash, 98KB SRAM, Ext bus

(16-bit), TFBGA180– LPC2468: 512KB flash, 98KB SRAM, Ext bus

(32-bit), LQFP208 & TFBGA208

Will be available in Q1 2007

LPC24xx Leaflet

LPC24xx

Page 61: 1-day-arm-20071088

LPC3000 Family32-bit ARM9 Products

Page 62: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP Standard Microcontroller

The Next Generation …..

LPC3000

Page 63: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Block Diagram LPC3180

90nm Process208 MHz Core freq.1.2V core operation3.3V I/O32KB I- & D- caches64KB TCM SRAM(Tightly-Coupled Memory)

Up to 1MB SRAM(On-Chip Memory)

Standard E-ICE JTAG Interface6KB ETB(Embedded Trace Buffer)

256-pin TFBGA package

External Memory

Interfaces

MemStick

NAND Flash

Communication Peripherals

UART6 IrDA

USB OTG

GPIO

I2C A

I2C B

UART 1-5,7

PWM

System Functions

Power control

PLLs

SysCtrl

SPI

CPU subsystem

ARM926EJ

Instr Data

I-Cache 32kB

D-Cache 32kB

DRAMcontrol

ETB VFP9

Interrupt Controller

DMA Controller

SD Card

ETM9On-Chip Memory

ROM

64 KB SRAM

Other Peripherals

RTC

A/D

Keyscan

Watchdog

Timers

Bus matrix (Multi-layer AHB)

Page 64: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Technology AnnouncementFirst ARM9 family-based microcontrollers in 90nm technology

Press release done on Feb 23th during the Embedded World Show Nuremberg: LPC3000 Family based on 90nm technology industry’s first 90nm ARM9* family-based 32-bit microcontroller family.Based on NXP Nexperia platform using the ARM926EJ-S* core

Features:Several power management benefits Peripherals such as integrated USB On-the-Go (OTG) and full USB Open Host Controller Interface (OHCI) hostMulti-level NAND Flash interfaceOperating speed at 200MHzStandard communication peripherals like up to 7 UARTs, SPI, I2C, USB, real-time clock, Ethernet - to follow. Floating point Vector Coprocessor100mW power consumption @200Mhz with all peripherals switched on

Page 65: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nohau’s LPC3000 Evaluation Board

► A Single power supply input (5.0V), regulated on board to provide all the necessary EVB voltages. ►User Reset pushbutton switch. ►20 Way JTAG/ETB connector. ►32M (8M x 32) Bytes of SDRAM. ►32M (32M x 8) Bytes of NAND FLASH. ►1 - LCD Module with Philips PCF8558 built in. ►1 - SD Card connector. ►3 - USB connectors (USB A Receptacle Connector for USB Host; USB B Receptacle Connector for USB Device; USB Mini AB Receptacle Connector for USB OTG) with Philips ISP1301. ►3 - UART (RS232) physical interface circuits connected to standard PC style DB9 female connectors. ►4 - User input pushbutton switches. ►2 - User output LEDs. http://www.nohau.com/emularm/lpc3000_board.html

Page 66: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

phyCORE®-ARM9/LPC3180ARM9 with Vector Floating Point Unit

Technical FeaturesCarrier Board in EURO-card dimensions (100 x 160 mm) RS-232: 2x female DB-9 connectors support UART5 and UART2 USB (Host/Device/OTG) connectors: Standard A type connector for USB host functionality, Standard B type connector for USB device functionalityminiAB type connector for OTG functionalityJTAG – 2.54mm pitch, 16-pin connector for JTAG debugging interface SD Card slot Reset push button, Boot jumper ,2x user buttons4x user LEDs with jumpers to separate from I/O linesBattery receptacle for LPC3180 Real-Time Clock and SRAM back-upKeyboard – 2x8 2.54mm pitch connector for keyboard interface 1x potentiometer connected to one A/D input 5V. low-voltage socket for power supply connectivity3V. and 5V. low voltage supplies for external devices and subassembliesExpansion Bus: address, data, interface and all applicable I/O signals route from implemented phyCOREmodule to 2x80-pin Molex connectors, enabling connectivity to Add-On hardware

Memory configuration: – SDRAM: 16 to 64 MB synchronous SDRAM, max. access time of 10ns, 32-bit organization– Flash: 16 to 128 MB NAND-Flash in 8-bit mode – Serial: 1 to 32 KB I²C-EEPROM

PART #: PCM-031– Configuration:

208 MHz, 32 MB SDRAM,32 MB Flash, 32 KB EEPROM, USB OTG, JTAG interface– $249.00 Module only– $349.00 basic package : Module + Carrier Board

http://www.phytec.com/products/rdk/ARM-XScale/phyCORE-ARM9LPC3180-Kits.html

Carrier Board

PART #: KPCM-976

Single Board Computer ModulePART #: PCM-031

Page 67: 1-day-arm-20071088

Tools and support 16/32-bit ARM7TDMI-S Products

Page 68: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Development Tool Support

EmbeddedICE-RT™ (JTAG)

Embedded Trace Macrocell (ETM)

Real Time Monitor with Debug Interrupt

ARM7-Swith RTM

10Trace PortAnalyser

Trace PortAnalyser

DebuggerTrace Tools

E-IC

E(J

TAG

)

JTAG Interface

JTAG Interface

6

Emulation & Real Time Trace

ETM: EmbeddedTrace Macrocell

Page 69: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Esacademy Flash Magic

Free Flashmagic Utility from Esacademy

Features:

– Program/Erase Flash– Verify– Blank check– Check ID– Fill Buffer– Save HEX file

– Fo more info:http://www.esacademy.com/

Page 70: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Development tools - LPC2100/LPC2200

IAR/NXP board for LPC210x2x 9-pin D-type Serial communications ports

LED’s can be connected to selected port-pins

3 switches for interrupts, Reset switch

Breakout ports for Logic Analyzer connection

Price projection $149 with 32k compiler

Keil/NXP board for devices with ADC and optional CAN (LPC2129)

2x 9-pin D-type Serial for serial co. ports2x 9-pin D-type Serial for CAN8 status LED’s Switches for interrupt and ResetPotentiometer for ADC demosPrice projection $149 with 16k compiler

(no time limit)

Page 71: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ashling ASK-2000 for LPC210x, LPC211x, LPC212x, LPC22xx•LPC2104, LPC2105, LPC2106, LPC2114, LPC2119, LPC2124, LPC2129, LPC2210, LPC2212, LPC2214, LPC2290, LPC2292 andLPC2294, LPC213x•Jtag connector available•Price: $295 with LPC2106•Add $90 for LPC2129 or LPC2294•Adapter available for the other21xx and 22xx derivatives •Emulator integrated in the same board !http://www.ashling.com/support/lpc2000/eval_kits.html

Page 72: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Keil MCB2130 Evaluation Board LPC2138

2x 9-pin D-type Serial for serial communications ports

8 status LED’s

Speaker on DAC output

Buttons for interrupts and Reset

Potentiometer for ADC demos

Plated-through-hole prototyping matrix

Price: $149 with 16K compiler (no time limit)

Page 73: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IAR KS2103 Evaluation Board

•LPC2103 Development board

•LPC2103 MCU• Two serial ports• Reset button• In-system programming (ISP) button• Three user-defined buttons• 16 fully configurable LEDs• 16 character x 2 row LCD screen• Power-on LED• Can be powered via IAR J-Link-KS or external 9-12V DC power supply (not included)• Lithium back-up battery holder• 20-pin JTAG interface connector• Breakout headers for all pins (suitable for mounting daughter boards)• 20x20 array of plated holes for prototyping

Page 74: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Keil MCB214x Evaluation Board

LPC2148 microcontroller2x 9-pin D-type Serial for serial communications ports, power amplifier and on board loudspeaker8 status LED’sSpeaker on DAC outputPotentiometer for ADC demosSD Card InterfaceSoftware support for USBUSB Soft Connect feature NOT supported

Price $149.00

Page 75: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IAR KS214x Evaluation Board

LCD interface

RS232 ports for UART’s

Push buttons for external interrupts

USB Soft Connect feature supported

SD card interface for USB

Price $149.00

Page 76: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PHYTEC phyCORE®ARM7/LPC229x

phyCORE-ARM7/LPC229xPCM-023-SK-229410/60 MHz, 1 MB SRAM, 2 MB Flash,2 KB EEPROM, SMSC LAN91C111 10/100 Mbit/sEthernet,JTAG interface

$199.00

http://www.phytec.com/sbc/32bit/pclpc229x.htm

Page 77: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

MCB23xx Keil for LPC2300 familyEvaluation boards from Keil:

– MCB2360 (LPC2364/66/68)– MCB2370 (LPC2378)

SchematicCode sample on the webPrice: 199$Two serial interfaces, a speaker, analog input (via potentiometer), two CAN interfaces, LCD, SD card interfaceUSB, Ethernet, and eight LEDs make this board a great starting point for your next ARM project.

Page 78: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IAR Kick Start Development Kit for LPC2378IAR Kick Start Development Kit for LPC2378Contains:• LPC2378 development board

• IAR J-LINK-KS JTAG debugger with USB connector

• IAR Embedded Workbench with a 32KB version of the IAR C/C++ Compiler

• IAR PowerPac: 3 tasks (RTOS) and 1 file (Flash File System) evaluation version

• 20-state version of visualSTATE

Available at the end of February

Page 79: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nohau’s LPC2800 evaluation board

► SD card Connector

► USB connector

► LCD Module

► 16MB SDRAM, 8MB Flash

► Headphone jack

► Price on Nohau’s web site: 995$

http://www.nohau.com/emularm/lpc2800.html

Page 80: 1-day-arm-20071088

ARM Emulators

Page 81: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

JTAG emulators

Page 82: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Emulator with Trace

http://www.ashling.com/datasheets/armtools.html

Jlink + Trace

Page 83: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pathfinder debugger for the LP2100

ARM RealView debugger

Seehau debugger ARM

http://www.ashling.com/datasheets/armtools.html

http://www.arm.com/devtools/ads?OpenDocument&View=defaultBody2.

http://www.nohau.com/downloads.html

C-SPY debugger ARM

Debuggers

Page 84: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Chameleon Debuggerhttp://signum.com/Signum.htm?p=ARM.htm

Keil debugger &

simulator µVision3http://www.keil.com/arm

Universal Debug

Engine (UDE)

MULTI Debugger

Debuggers

Page 85: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Integrated Development Environment

RealView AsIDE EWARM

Multi 2000 µVision3 CrossWorks

Page 86: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM Compiler http://www.arm.com/devtools/soft_dev_tools?OpenDocument.

GHS Compiler http://www.ghs.com/products/arm_development.html

IAR Compiler http://www.iar.com/Products/?name=EWARM

GNU GCC

Compilers

Page 87: 1-day-arm-20071088

ARM RTOS

Page 88: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTOS Listing and Ported to …

http://www.freertos.org/FreeRTOS

IAR,Nohau,Keil (appnotesavailable online)

µCOS-II

KeilKeil ARTX

ARM,KeilCMX

Nucleus Tools, Keil board

Nucleus

Page 89: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTOS Listing

See www.uclinux.orgµClinux

KeilPumpkin Salvo

IAR,ARMThreadX

NicheTask

AshlingeCos

Page 90: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTOS Support

ChronOS™from InterNiche

Nucleus from Accelerated Technology

a Mentor company

Page 91: 1-day-arm-20071088

ARM Doc and software examples

Page 92: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Free link and tools:Free GNU C compiler for ARM7 + related manuals

– http://www.gnuarm.com/

Free LPC210x software for flash programming at:– http://www.lpc2100.com/

http://www.lpc2000.com/

Link to the ARM processor core documentation directly from ARM site at:– http://www.arm.com/documentation/ARMProcessor_Cores/index.html

NXP ARM selection tools page:– http://www.nxp.com/products/microcontrollers/support/development_tools/tools_by_type/

Yahoo support groups– http://groups.yahoo.com/group/lpc900_users– http://groups.yahoo.com/group/lpc2000/

Free online Introduction to ARM– http://www.techonline.com/community/ed_resource/course/14612/

Free LPC2000 Insider's Guide To The NXP ARM7-Based Microcontrollers– http://www.hitex.co.uk/arm/index.html

Page 93: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC21xx Driver Support (for free)Keil (using uVusion + Keil compiler)

– USB mem: a Standard Memory Mass Storage driver example USB audio: an Audio Device driver example

– USB HID: a Human Interface Device class driver example

NXP– Virtual COM port: Maps a virtual COM port communication in a USB pipe (see

LPC2000 news group, file section)– MMC driver: MMC memory card driver, application note (see NXP web site,

microcontroller section)

IAR: – USB mouse class driver example – USB MassStorage: Manage a MMC card and a vurtual RAM disk via USB – USB Audio: manage an input and an output audio stream via USB– USB CDC: USB communication device class via virtual COM

CDC = Class Definition for Communication Devices

Rowley : – TCP/IP, uIP stack for the Olimex LPC-E2124 board @ http://www.rowley.co.uk

Free lib: EFSL http://efsl.de (FAT12/16/32 file system with short file names)Keil and IAR examples don’t require any Windows USB class driver. Windows XP

supports all mentioned class drivers. NXP supplies the Virtual COM driver for Windows XP, IAR supplies the .inf file for the CDC windows driver

Page 94: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

COMMERCIAL FILE SYSTEM SUPPORT

• HCC– Supports fat 16/32– Wear levelling– About 2000 Eur

• Keil– Supports Fat 16– 8.3 file naming– Part of RTL

IAR– Power PACK

Page 95: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB Masss-storage class drv. and Filesystem relationship

Windows FAT16/32 Filesystem APIs

USB Mass storageclass driver

Window low-levelHOST driver

USB device low-levelmessages driver

SD/MMC cards

Low Level Memory card driver

Ex.:EFSL,HCC, IAR power PackKeil RTX FS

File system managerUSB Mass storageclass driver

File system API

Read_mem_blk()Write_mem_blk()

Customer Application

Open_File() Read_File() Write_File()Init_USB()Definesdevice, interfaces, endpoints

Virtual Drive

SD, MMC init

USB HOST USB Device

Page 96: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB books

USB Design By ExampleA pratical Guide to Building I/O devicesJohn Hyde, Intel University Press

USB complete third editionJan Axelson, www.Lvr.comLakeview Research

Page 97: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM-Tools on the NXP websitehttp://www.semiconductors.NXP.com/products/microcontrollers/support/development_tools/tools_by_family/

Page 98: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2000 forumStarted by Leon Heller, an engineering consultant from England: “The NXP LPC2100 family of ARM MCUs is sufficiently different from other ARM variants that I decided that a forum dedicated to it would be useful.”Direct URL http://groups.yahoo.com/group/lpc2000/FoundedNov 17,2003Alreadyabout 4000members!

Page 99: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

http://www.standardics.nxp.com/products/microcontrollers/

Get the latest Information .......

Product Selection Guide

Datasheets

Production Status

Tools

Application Notes

And much more …

Page 100: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Insider’s Guide to LPC2000

200 page guide to LPC2000 featuring chapters on:

– ARM7 Core– Software Development– System Peripherals– User Peripherals– Keil Tutorial– GNU Tutorial

Perfect for engineers without ARM experience

http://www.hitex.co.uk/arm/lpc2000book/book_downloadform.html

Page 101: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Application examples

Page 102: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

http://www.jandspromotions.com/philips2005/

Page 103: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

TAM-TAM NoPC Flash card …

CharlieMagnetometer Nuclear Weighing

MeasurementLAURIN

Duux BabycallBuckymeterDual-Axis LevelSensor

TV-OscilloscopeEthernet Acquisition

Distinctive Excellence

NXP ARM Design Contest

Page 104: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Why ARM?– ARM7 is an open architecture– Already the preferred 32-bit solution in Automotive, Communication and Industrial

markets. – Same tools for all ARM7 of different manufacturer. Often the same tools can be

used for ARM9/10/11. Customers can save money– ARM is a scalable and uniform architecture. ARM7 is binary code compatible with

ARM9/10. Your customer can chose the right product for its target application saving time due to the reduced learning curve

Why NXP?– First ARM7TDMI supplier with on-board flash in 0.18 μm process, with the largest

ARM7 product portfolio– Memory sizes from 8k up to 1M on-chip flash– Highest flash performance with nearly zero wait states due to internal MAM (Memory

Accelerator Module)

– Widest selection of devices and of the integrated peripherals: 4*CAN, 2*ADC, SPI, I2C…)

– Lowest pin count and smallest packages available– Price level allows to address mid/high end 16-bit applications, and high end 8 bit

application

LPC2000 – Key Points

Page 105: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On

Page 106: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On Index Hands-On1. Tools Setup

2. Oscillator / PLL / MAM / GP I/O / Flash

3. ADC

4. Interrupts / Timer

5. UART / CAN

Page 107: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnStart Keil uVision3

Compile Current File

Make Project

Rebuild Project (all)

Open Options Dialog

Start/Stop Debugging

Menu Selection:Project /Open Project

Select Blinky1

Page 108: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnBuild and Debug

Reset

Run Halt

Step into Step over

Performance Analyzer

Signal Analyzer

Build Project

Start Debugging

Page 109: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnSetup of Logic Analyzer

Logic Analyzer– Setup– Add signal

“action”

Add Newsignal

Here: 10

Page 110: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnRun ProgramView Variables and Registers

Menu:Peripherals /GPIO / Port1

Zoom:In & Out

Page 111: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnRun Program on Hardware

Halt

Stop Debugging

Options

Make Settings:

Press Load Button

Using JTAG/ULINK– Select Debug Tab– Use

“ULINK ARM Debugger”

With Flash ISP Utility– Select Utilities Tab– Use External Tool– Modify Command Line– Run Independent

Page 112: 1-day-arm-20071088

Introduction to the ARM architecture

Page 113: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 114: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM Holdings plc. (1)

*: part of Philips since 1999

Established as Advanced RISC Machines Ltd. in 1990 as a UK based joint venture between Apple Computer, Acorn Computer Group and VLSI Technology*

– Apple and VLSI provided funding

– Acorn supplied technology and first 12 engineers

Introduction of ARM6™ family in 1991, VLSI initial licensee

In April 1998 listed on the London Stock Exchange and Nasdaq

Page 115: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM Holdings plc. (2)

Develops the ARM range of RISC processor cores

Licenses its RISC microprocessor core and SoC IP to a network of partners; semiconductor and system companies

ARM does not manufacture silicon itself

Also licenses architectural extensions, development tools, peripheral IP and SoC solutions

ARM’s market share of the embedded RISC microprocessor market is approx. 75% and to date, ARM Partners have shipped more than one billion ARM core-based microprocessors

Page 116: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 117: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Bus WidthARM7 is a 32-bit architecture

– Data pathes and (ARM) instructions are 32 bits wide

– Von Neumann architecture• instructions and data use the

same 32-bit data bus

– There is a subset of 16-bit instructions (Thumb) optimized for code density*

*: from C code

Registers

Address Register Incr.

Mult.

Shifter

ALU

Data Bus

Address Bus

InstructionDecode &GeneralControl

Data InData Out

Thumb Decom-pression

Page 118: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb State

Set of instructions re-coded into 16 bits– Improved code density by ~ 30%

– saving program memory space

In Thumb state only the program code is 16-bit wide

– after fetching the 16-bit instructions from memory, they are de-compressed to 32 bit instructions before they are decoded and executed

– all operations are still 32-bit operations

Page 119: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Data Types and Alignment

Definitions (Little endian or big endiand are options):– Word = 32 bits (four bytes)

– Halfword = 16 bits (two bytes)

– Byte = 8 bits

Word Word

Halfword Halfword

Byte Byte Byte Byte

Halfword Halfword

Byte Byte Byte Byte

Halfword Halfword

Word

1 2 3 4 1 2 3 4

Word

Page 120: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Processor Modes

ARM has seven operating modes1. User unprivileged mode under which most applications run

2. FIQ entered, when a high priority (fast) interrupt is raised

3. IRQ general purpose interrupt handling

4. Supervisor protected mode for the operating systementered on reset or software interrupt instruction

5. System privileged mode using the same registers as user mode(not in ARM architectures 1, 2 and 3)

6. Abort used to handle memory access violations

7. Undefined used to handle undefined instructions

Page 121: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Registers (1)

An ARM core has 37 registers (32-bits wide)

General purpose registers– 1 program counter

– 30 general purpose registers

Status registers– 1 current program status register

– 5 saved program status registers

These registers are not all accessible at the same time. The processor state and operating mode determine which registers are available to the programmer.

Page 122: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Registers (II)

Depending on processor mode one of several banks is accessible. Each mode can access

– the program counter r15 (PC)

– a particular r13 (stack pointer SP)

– a particular r14 (subroutine link register, LR)

– a set of r0-r7 registers, and a particular set of r8-r12

– the current program status register (CPSR)

Privileged modes (except Sytem mode) can also access– a particular SPSR (saved program status register)

Page 123: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Register Overview

r0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r13 (SP)

r14 (LR)

r15 (PC)

CPSR

SPSR_undSPSR_abtSPSR_svcSPSR_irqSPSR_fiq

r13_fiq (SP)

r14_fiq (LR)

r13_irq (SP)

r14_irq (LR)

r13_svc (SP)

r14_svc (LR)

r13_abt (SP)

r14_abt (LR)

r13_und (SP)

r14_und (LR)

r9_fiq

r10_fiq

r11_fiq

r12_fiq

UndefinedAbortSupervisorIRQFIQUser and System

r0

r1

r2

r3

r4

r5

r6

r7

r8_fiq

r15 (PC)

CPSR

r0

r1

r2

r3

r4

r5

r6

r7

r8

r15 (PC)

CPSR

r9

r10

r11

r12

r0

r1

r2

r3

r4

r5

r6

r7

r8

r15 (PC)

CPSR

r9

r10

r11

r12

r0

r1

r2

r3

r4

r5

r6

r7

r8

r15 (PC)

CPSR

r9

r10

r11

r12

r0

r1

r2

r3

r4

r5

r6

r7

r8

r15 (PC)

CPSR

r9

r10

r11

r12

Thum

b st

ae L

owre

gist

ers

Thum

b st

ae H

igh

regi

ster

s

Page 124: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Registers in Thumb State

The Thumb state register set is a subset of the ARM state set. The programmer has direct access to:

– eight general registers r0 - r7

– the program counter PC

– a Stack pointer SP

– a Link register LR

– the current program status register CPSR

In Thumb state, the high registers (r8 - r15) are not part of the standard register set. The assembly language programmer has limited access to them, but can use them for fast temporary storage

Page 125: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb vs. ARM

Thumb

State

r0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r13 (SP)

r14 (LR)

r15 (PC)

CPSR

SPSR

r0

r1

r2

r3

r4

r5

r6

r7

r13 (SP)

r14 (LR)

r15 (PC)

CPSR

SPSR

ARM

State

Thumb state

Low registers

Thumb state

High registers

Page 126: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Program Status Register (1)

Condition Code Flags– N: Negative or less than

– Z: Zero

– C: Carry or borrow or result of the shift operations

– V: Overflow

To not disturb reserved bits, a read-modify-write strategy should be applied to change PSR bits.

Condition code flags

N Z C V Q J I F T mode

045678151623242728293031

Reserved Control bits

Page 127: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Program Status Register (2)

Control bits

N Z C V Q J I F T mode

045678151623242728293031

ReservedCondition code flags

Interrupt Disable Bits– I: IRQ interrupts disable

– F: FIQ interrupts disable

T Bit– Thumb mode (when set)

– ARM mode (when cleared)

Mode Bits

System11111

Undefined11011

Abort10111

Supervisor10011

IRQ10010

FIQ10001

User10000

Page 128: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Program Counter (r15)

When the processor is executing in ARM state– all instructions are 32 bits wide

– all instructions must be word aligned

– bits [31:2] contain the PC, bits [1:0] are zero(instructions cannot be halfword or byte aligned)

When the processor is executing in Thumb state– all instructions are 16 bits wide

– all instructions must be halfword aligned

– bits [31:1] contain the PC, bit [0] is zero(instructions cannot be byte aligned)

Page 129: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Exception

Exceptions result whenever the normal flow of a program has to be halted temporarily, for example to service an interrupt from a peripheral. Before attempting to handle an exception, the ARM7TDMI-S preserves the current processor state so that the original program can resume when the handler routine has finished.

Page 130: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Exception Handling

Entering an exception the ARM core– saves the address of the next instruction in the appropriate LR

– copies the CPSR into the appropriate SPSR

– sets appropriate CPSR bits• interrupt disable bits

• mode field bits

• if running in Thumb state, enter ARM state*

– forces PC to fetch next instruction from relevant exception vector*: all exceptions are handled in ARM state!

r15 (PC) r14_<mode> (LR)PC + 4 or PC + 8

CPSR SPSR_<mode>

Control bits

I F T mode

045678

CPSR:

Page 131: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Exception VectorsVector Table

ResetUndefined Instruction

Software InterruptPrefetch Abort

Data Abort(Reserved)

IRQFIQ

0x00

0x04

0x08

0x0C

0x10

0x14

0x18

0x1C

...

Page 132: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Multiple Exceptions

Exception priorities– When multiple exceptions arise at the same time, a fixed priority

sytem determines the order in which they are handled

SWI - Software Interrupt (to enter supervisor mode)

Undefined InstructionPrefetch Abort (instruction memory access cannot be completed)

IRQFIQData Abort (data memory access cannot be completed)

Reset

lowest priority

highest priority

7.

6.

5.

4.

3.

2.

1.

Page 133: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Leaving Exception

To leave an exception, the exception handler must– copy SPSR back into CPSR

(automatically restoring also I, F and T)

– move contents of current LR minus offset* to PC

– *: varies according to type of exception: 2, 4 or 8

r15 (PC)r14_<mode> (LR) PC - offset

CPSRSPSR_<mode>

Control bits

I F T mode

045678

CPSR:

Page 134: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 135: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Instruction Set

All instructions are 32-bits long

Many instructions execute in a single cycle

Instructions are conditionally executed

ARM is a load / store architecture– via registers => RISC

Load or store multiple registers in a single instructionusing <register list>

Page 136: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Conditional ExecutionDescriptionMnemonic

Always (normally omitted)AL

Signed less than or equalLE

Signed greater thanGT

Signed less thanLT

Signed greater than or equalGE

Unsigned lower or sameLS

Unsigned higherHI

No overflowVC

OverflowVS

Positive or zeroPL

NegativeMI

Carry Clear / Unsigned lowerCC / LO

Carry Set / Unsigned higher or sameCS / HS

Not equalNE

EqualEQ

Page 137: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Instruction Examples

Data processing instructions– SUB r0, r1, #5 r0 := R1 - 5

– ADD r2, r3, r3, LSL #2 r2 := r3 + (r3, LSL #2)

– ADDS r4, r4, #0x20 r4 := r4 + 32 and set flags

– ADDEQ r5, r5, r6 r5 := r5 + r6 if equal

Specific memory access instructions– LDR r0, [r1, #4] r0 := [r1 +4]

– STRNEB r2, [r3, r4] [r3 + r4] := r2 Byte operation if Z = 0; ignores r2[31:8]

– LDRSH r5, [r6, #2]! r5 := [r6 + 2] Halfword sign-ext.set bit [31:16] to bit 15then r6 := r6 + 2

Page 138: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb Instruction Subset Subset of most commonly used 32-bit ARM instructions

– 2 address format: destination register same as one source registers

Compressed into 16-bit wide code– Improved code density

Decompressed on execution to full 32-bit instructions– transparently

– in real-time

– no performance loss

ARM code can be combined with Thumb code for maximum flexibility

Page 139: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb Instructions

ARM instruction set Thumb instruction set

ARM instructionARM instructionARM instructionARM instructionARM instructionARM instructionARM instruction

31 0Thumb instructionThumb instructionThumb instructionThumb instructionThumb instructionThumb instructionThumb instruction

15 0Recoding

Page 140: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb Instruction Set (1)

Instruction Types– Branch

• Unconditional ± 2KBytes

• Conditional ± 256Bytes

• Branch with Link ± 4MBytes (2 Instructions!)

• Branch and exchange change to ARM state if Rm[0] = 0

• Branch and exchange with Link

– Data Processing• Subset of ARM data processing instructions

• Not conditionally executed (but some update flags)

Page 141: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Thumb Instruction Set (2)

Instruction Types– Load and Store

• Register plus 5-bit (PC,SP plus 8) immediate addressing

• Register plus Register addressing

– Load and Store Multiple• Load / Store list of registers

• Push / Pop (ARM equivalent: STMDB SP!, <registers>)

– Exception Generating Instructions• SWI (switch to ARM mode and privileged mode)

• Breakpoint (prefetch abort, with debug monitor)

Page 142: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Translation of Thumb InstructionExample: ADD Rd, Rd, # Constant

001 10 Rd 8-bit immediate15 0

Thumb code

Major op-code

denoting format 3

move/compare/add/sub/

with immediate value

Minor op-code

denoting ADD

instruction

Destination and

source register

Immediate

value

1110 00 1 0100 1 0 Rd 0 Rd 0000 8-bit immediate31 0

ARM codeAlways condition code

Page 143: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM and Thumb Interworking

Switch between ARM state and Thumb state using BX instruction– In ARM state: BX<condition> Rn

– In Thumb state: BX Rn

Rnn: 0-15

0131

00131

Destinationaddress

ARM / Thumb selection0: ARM state1: Thumb state

BX

Page 144: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 145: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM7TDMI-S

The ARM7TDMI-S is based on ARM7 core– 3 stage pipeline

– Von Neumann architecture

– CPI ~1.9

– T: Thumb instruction set

– D: includes debug extensions

– M: enhanced multiplier (32x8) with instructions for 64-bit results

– I: core has EmbeddedICE logic extensions

– S: fully synthesisable (soft IP)

Page 146: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ARM7TDMI-S Core

Registers

Address Register Incr.

Mult.

Shifter

ALU

Data Bus

Address Bus

InstructionDecode &GeneralControl

Data InData Out

Thumb Decom-pression

Page 147: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Fetch

Decode

Execute

ARM

PC

PC - 4

PC - 8

Thumb

PC

PC - 2

PC - 4

3-Stage Instruction Pipeline

Instruction Fetched from Memory

Thumb only: Thumb instruction decompressed to ARM instructionInstruction decoded

Registers read from Register Bank, Shift and ALU operations performed, Registers written back to Register Bank

Page 148: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 149: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Example ARM based System

RAM16 bit wide

RAM32 bit wide

ARM core

Peripherals I / O

ROM8 bit wide

Interrupt Controller

Page 150: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

AMBA

Advanced Microcontroller Bus Architecture– on-chip interconnect

– established, open specification

– framework for SoC designs

– enabler for IP reuse

– ‘digital glue’ that binds IP cores together

Page 151: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Example AMBA System

High-bandwidth on-chip RAM

ARM core

DMA Bus Master

High-bandwidth

Memory Interface

UART

Timer

Keypad

Display

APBAPB Bridge

RTC

I/O

AHB

Page 152: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

AHB and APB / VPB

Advanced High-Performance Bus– high-performance

– pipelined

– fully-synchronous backplane

– multiple bus masters

Advanced Peripheral Bus / VLSI Peripheral Bus– low-power

– non-pipelined

– simple interface

– wait support (VPB)

Page 153: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

8. Q & A

Page 154: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pipeline-Changes for ARM9TDMI

Decode

ARM decode

Reg. select

Thumb→ARM decompress

Fetch

Instruction Fetch

Execute

Reg. read Shift ALU Reg.

write

ARM7TDMI

ARM or Thumb instruction decode

Decode

ARM9TDMI

Reg. decode

Reg. read

Execute

Shift + ALUInstruction Fetch

Fetch

Instruction Fetch

Memory

Memory access

Writeback

Reg. write

CPI: ∼1.9

CPI: ∼1.5

Page 155: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Development of the ARM Architecture

T: Thumb E: DSP-extensions S: synthesizable J: Java

5TEJ

1

2

3

Early ARM architectures

ARM926EJ-S

4

ARM7TDMI

4T

SA-110

SA-1110

Thumb instruction set

ARM9TDMI

ARM720T ARM940T

Halfword and signed

halfword / byte support

System mode

Improved ARM/Thumb Interworking

CLZ Instruction

ARM1020E ARM9E-S

X-Scale ARM966E-S

5T

5TESaturated maths

DSP multiply-accumulate instructions

Jazelle

Java bytecode execution

ARM9EJ-S

ARM7EJ-S

:ISA (Instruction Set Architecture) : Core Architecture

Page 156: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1997 1998 1999 2001 200220001996

Per

form

ance

MIP

S (D

hry

2.1)

0.35µ4.8mm2

0.25µ2.4mm2

0.18mm

0.25µ

ARM 9E 70-150 DSP MIPS

ARM 9...

(ARM 10)0.18µ

0.15µ

0.18µ< 0.5mm2

100

400

0.35µ2.1mm2

0.25µ1.0mm2

ARM 7 Thumb Family

0.6µ4.8mm2

Von Neumann3 Stage Pipeline

Harvard5 Stage Pipeline

ARM 11

0.15µ

0.12µ

ARM Technology Roadmap

Page 157: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. ARM - The Company

2. Architecture

3. Instruction Set

4. ARM7TDMI-S

5. Systems

6. Other ARM cores

7. NXP Implementation

Page 158: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2xxx minimum peripherals set

Some common features– ARM7TDMI-S core with E-ICE RTM™ / ETM™

– Operation up to 60MHz

– 32-bit timers• 2 (4 capture and 4 compare channels each)

• PWM (6 outputs)

• RTC

• Watchdog

– 2 UARTs (16C550)

– I²C (400kb/s)

Page 159: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect Block

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog, ADC, USB, CAN, Ethernet, SD, IIS, GPDMA

NXP Implementation

Page 160: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2000 Memory Map

Memory blocks not drawn to scale!

0x0000 0000

0xFFFF FFFF

0x000m FFFF8KM ... 1MB On-Chip Non-Volatile Memory

0x4000 nnnn*

Reserved for On-Chip Memory

0.0 GB

1.0 GB

2.0 GB

3.0 GB

3.5 GB

0x3FFF FFFF0x4000 000016 / 32 / 64 KB On-Chip Static RAM

Reserved for On-Chip Memory

4.0 GBAHB Peripherals 0xF000 0000VPB Peripherals

Boot Block (re-mapped from On-Chip Flash)

0x8000 0000

3.75 GB0xEFFF FFFF0xE000 0000

Reserved for External Memory

0x7FFF E000

8 KB On-Chip Static RAM, USB 0x7FE0 0000

0x7FD0 000016 KB On-Chip Static RAM, ETHERNET

RAM on local bus-> fast access !

RAM on AHB

Page 161: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

0x0

0x03 FFFF

Sector 9 64K

Sector 7 8K…

Sector 2 8k

Sector 1 8KSector 0 8K

Sector 16 8K…

Sector 10 8k

8K Boot Block

Sector 8 64K

LPC2100, 256k

0x0

0x01 FFFF

Sector 14 8KSector 13 8K

Sector 12 8K…

Sector 2 8k

Sector 1 8K

8K Boot Block

Sector 0 8K

LPC2100, 128k

Flash Memory Organization

0x0

0x07 FFFF

Sector 9 32K

Sector 7 4K...

Sector 1 4KSector 0 4K

12K Boot Block

Sector 8 32K

512k

Sector 10 32K

Sector 14 32K…

Sector 11 32k

Sector 21 32K…

Sector 15 32k

Sector 26 4K…

Sector 22 4k

0x03 FFFF

0x01 FFFF

0x00 FFFF

0x00 7FFF

0x07 CFFF

256k

128k

64k

32k

LPC213X• The boot block always resides in the top of Flash and contains the boot loader•Active interrupt vectors could be from Flash, SRAM or boot block. On reset the boot block vectors are always mapped to 0x0

0x00

0x3F

Active Exception Vectors

Page 162: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

SRAM: 8, 16, 32 or 64 KB

0x40000000

0x40003FFF

0x4000FFFF

0x4000003F

64KB SRAM

32KB SRAM

16KB SRAMRAM Int Vect

0x40007FFF

RAM Int Vect RAM Int Vect RAM Int Vect0x40001FFF

8KB SRAM

Page 163: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect Block

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog, Ethernet, SD, IIS, GPDMA

Page 164: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

System Control

Includes a number of important system features– Power Control

– Memory mapping configuration

– Oscillator

– PLL

– VPB (VLSI Pheriperal Bus) divider

– Reset (active low)

– Wakeup Timer

– External Interrupts

Page 165: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power Control 1

Power Down mode - oscillator and on-chip clocks stopped, wakeup by external interrupt

PDPCON[1]

Idle mode - processor clock stopped, on-chip peripherals remain active, interrupts cause wakeup

IDLPCON[0]

• Power Control Register [PCON – 0xE01FC0C0] R/W

20 uA at room temperature,

50 uA with single voltage supply

For example 5 mA with most peripherals powered down

Biggest factors:temperature, clock rates

Peripheral Clock Divider: 20%

Page 166: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power Control 2

Enable UART0PCURT0PCONP 3Enable Timer1PCTIM1PCONP 2Enable Timer0PCTIM0PCONP 1

Enable PWM0PCPWM0PCONP 5Enable UART1PCURT1PCONP 4

Enable RTCPCRTCPCONP 9

......

Enable SPIPCSPIPCONP 8Enable I2CPCI2CPCONP 7

• When disabled, peripherals are switched off to conserve power

• Power Control for [PCONP – 0xE01FC0C4] R/WPeripherals Register

Each peripheral typically below 1mA

Page 167: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power Control (3)

Enable SPI0PCSP0PCONP 8

Enable RTCPCRTCPCONP 9

Enable External Memory ControllerPCEMCPCONP 11

Enable SPI1PCSPI1PCONP 10

Enable CAN Controller 1PCCAN1PCONP 13

Enable A/D-ConverterPCADPCONP 12

...

Enable CAN Controller 3PCCAN3PCONP 15

Enable CAN Controller 2PCCAN2PCONP 14

Enable CAN Controller 4PCCAN4PCONP 16

• Power Control for Peripherals Register cont'd

Acceptance Filter enabled with any CAN Controller

CAN peripheral typically below 2mA

Page 168: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Boot Block

The uppermost Flash sector contains the Boot Loader– controls physical interface for programming and erasing the Flash

– supports ISP (In System Programming) mode for initial programming of customer code

– supports In-Application Programming in a running system under the control of customer software

– buffers an entire Flash line (512 bytes) at once to keep programming time to a minimum

The Boot Loader is automatically run following reset– checks for a “Valid User Program” key to prevent running code on

incorrectly programmed devices

Page 169: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Flash Memory IAP Programming

IAP: In Application Programming

Bootloader contains flash programming routines – Erase Sectors– Write blocks (of 512 bytes)

• Re-write to blocks possible, if bits are cleared in 32 byte groups (see hands-on example)

– Common entry point for IAP calls: 0x7ffffff1

During calls, all interrupts must be disabled– Note: hands-on example only disabled IRQ, not FIQ

Page 170: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

BOOT PROCESS FLOWCHARTLPC23/24 only

Page 171: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Exception Vectors

Vector Table

ResetUndefined Instruction

Software InterruptPrefetch Abort

Data Abort(Reserved)

IRQFIQ

0x00

0x04

0x08

0x0C

0x10

0x14

0x18

0x1C

...

Valid user program key:Must contain a value that

ensures that the checksum of all vectors is zero

Page 172: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Mapping Control 1

0x0000 0000Active Exception Vectors 0x0000 003F

On-chip Flash Memory

Re-mapping of Exception Vectors– always appear to begin at 0x0000 0000

– but can be mapped from different sources:• User Flash

– Exception Vectors are not re-mapped and reside in Flash

Page 173: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

• User RAM

– Exception Vectors are re-mapped from RAM

Memory Mapping Control (2)• Boot Loader

– Always executed after reset. Exception Vectors re-mapped from Boot Block

0x0000 0000Active Exception Vectors 0x0000 003F

On-chip User Flash Memory

Boot Loader

On-chip User RAM

0x4000 0000

0x8000 0000Off-chip Memory

Page 174: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Mapping Control (3)

Re-mapping of Boot Block– mapped from top of Flash to top of on-chip memory space

0x0000 0000Active Exception Vectors 0x0000 003F

On-chip User Flash Memory

On-chip User RAM

Boot Loader

2.0 GB

Page 175: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Mapping Overview

0x0000 0000

0xFFFF FFFF

Reserved for On-Chip Memory

2.0 GB

16/32/64 KB On-Chip Static RAM

Reserved for On-Chip Memory

AHB Peripherals

VPB Peripherals

Boot Block (re-mapped from On-Chip Flash)

Reserved for External Memory

0x00

0x3F

Active Exception Vectors

8KB Boot Block

Exception Vector re-mapping

Boot Block re-mapping

128 KB On-Chip Non-Volatile Memory

4.0 GB

0x7FFF FFFF

Page 176: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Mapping Control Register

• Memory Mapping Control [MEMMAP – 0xE01FC040] R/W

00: Boot Loader Mode

01: User Flash Mode (no re-mapping)

10: User RAM Mode

11: External Memory

MAP 1:0MEMMAP 1:0

Selects the memory being mapped to address zero

Page 177: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Phase Locked Loop (1)

10 to 25 MHz input clock frequency

Output frequency from 10 MHz up to the max. CPU rate(LPC2xxx: 60MHz)

Programmable frequency multiplication

PLL bypassed on reset

PLL lock indicator can be used as an interrupt to connect the PLL once it is locked

PLL programming requires a special feed sequence (like the watchdog) for safety

Page 178: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Phase Locked Loop (for old families LPC21xx and LPC22xx)

Phase Detector

XTAL1

DividerValue

FOSC

Multiplier Value

FCCO

cclk

pclk÷ M

VPBDivider÷ 1/2/4

÷ 2PCurrent

Controlled Oscillator

Oscillator

P:=1..8M:=1..32

10 to 25 MHz

156 to 320 MHzFosc * 2 * M * P

10 to 60 MHzFosc * M

1 to 30 MHzwithout PLL

Default: 4

Page 179: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Phase Locked Loop (3)

MHz156 ... 320PLL CCO-frequencyFcco:

MHz10 ... 25crystal oscillator or input frequencyFosc:

MHz10 ... 60-70processor clock frequencycclk:

Fcco= Fosc • M • 2 • PFCCO = cclk • 2 • P

cclk = cclk = M • FOSCFcco2 • P

Example: FOSC = 10 MHz (crystal controlled) Target: cclk = 60 MHz

M = = = 6

Select suitable value for P: FCCO = 60 MHz • 2 • P = 240 MHz (P = 2)

cclkFosc

60 MHz10 MHz

Page 180: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PLL Registers (1)

PLL ConnectPLLCPLLCON1

PLL EnablePLLEPLLCON0

• PLL Control Register [PLLCON – 0xE01FC080] R/W

PLL Divider value "P"

00: 1

01: 2

10: 4

11: 8

PSEL 1:0PLLCFG 6:5

PLL Multiplier value "M" (M-1)MSEL 4:0PLLCFG 4:0

• PLL Configuration Register [PLLCFG – 0xE01FC084] R/W

Page 181: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PLL Registers (2)

Reflects PLL Lock statusPLOCKPLLSTAT10

Readback for PLL Connect bit *PLLCPLLSTAT 9

Readback for PLL Enable bitPLLEPLLSTAT 8

Readback for Divider value "P" (1,2,4,8)PSEL 1:0PLLSTAT 1:0

Readback for Multplier value "M" (M-1)MSEL 4:0PLLSTAT 4:0

• PLL Status Register [PLLSTAT – 0xE01FC088] RO

* Cleared when Power Down mode activated

Consecutive writes 0xAA then 0x55PLLFEEDPLLFEED 7:0

• PLL Feed Register [PLLFEED – 0xE01FC08C] WO

Page 182: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VPB Divider Register

cclk / pclk ratio 00: 4

01: 1

10: 2

VPBDIVVPBDIV 1:0

• VPB Divider Register [VPBDIV – 0xE01FC100] R/W

Page 183: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect BlockPin Connect Block / External Memory Controller

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog, ADC, CAN

Page 184: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

32 bits needed with every clock

Memory access time < 17ns @ 60MHz

On-chip Memory with 0-wait States

ARM7TDMI-S is a 1-clock core– CPI of ~1.9, but many instructions execute in 1 cycle

– CPU requires one instruction per clock cycleFor highest performance

Page 185: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Accelerator Module

CPU performance limited by Flash access time (<50 ns)– ARM needs 32 bits every clock for 1 clock instructions

– Without MAM operation possible up to 20MHz

Flash Architecture– Flash is split into two blocks of 128 bits each

• 128 bits are accessed at once

– Separate Branch Trail Buffer holds 128 bits of history of each block

=> 4-times speed improvement for linear code; branches will cause a variable delay, depending on target address

– Additional Data Buffer for data accesses to Flash

Page 186: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Memory Accelerator Module

ARM7

Core

Bus

Inte

rfac

e

Local Bus

Flash Memory Bank 1

Branch Trail Buffer 1

Prefetch Buffer 1

Flash Memory Bank 2

Branch Trail Buffer 2

Prefetch Buffer 2

Data Buffer

128 bit

128 bit (2x)

128 bit

128 bit (2x)

Data Bus (32 / 16 bit)

Selection

Address Bus

Page 187: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

MAM Registers

00: MAM functions disabled

01: MAM functions partially enabled *

10: MAM functions fully enabled

11: reserved

MAM mode control

MAMCR 1:0

• MAM Control Register [MAMCR – 0xE01FC000] R/W

000: reserved

001: MAM fetch is 1 clock cycle

...

111: MAM fetch is 7 clock cycles

MAM Fetch Cycle timing

MAMTIM 2:0

• MAM Timing Register [MAMTIM – 0xE01FC004] R/W

* Only sequencial code via MAM

Page 188: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On Index Hands-On1. Tools Setup

2. PLL / MAM / GP I/O / Flash

3. ADC

4. Interrupts / Timer

5. UART / CAN

Page 189: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnPLL and MAM Setup with Keil uVision, Project Blinky1

The PLL and MAM settings are part of the startup code

Settings can be made using a convenient input mask

Exercise:Setup the PLLto 60Mhz

Page 190: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnMAM Setup

Enabling the MAM for 60Mhz clock and 50ns Flash

Setup MAM

“Fully Enable”

MAM Timing “3”3 * 17ns = 51ns

Explanation of MAM Register values

– “Partially Enable”:Code fetches only

– “Fully enable”:Code and data fetches

– MAM TimingNumber of clock cycles used for one flash memory access

Page 191: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnVerify PLL and MAM Settings

In Simulation == In Hardware if MAM is full enabled– If the define LOOP_DELAY is 1.000.000– 6.000.000 cycles are realized in the delay()– “action” incremented every 100ms at 60Mhz

Open disassembly window and single step through while loop in function “wait”

Every loop needs 6 cycles:3 instructions at 1 CPI1 instruction (branch) at 3 CPI

Page 192: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnFlash IAP

Project FlashSWInt

Load and single step– Watch memory at 0x8000, ASCII mode

Exercise:Change program to use address 0x10200 for storing the string

Page 193: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect Block

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog, ADC, CAN

Page 194: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

General Purpose I/O (1)

Pins available for GPIO:

LPC21/22– 48-pin devices: 32

– 64-pin devices: 46

– 144 pin devices: 76 (max.) (with external memory)

112 (w/o external memory)

LPC23/24– Up to 160 GPIO pins, all implemented as fast GPIOs, with 64 GPIO interrupts

(plus 4 other external interrupts).

Shared with– Alternate functions of all peripherals

– Data/address bus and strobe signals for external memories

Page 195: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

General Purpose I/O (2)

Direction control of individual bits

Separate set and clear registers

Pin value and output register can be read separately

Slew rate controlled outputs (10 ns)

5 registers used to control I/Os

Page 196: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

General Purpose I/O 2

The current state of the port pins is read from this register

Writing "1" sets pins high, writing "0" has no effect

Writing "1" sets pins low and clears corresponding bits in IOSET

Port pin direction: 0 = INPUT 1 = OUTPUT

Selects function of pins (Pin Connect Block)

IOPIN

Register

IOSET

IOCLR

IODIR

PINSEL0/1

Page 197: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Conventional GPIO Implementation Drawbacks

Conventional ARM GPIO is implemented on the APB peripheral bus

Toggling speed of the GPIO is limited due to the 3-stage pipeline, AHB bridge and the APB bus

Page 198: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Understanding the slow port behavior

It takes 5 clocks to execute a port write

Total time from instruction fetch to port change is 7 clocks

Maximum achievable period is 14 clocks (cclk/14) = (60/14) = 4.28MHz

When cpu_clken_I is low indicates core is stalled

Page 199: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL10

Block diagram of new port configuration

Page 200: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL9

Improving Speed

GPIO registers are now interfaced directly to the ARM7 Local bus

Ports can now toggle every 2 clocks giving a clock period of cclk/4= 15Mhz

This is a 3.5x speed increaseEnables faster ‘soft’ peripherals

Page 201: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL6

Results of change (speed of writes)

FetchingWriting

DecodingE5803000ExecutingE5802000

FetchingE580500DecodingNothing

ExecutingE5803000

FetchingWriting

DecodingE5804000ExecutingE5803000

FetchingE580500DecodingNothing

ExecutingE5804000

FetchingWriting

DecodingE5805000ExecutingE5804000

FetchingE580500DecodingNothing

ExecutingE5805000

Port output

Page 202: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Fast GPIO

Special features

– GPIO registers accessed via ARM local bus in addition to conventional peripheral bus access

– Mask registers allow treating sets of port pins as a group, leaving other bits unchanged

– Local bus GPIO registers are now byte addressable

– Entire port value can be written in one instruction using the IOPIN register

Page 203: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Mask Register- Advantages

Provides the capability to the user to separate the GPIO pins into groups

Any modifications to the FIOSET,FIOCLR and FIOPIN is only effected if the corresponding bits in the FIOMASK are set

Using Mask registers…

Individual I/O pins can be addressed separately

Page 204: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pin Connect Block (1)

Many on-chip functions can use I/O pins

Number of I/O-pins is limited

⇒ I/Os can be configured to adapt various functions

Configuration done by Pin Connect Block

PIN

GPIOUARTTimer/Counterreserved

PINSEL0/1/2

Page 205: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pin Connect Block (2)Pin Function Select Registers

– PINSEL0 and PINSEL1• Configuration of P0

• Assign P0.0 ... P0.31 to GPIO or an alternate function (1 of max. 3)

– PINSEL2 (not available in 48-pin devices)

• Configuration of P1 (64/144-pin devices) and P2, P3 (144-pin devices)

• Select availability of debug and trace ports on Port1 pins

• Controls use of address/data bus and strobe pins (144-pin devices)

• Selection of additional ADC-inputs (144-pin devices)

Page 206: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pin Connect Block (3)

• Pin Function Select Register 0 [PINSEL0 - 0xE002C000)] R/W

.........

.........

00: GPIO Port 0.10

01: RTS (UART1)

10: Capture 1.0 (Timer 1)

11: reserved

P0.10PINSEL0 21:20

Example:...

Page 207: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller* (1)

Supports static memory devices (RAM, ROM, external I/O)

Up to 4 independent banks, each up to 16M Bytes

Programmable– Bus turnaround (idle) cycles (1 to 16)

– Read and write WAIT states (up to 32)

– Write protection

– Burst mode operation

– External data width: 8, 16, or 32 bits

*: LPC2000 144-pin devices only, LPC2378, LPC24xx

Page 208: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller* (2)

Available signals

*: 144-pin devices only

External memory address linesOutputA [23:0]External memory data linesInput / OutputD [31:0]

Chip Select (active low)OutputCS [3:0]Write Enable (active low)OutputWEByte Lane Select (active low)OutputBLS [3:0]Output Enable (active low)OutputOE

DescriptionTypePin name

Page 209: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller* (3)

Internal Flash memory1132-bit memory on CS00116-bit memory on CS0108-bit memory on CS000

Boot fromP2.26 / D26 / Boot0P2.27 / D27 / Boot1

Selection of external data bus width (144-pin devices only)

– Determined by state of pins Boot0 and Boot1 during Reset

*: 144-pin devices only

Page 210: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller* (4)Size of external memory

– Number of external address lines defined by PINSEL2 27:25

– Remaining port pins available as GPIO

*: 144-pin devices only

045678151923242728293031 26 12320 16 1112

1 1 01 1 1

1 0 11 0 00 1 1 0 1 00 0 1

0 0 0

25

decoded to CS0 ... CS3

Page 211: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnGPIO Exercise

Exercise:Modify the example to use a macro or function for LEDs

Hint:– SET_LEDS(byte)– LEDs are on

Port 1, bits 16-23

Optional Exercise:“Invent” a display pattern indicating seconds and 125ms

Examples:– Walking LED, or– Bar indicator

Page 212: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect Block / Memory Controller

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog

Page 213: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Vectored Interrupt Controller

ARM PrimeCell™

32 interrupt request inputs

16/32 IRQ interrupts can be auto-vectored (in the LPC23/24)

– single instruction vectoring to ISR

– dynamic software priority assignment

32 FIQ non-vectored interrupts

32 Software interrupts

Page 214: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Vectored Interrupt ControllerS

oftIn

tCle

arS

oftIn

t

OR

Raw

Inte

rrupt

IntE

nabl

eCle

ar

IntE

nabl

e

IntSelect

FIQ

IRQ

FIQ

Sta

tus

IRQ

Sta

tus

Interrupt Source

32

32

VectorCntl

En

5

En

5

VICVectorAddr 0

. . .

16/32 (LPC23/24)

FIQ

Channel

0:4

Channel

0:4

High Prio

Low Prio

32OR

CPU

Known FIXED ADDRESSVICVectAdd

D[0..31]

FIQ

IRQ

FIQ

D[ ]

Timer

interrupt

VICVectorAddr 0

VICVectorAddVICVectorAddr 0

VICDefVectAddr

VICVectorAddr 15/31

Page 215: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IRQ InterruptsVectored Interrupt

Controller

Channel #4

Channel #16

Vectored Interrupt

Controller

Channel #4

Channel #16

ARM-Core

Timer (Overflow)

Timer (Overflow)

Interrupt

FIQ

IRQ

VICVector

Address

Main LDR PC, [PC,#-0FF0] (VICVectADDR): address ofservice routine

Timer-ISR

0x1C0x180x14...

ExceptionVectorTable

Page 216: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VICVectAddr4

Interrupt 4

VICVectAddr ISR

Load PC with Vector Address

VIC - Vectored Interrupts

Page 217: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VICDefVectAddrISR

Interrupt

VICVectAddr

CODE

ISR

ISRISRISR

ISRLoad PC with Common

Vector Address

VIC - Non-Vectored Interrupts

Page 218: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

FIQs have higher priority than IRQs– Serviced first– FIQs disable IRQs

FIQ Vector is last in vector table (allows handler to be run sequentially from that address)

FIQ mode has 5 extra banked registers, r8-12 (interrupt handlers must always preserve non-banked registers)

VIC - FIQ Interrupt

Page 219: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

VIC – FIQ (Fast Interrupt)

ISR

FIQ ISRin RAM

Load PC with Vector Address

VectorAddress = 0x1C

FIQ ISRin Flash

Interrupt

Page 220: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Interrupt Prioritizing with Nesting

IRQ Service Routine of “lower” priority:

1. Push SPSR to LR and on stack2. Switch to System Mode (write CPSR, enable IRQ)3. Push system mode link register on stack4. Execute “real” service routine5. Pop system mode link register from stack6. Switch back to IRQ mode 7. Pop SPSR to LR and restore SPSR8. Clear IRQ source9. Reset VIC

For Keil compiler, see knowledgebase at www.keil.com

Page 221: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On Index Hands-On

1. Tools Setup

2. Oscillator / PLL / MAM / GP I/O

3. ADC

4. Interrupts / Timer

5. UART / CAN

Page 222: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnProject: BlinkyIRQ

Load Project BlinkyIRQ

Build and Debug

Simulation– Use Logic Analyzer

• gTimCnt

• loop– Peripheral window

• Vectored Int. Contr.

Page 223: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnExercise: Timer & Interrupt

Add timer 1 interrupt to BlinkyIRQ

Interrupt all 333us

Use Vector 1

In ISR, display some LED pattern on port 1.20 to 1.23 every 333ms

Test and debug in simulator using:

– Performance Analyzer– Signal Analyzer– Peripheral GPIO window– Peripheral Timer window– Peripheral VIC window

Test program on hardware

Page 224: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Interrupts Hands-On1. Tools Installation

• Emulator/Debugger: Emul-ARM Evaluation System (Nohau)• Compiler: Embedded Workbench (IAR)• Flash Tool: Flash ISP Utility (NXP)• Hardware: LPC2106 Target Board (Nohau)

2. Oscillator / PLL

3. Memory Acellerator Module / General Purpose I/O

4. Interruptsa. Single Interruptb. Nested Interrupts

5. UART6. RTC

Page 225: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single Interrupts (1) Hands-On

IAR Embedded Workbench– Load workspace Chapter 4a

File -> Open Workspace -> Chapter 4a_single_Interrupt -> Chapter_4a.eww

– Select project Training– Target Debug (= run from RAM!)

– Make OK?• Correct error in Timer.c (User Manual !)

• Try again

Page 226: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single Interrupts (2) Hands-On

– Start Seehau (Tools -> Seehau)

• Run project (RUN -> Go or Button)

– What does Blinkie do in this case?• Browse through source codes

– Blinkie_Main.c

– Timer.c

Page 227: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single Interrupts (3) Hands-On• Browse through source codes

– VectorTabDebug.s (Assembler!)

Exception Program Vector Table

Reset ldr pc,=?cstartup SUPERVISOR mode

Undefined ldr pc,=0x0000024 UNDEFINED mode

SWI ldr pc,=0x0000028 SUPERVISOR mode

Prefetch ldr pc,=0x000002c ABORT mode

Data ldr pc,=0x0000030 ABORT mode

nop reserved

IRQ ldr pc,[pc,#-0xff0] IRQ mode → Load contents of the ...

FIQ ldr pc,=0x1C IRQ mode ... VICVectAddr. register into PC

Page 228: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single Interrupts Solution Hands-On

!Timer.c– T0_MCR= 0x03;

//Interrupt on Match0, reset timer on match

FunctionLEDs are changed whenever variable TimerIsUp=1This variable is

• set by Timer 0 interrupt routine after Timer 0 match

• cleared by main routine before LEDs are changed

Page 229: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (1) Hands-On

IAR Embedded Workbench– Load workspace Chapter 4b

File -> Open Workspace -> Chapter 4b_single_Interrupt -> Chapter_4b.eww

– Select project Training– Target Debug (= run from RAM!)

– Make OK?

Page 230: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (2) Hands-On

–Start Seehau (Tools -> Seehau)

• Run project (RUN -> Go or Button)

– Press SW4– Release SW4

– What does Blinkie do in this case?

Page 231: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested InterruptsSolution 1

Hands-On– Two interrupt sources

• Timer 0 IR: blinks LEDs

• External IR 2 (SW4): stay in ISR until SW4 released– Priorities

• External Interrupt > Timer

⇒ SW4 blocks Timer 0

(LEDs control)

– SW2, SW3 change direction (polled in main program)

!

Timer0_ISR()

VICVectAddr1Main()

ExtInt_ISR()

VICVectAddr0

Page 232: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (3) Hands-On

– Browse through source codes• Blinkie_main.c

• ExtInt.c InitExtInt2()

• Timer.c InitTimer0()

• VectorTabDebug now initializes SP for different modes

Page 233: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (4) Hands-On

– Nested IR-Handler now save status and re-enable further interrupts before entering ISR ⇒ nested interrupts possible!

Main() Nested IR handlerTimer IRS routine

VICVectAddr0

Nested IR handlerExt. Int. ISR

VICVectAddr1

!

Page 234: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (5) Hands-On– Browse through source codes (cont'd)

• NestedIrqHandler.s

re-enable ExtInt2

switch to IRQ mode, IRQ disabledswitch to IRQ mode, IRQ disabled

ExtInt2-pin to GPIO

restore work registersrestore work registers

reset VICreset VIC

branch to distinct ISRbranch to distinct ISRswitch to System mode, interrupts enabledswitch to System mode, interrupts enabled

reset IRQ-sourcereset IRQ source

save work registerssave work registers

External Interrupt 2 nestedTimer 0 nested

Page 235: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (6) Hands-On

– Change priorities: External Interrupt < Timer

• Edit Timer.c and ExtInt.c:

Note: lower value (n, m) is higher priority!

11newInitExtInt2()00newInitTimer0()00isInitExtInt2()11isInitTimer0()

VICVectCntlmVICVectAddrn

Page 236: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested Interrupts (7) Hands-On

– Make OK?– Start Seehau (Tools -> Seehau)

• Run project (RUN -> Go or Button)

– What does Blinkie do now?

Page 237: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested InterruptsSolution 2

Hands-On

– Priorities• External Interrupt < Timer

– Blinkie continues, even while SW4 is pressed!

– LED5 toggles to indicate recognition of External Interrupt– Two interrupt sources

• Timer 0 IR: blinks LEDs

• External IR 2 (SW4): stay in ISR until SW4 released

(but can be interrupted!)– SW2, SW3 change direction (polled in main program)

!

Page 238: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Nested InterruptsSolution 2

Hands-On

!Timer0_ISR()

VICVectAddr0Main()

ExtInt_ISR()

VICVectAddr1

Page 239: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

16External Interrupt 2 (EINT2)System Control

15External Interrupt 1 (EINT1)System Control

14External Interrupt 0 (EINT0)System Control

13RTCCIF (Counter Increment), RTCALF (Alarm)RTC

12PLL Lock (PLOCK)PLL

11reserved-

10SPIF, MODFSPI

9SI (state change)I2C

8Match 0 - 6 (MR0, MR1, MR2, MR3, MR4, MR5, MR6)PWM 0

7Rx Line Status (RLS)

Transmit Holding Register empty (THRE)

Rx Data Available (RDA)Character Time-out Indicator (CTI)Modem Status Interrupt (MSI)

UART 1

6Rx Line Status (RLS)

Transmit Holding Register empty (THRE)

Rx Data Available (RDA)Character Time-out Indicator (CTI)

UART 0

5Match 0 -3 (MR0, MR1, MR2, MR3)Capture 0 - 3 (CR0, CR1, CR2, CR3)

Timer 1

4Match 0 -2 (MR0, MR1, MR2, MR3)Capture 0 - 2 (CR0, CR1, CR2)

Timer 0

3Embedded ICE, DbgCommTxARM Core

2Embedded ICE, DbgCommRxARM Core

1Reserved for software interrupts only-

0Watchdog Interrupt (WDINT)WDT

VIC IR Source #Flag(s)Block

VICIR Sources

LPC2104LPC2105LPC2106

Page 240: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

24CAN 3 Transmitter*** CAN

23CAN 2 Receiver** CAN

18A/D ConverterA/D

27CAN 4 Receiver*** CAN

26CAN 4 Transmitter*** CAN

25CAN 3 Receiver*** CAN

22CAN 2 Transmitter** CAN

21CAN 1 Receiver* CAN

20CAN 1 Transmitter* CAN

19ORed CAN Acceptance Filters* CAN

17External Interrupt 3 (EINT3)System Control

.........

VIC IR Source #

Flag(s)Block

add'l

VICIR Sources

LPC2114/24LPC2119*/29*LPC2194**LPC2210/12/14LPC2290**/92**LPC2294***

plus more flags for UART0, Timer1, Capture 0 - 3 (CR0, CR1, CR2, CR3)

Page 241: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Some instructions take multiple cycles to execute and cannot be interrupted

– The longest STM and LDM instructions take 20 cycles– Subsets can be reduced to 7 cycles

FIQ: 12 (25) cycles, 200ns (416ns) @ 60MHz

First Vectored IRQ (assuming no FIQ pending): 26 (39) cycles, 433ns (650ns) @ 60MHz

Default IRQ Vector (assuming no other IRQ pending):

42 (55) cycles, 700ns (916ns) @ 60MHz

VIC Interrupt Latency

Page 242: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1. Memory Addressing

2. System Control Block

3. Memory Accelerator Module (MAM)

4. General Purpose I/O / Pin Connect Block

5. Vectored Interrupt Controller

6. Integrated PeripheralsTimer 0 / Timer 1, UART 0 / UART 1, I²C, SPI, PWM, RTC, Watchdog

Page 243: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

RTC

Page 244: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Clock Divider(prescaler)

Clockgenerator

AlarmRegisters

TimeCounters Comparators

Interrupt Generator

PCLK

The Counter Increment can

cause an interrupt

Real Time Clock

RTCoscillator

MUX

Only forLPC213x,4x

LPC23,LPC24

Page 245: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Real Time Clock

Full Clock/Calendar function with alarms– generates its own 32.768 kHz reference clock from any crystal

frequency

– counts seconds, minutes, hours, day of month, month, year, day of week and day of year

– can generate an interrupt or set an alarm flag for any combination of the counters

Page 246: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Power consumption of RTC (LPC213x)

around 80 µARunningActive (pclk=15MHz)

20-30 µARunning from Vbat

Power down

20-30µAPower downPower down

Current consumption from

Vbat

RTCCore

Page 247: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IAP programming

Page 248: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

4 ways of programming the LPC2000 Flash

In-System Programming (ISP via NXP Boot Loader, UART0)

In-Application Programming (IAP)

Parallel programmer

In-System Programming (through LPC HW macro cells/ and custom software protocol)

Page 249: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

FLASH MEMORY– ISP: In-System programming is programming or reprogramming the on-chip flash

memory, using the boot loader software and a serial port. This can be done when the part resides in the end-user board.

– IAP: In-Application programming is performing erase and write operation on the on-chip flash memory, as directed by the end-user application code.

– User-code security : Code read protection is enabled by programming the flash addresslocation 0x1FC (User flash sector 0) with value 0x87654321 (2271560481 Decimal).

Disabled:• JTAG debug port• External memory boot • Following ISP commands:

Read MemoryWrite to RAMGoCopy RAM to Flash

LPC213x Series Overview

Page 250: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ADC

Page 251: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

A/D ConverterFeatures

– 10 bit successive approximation analog to digital converter

– Multiplexed inputs• 4 pins (64-pin devices)

• 8 pins (144-pin devices)

– Power down mode

– Measurement range 0V ... 3V

– Minimum 10 bit conversion time: 2.44 µS

– Burst conversion mode for single or multiple inputs

– Optional conversion on transition on input pin or Timer Match signal

– Programmable divider to generate required 4.5MHz from VPB clock

Page 252: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

A/D Converter – Burst mode

CLKS: bit 17, 18, 19 of ADCR select the number of clocks used per conversion and the accuracy

– 000b: 11 clocks, 10 bits

– 001b: 10 clocks, 9 bits

– 010b: 9 clocks, 8 bits

– 011b: 8 clocks, 7 bits

– …

– 111b: 4 clocks, 3 bits

Page 253: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ADC LPC213X, LPC214X

Separate result register for each channel– Reduces the interrupt overhead by a factor of 8

Measurement range of 0 V to 3 V– Separate voltage pins for analogue 3V supply (V3A) and

analogue ground (VSSA)

Page 254: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ADC – Software Controlled ModeAll conversions are 10-bit and take 11 clocks

4.5Mhz Maximum Clock

Allows conversion to start on an external edge

Select Single ChannelADCR (7:0)

7 56 4 3 012

10-bit ADC(11 Clocks/Conv)

ADDR0

ADC Inputs

VSSAV3A

ADDR1

ADDR7

Page 255: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

ADC – Burst ModeResult accuracy and speed are programmable

Input selected by the SEL bits are scanned

Select Multiple ChannelsADCR (7:0)

n-bit ADC(n Clocks/Conv)

ADC Inputs

1 - 8Input Scan

(SEL Bits)

ADC Clock(CLKS Bits)

ADDR0 ADDR1 ADDR7

Page 256: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

DAC

Page 257: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

DAC (10-bit)

This peripheral is available in the LPC2138 only. The D/A converter enables the LPC2138 to generate variable analog output.

• 10 bit digital to analog converter• Resistor string architecture• Buffered output• Power down mode• Selectable speed vs. power

LPC213x Series Overview

Page 258: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC213x DAC

Digital-to-Analog Converter (DAC)– 10-bit resolution DAC with a buffered output

• Last output value is held as long as DAC is on– Output from Zero Volt to Reference Voltage

• In 1024 steps– Selectable Conversion speed vs. power

• Settling time 1us, up to 350uA• Settling time 2.5us, up to 700uA

– Selective power down

Page 259: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On Index Hands-On

1. Tools Setup

2. Oscillator / PLL / MAM / GP I/O

3. ADC

4. Interrupts / Timer

5. UART / CAN

Page 260: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnProject: BlinkyADC

Load Project BlinkyADC

Build and Debug

Simulation– Use Logic Analyzer– Peripheral windows

• GPIO P1

• ADC -> modify voltage

Run on hardware– Verify change of AD values

with potentiometer

Page 261: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

UART

Page 262: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Serial Communication Interfaces

Two UARTs

I2C

SPI

CAN

SSP

10110101

10100101101101100111100000100000

10100101101101100

Page 263: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

UART0 / UART1

TxD0

RxD0

UART 0Interface

Maximum possible speed of the UART3.75 Mbits/sec

CTS

RTS

UART 1Interface

DTR

DCD

DTR

RI

TxD1

Modem Interface signals

RxD1

Page 264: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

UART0 / UART1

Register locations conform to ‘550’ industry standard UART

Built-in Baud Rate Generator– 16-bit baud rate generator clock divisor made from 2 8-bit divisor

registers: DLM (MSB), DLL (LSB)– Required baud rate: pclk / (16 x Divisor*)

(* if the Divisor is 0x0000, it is treated as 0x0001.)– Fractional baud rate generator (LPC214x, LPC2101-2-3)

Error Detection– Parity, Framing and Overrun Errors detected– Break Interrupt detection

Page 265: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

UART0 / UART1 (cont.)16 byte Receive and Transmit FIFOs

– Receive FIFO trigger points at 1, 4, 8, and 14 bytes– Break signal can be transmitted

Word Length Select: 5, 6, 7 or 8-bit charactersStop Bit Select: 1 or 2 stop bitsParity Select: Odd or Even paritySupports 6 modem control signals

• CTS, RTS, DCD, DSR, DTR and RI functions are selectable

• Note:

On 48-pin devices UART 0 has Tx and Rx pins only

Page 266: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

IIC

Page 267: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

I2C Bus Interface(s)

SDA

SCL

I2CInterface1

Maximum possible speed of the I2C

400Kbits/sec

SDA

SCL

I2CInterface2

2nd I2C interfaceon LPC213x

Page 268: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

I2C Bus

Fast-I2C compliant bus interface– configurable as Master, Slave, or both

– multi-master bus

– bi-directional data transfer between masters and slaves

– up to 400kb/s

– 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

– programmable clock rate

Page 269: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

SPI Interface

MISO

MOSI

SPICLK

SS

SPIInterface

Maximum possible speed of the SPI7.5 Mbits/sec

Page 270: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

SPI Bus

Compliant with Serial Peripheral Interface (SPI) specification

Combined SPI master and slave function

Maximum data bit rate of 1/8 of the peripheral clock rate

Programmable clock polarity and phase for data transmit/receive operations

No. of SPI channels:– 1 (48-pin devices)

– 2 (64/144-pin devices)

Page 271: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

SSP

Page 272: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Serial Synchronous Port (SSP) Interface

MISO1

MOSI1

SCK1

SSEL1

SSPInterface

Maximum possible speed of the SSP

30 Mbits/sec

Page 273: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

SSP Interface

Compatible with Motorola SPI, 4-wire TI SSI and National Semiconductor Microwire bus

Supports multiple slaves and master on the bus but at any point of time only one master and slave can communicate

8-Frame FIFO’s for both Transmit and Receive

Frame sizes can be from 4 bits to 16 bits

Page 274: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB

Page 275: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB 2.0

Since USB is a standard doesn’t that make all microcontrollers with USB the same?

NO!!

Architectural choices and implementation details make a big difference in performance and ease of use.

The LPC2148 is a high performance USB device.

Page 276: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2148 key high performance USB features

Flexible endpoint architecture– Supports all 32 USB endpoints

Large data FIFO– Can double buffer full isochronous packets

Flexible DMA capability– USB Buffer is present on the AHB bus

Page 277: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Introduction to USB

An Auto-configuring Plug-and-play Serial Bus

Single Master, Half-duplex, Time-multiplexed bus; Tiered Star topology

All data communication is initiated and regulated by the Master; peer-to-peer not allowed

USB 2.0 is the latest version of USB (downward compatible)

Monitor

Speaker

Pen Mouse

Kbd

Mic

Phone

PCPC

HUB

HUB

HOST/HUB

Monitor

Speaker

Pen Mouse

Kbd

Mic

Phone

PCPC

HUB

HUB

HOST/HUB

Page 278: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Supplements the 2.0 specificationConnects peripherals directly to each otherNew mini-A connector and mini-AB receptacle

Original USB 2.0 specification released on April 27, 2000480 Mbps bus High-speed (480 Mbps)Full-speed (12 Mbps)Low-speed (1.5 Mbps)Backward compatible with USB 1.1New mini-B connector

Approved on 11/23/99 by the USB Core team12 Mbps busFull-speed (12 Mbps)Low-speed (1.5 Mbps)Standard A connector and standard B connector

OTGUSB 2.0USB 1.1

USB- A Brief History

Page 279: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB Connections and Terminations

D-

D+

R1

R1 = 15K ohm±5%R2 = 1.5K ohm±5%

Twisted Pair Shielded

Untwisted, Unshielded

F.S./L.S. USBTransceiver

(45 ohms Outputs)

Host or Hub Port

ZO = 90 ohms±15%5 Meters Max.

F.S. USBTransceiver

(45 ohms Outputs)

Hub Port 0or

Full Speed Function

R1

R2

D-

D+

R1

R1 = 15K ohms±5%R2 = 1.5K ohms±5%

F.S./L.S. USBTransceiver

(45ohms Outputs)

Host or Hub Port

3 Meters Max.

L.S. USBTransceiver

(45 ohms Outputs)

Low Speed FunctionR1

R2

D+

D-

D+

D-

sb.org www.usb.org www.usb.org www.usb.org www.usb.org www.us

Page 280: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Device Layers

Function– Represents capability delivered by

the device, The primary „usage“ function,like mouse, audio output, printer, hub, etc.

USB Logical Device– Defines common view of device by host– Manages high-level protocol– Typically controlled by system software– May have multiple functions with multiple endpoints

USB Bus Interface– Physical interface to wire– Manages low-level protocol

USB LogicalDevice

USB LogicalUSB LogicalDeviceDevice

FunctionFunction

USB BusUSB BusInterfaceInterface

Page 281: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Device Abstractions

End Point– Ultimate data source or sink at the device end– Unique address, unidirectional, transfer characteristics– Each endpoint is unidirectional and has a transfer type associated with its

peripheral

Pipe– Association of endpoint with host SW owner

Interface– Collection of pipes– Map to a capability– Owned by exactly 1 software client– More that 1 interface can be defined in a device

Page 282: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Endpoints

Up to 32 (16 pairs) endpoints can reside within a device– All USB transfers are targeted to/from a device endpoint– An endpoint is a buffer used to transmit or receive data

Each endpoint has a direction and an address– The direction is from the host’s perspective

• OUT transactions are to the device• IN transactions are from the device

A Control endpoint contains an IN and OUT endpoint– Endpoint 0 is always the Control endpoint

Page 283: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Interfaces

Made of 0 or more pipes

Has a client owner– Accesses individual pipes– Shares default pipe

More dynamically configured than devices

Page 284: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pipes

Connect host memory buffer to endpoint FIFO

Stream Type– No USB imposed data format– Unidirectional

Message Type– USB imposed data format– Bidirectional

Page 285: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Detailed Host / Device View

SIESIE

HostController

USB BusInterface

USB BusInterface

USB Systemmanages devices

USB Devicea collection ofendpoints

DeviceHost

USB Wire

Buffers

Data

Transactions

Data PerEndpoint

InterfaceSpecific

Functiona collection ofInterfaces

Default Pipeto Endpoint Zero

Pipe Bundleto an interface

Pipe, represents connection abstraction between two horizontal layersData transport mechanism

USB-relevant format of transported data

No USBFormat

Unspecified

USB FramedData

USBFramedData

No USBFormat

Interface x

EndpointZero

Client SWmanages an interface

Endpoint 0- Required, shared- Configuration access- Capability control

Page 286: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Client Software <-> Function

ClientSoftware

ClientClientSoftwareSoftware

InterfaceInterfaceInterface

USB DeviceUSB DeviceUSB Device

HostHostHost

EndpointsEndpointsEndpoints

Data FlowsData FlowsData Flows

BuffersBuffersBuffers

PipesPipesPipes

Page 287: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Communications Layers

Physical

Packets

Transactions– 3 phases (token, data, handshake)– Token phase has token packet sent by host

• Always present

• Packet ID (PID) identifies transaction type– Other phases have 0 or more packets

Transfers

Page 288: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Transfers to Transactions

ScheduleExecutorScheduleScheduleExecutorExecutor

TransactionExecutor

TransactionTransactionExecutorExecutor

PipePipe

TransactionListTransactionTransactionListList

Universal Serial BusUniversal Serial Bus

InterfaceInterfaceInterface InterfaceInterfaceInterface InterfaceInterfaceInterface

ServiceDescriptionServiceServiceDescriptionDescriptionUser

ParamsUserUser

ParamsParams

Requirements,Requirements,LimitationsLimitations

DeviceDescriptionDeviceDeviceDescriptionDescription

PipePipe PipePipePipePipe

PipePipe

PipePipe Client SWClient SW

USB System SWand

Host Controller

USB System SWand

Host Controller

DeviceDriver

DeviceDeviceDriverDriver

DeviceDriver

DeviceDeviceDriverDriverDevice

DriverDeviceDeviceDriverDriver

TokenTokenTokenTokenTokenTokenTokenTokenToken

Transfer ManagerTransfer ManagerTransfer Manager

Page 289: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB Protocol – Breakdown

Transfer

Handshake PacketData PacketToken Packet

• PID – Packet IDentifier (16 types)• Body – Depended on Packet type • CRC – Cyclical Redundancy Check

used for error checkingCRCBodyPID

TransactionTransaction Transaction Types• OUT• IN• SOF (Start of Frame)• SETUP

Transfer Types• Control• Interrupt• Bulk• Isochronous

Page 290: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Frames

Full / Low Speed Frame Size (1 ms)

1 ms1 ms 1 ms

ControlIsochronousInterruptBulk

SOF packets marks each frame tick

Page 291: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Data Transfer Types Comparison

Usage Control Interrupt Bulk Isochronous

Max Data bytes/msec in low-speed mode

24 bytes (three 8-byte transactions)

0.8 bytes (8-bytes per 10 msec) no support no support

Max Data bytes/msec in full-speed mode

832 (thirteen 64-byte transactions/frame)

64 (one 64-byte transaction/frame)

1216 (nineteen 64-byte transactions/frame)

1023 (one 1023-byte transaction/frame)

Error Correction yes yes yes noGuarantee rate of delivery no no no yesGuranteed time between transfers no yes no yesTypical uses Configuration Mouse, keyboard Printer, scanner Audio, video

Note:frame = 1msec @FS

Page 292: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB Frame Model

BULK

BULK

BULK

BULK

BULK

BULK

BULK

BULK

TxVo

ice

TxLi

ne

Inte

rrup

t, C

ontr

ol,

Low

Spe

ed

Frame = 1ms

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Stereo Audio

Rx

Voic

e

Rx

Line

Slot

SOF (not to scale)

Low SpeedLow Speed

BULK

BULK

Scan

ner

Page 293: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Transactions

Transactions are always initiated by the Host and therefore thought of from the Host’s perspective

A Transaction consist of multiple packets and begin when the host sends one of four Token Packets

– OUT – notifies the DC that data is being send “out” from the Host– IN – requests that DC send data “in” to the Host– SOF – signals the “Start of Frame”– SOF – signals the “Start of Frame”

A Data Packet follows the token packet

The Transaction ends with Handshake Packet to report the Status of the Transaction.

Page 294: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Packet Formats

PID ADDR ENDP CRC58 bits 7 bits 4 bits 5 bits

Token Packet

PID PAYLOAD CRC168 bits 0 – 1023 bytes 16 bits

Data Packet

PID FRAME NUMBER CRC58 bits 11 bits 5 bits

SOF Packet

PIDHandshake Packet8 bits

Page 295: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Endpoints in LPC2148

Maximum of 32 (16 logical) endpoints

Selectable Double Buffering for Bulk and Isochronous Data Transfer

Any combinations of Endpoints allowed

Maximum buffer size supported for all endpoints types

Page 296: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB 2.0 in LPC2148

Fully Compliant with USB 2.0 Spec

Supports 32 physical endpoints

Scalable realization of Endpoints during run time

Double buffering supported for Bulk and Isochronous Endpoints

Supports DMA transfer on all non-control endpoints

Page 297: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

USB 2.0 in LPC2148

Supports Control, Bulk, Interrupt and Isochronous endpoints

Supports SoftConnect feature

Supports Good link LED indicator

Flexible clock architecture

Remote wakeup

Page 298: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2148 USB Block Diagram

RegisterInterface

Serial Interface Engine(SIE)

Endpoint ramaccess control

Receivers

D+

D-TX DForce SE0

OE

RX D

ATXPADSUSB Logic

2K FIFO

8K AHBMemory

DMAEngine

AHB Bus

VPB Bus

Using the DMA, the USB Logic has direct

access to memory

Page 299: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Transfer Modes

Slave Transfer Mode

DMA Transfer Mode

Page 300: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Slave Mode Transfer

USB Block acts like a slave

It can only issue interrupts to the CPU

Control EP uses this mode of transfer exclusively

Page 301: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

DMA Mode Transfer

USB Block acts like a Master

Will transfer data directly from the 8K SRAM to the EP_RAM and vice versa.

For Isochronous transfers, the DMA transfer is synchronized to the frame interrupt

Page 302: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Soft Connect and Good Link™ LED

Soft Connect– Can connect/re-connect to the host through software– No need to unplug and plug the cable back again

Good Link™ LED– Needs a shared GPIO pin– Shows indication on a LED if connection is established

Page 303: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2148 connections

LPC2148

ATXPad

D-

D+

Vusb supply

Good Link

Vusb bus sense

Soft connect_n

D-

D+

33

33

1.5k

Logic level pchannel FET

Philips BSH203

3.3 volt system power

Page 304: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2148 Clock Architecture

MainPLLXTAL

VPBdivider

cclk

pclk

USBPLL

VPB clock must be 16 MHzminimum for the USB vpb interface

LPC2148 clocks

USB clk

Page 305: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

CAN

Page 306: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Host CPU

Status/ControlRegisters

CANProtocol

Controller

HostInter-face

CANBus

Bus

Inte

rface

NXP LPC2000 Series CAN ControllerExtended Full CAN Controller

2 or 4 CAN interfaces

3 priority controlled transmit buffers per channel

Global filter and buffer system with up to 1024 filters

CANProtocol

Controller

CANBus

TransmitBuffer 3

TransmitBuffer 2

TransmitBuffer 1

Bus

Inte

rface

TransmitBuffer 3

TransmitBuffer 2

TransmitBuffer 1

Global AcceptanceFilter Table with up

to 1024 filters;buffered in

“Full CAN” mode

Page 307: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC CAN controller and SJA1000

Each CAN Controller has a register structure similar to the NXP SJA1000 and the PeliCANLibrary block, but the 8-bit registers of those devices have been combined in 32 bit words to allow simultaneous access in the ARM environment. The main operational difference is that the recognition of received Identifiers, known in CAN terminology as Acceptance Filtering, has been removed from the CAN controllers and centralized in a global Acceptance Filter.

Page 308: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

1000500

105

Bit Rate[kbps]

40 100 1000 10,000

CAN Bus Length [m]

20

50

200

100

0 10 200

Bus lines assumed to be

an electrical medium

(e.g.twisted pair)

CAN Bus Baud Rate and Bus LengthUp to 1Mbps @ 40m bus length (120 feet)

OR

Up to 1000m bus length (3000 feet) @ 50 kbps

Page 309: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

CAN Bus (1)

CAN (Controller Area Network) features– Serial communications protocol

– Efficiently supports distributed real-time control

– Very high level of security

– Application domain: high speed networks to low cost multiplex wiring

LPC2xxx with CAN have 2 or 4 CAN channels– Can be used as gateway, switch or router among CAN buses

– Industrial or automotive applications

Page 310: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

CAN Bus (2)

Data rates to 1 Mbit/s on each bus

32-bit register and RAM access

Compatible with CAN specification 2.0B, ISO 11898-1

Global Acceptance Filter recognizes 11- and 29-bit Rx Identifiers for all CAN buses

Acceptance Filter can provide FullCAN-style automatic reception for selected Standard Identifiers

No. of CAN channels– 2 on LPC2119, LPC2129, LPC2290, LPC2292

– 4 on LPC2194, LPC2294

Page 311: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

CAN Bus (3)

Acceptance Filtering

• Recognition of received Identifiers (Acceptance Filtering) removed from CAN controllers - now centralized in a global Acceptance Filter

• In a 2KB RAM (512 x 32) software maintains 1 ... 5 tables of Identifiers RAM can hold up to 1024 Standard Identifiers or 512 Extended Identifiers, or a mixture of both types

Page 312: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

•TIMERS•PWMs•RTC•WATCH-DOG

Page 313: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Timer 0 and 1

32-bit Timer

32-bit Capture Registers and Capture Pins– Four on each timer (48-pin devices three on Timer 0 and four on Timer 1)

– Capture event can optionally trigger an interrupt

32-bit Match Registers and Match Pins– Four on each timer (48-pin devices three on Timer 0 and four on Timer 1)

– Interrupt, timer reset or timer halt on match

– Match output can toggle, go high, go low or do nothing

Page 314: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Timer Capture

Capture Control RegisterControl

Capture Register 0

Capture Register 1

Capture Register 2

Capture Register 3*

Load 32-bit Timer/Counter

Interrupt

Timer Control Register

RESET

ENA

BLE

Capture Input 0

Capture Input 1

Capture Input 2

Interrupt Register

Capture Input 3*

32-bit Pre-Scaler

PCLK*: not available in 48-pin devices

Page 315: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Timer Compare

Control

Match Register 0

Match Register 1

Match Register 2

32-bit Pre-Scaler

PCLK

Timer Control Register

RESET

ENA

BLE

Match Output 0

Match Output 1

Match Output 2

====

32-bit Timer/Counter

Match Register 3

Match Output 3*

Interrupt

External Match Register

Interrupt Register

Match Control Register

Timer=MR0

Timer=MR1

Timer=MR2

Timer=MR3

*: not available in 48-pin devices

Page 316: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Pulse Width Modulator

Dedicated 32-bit PWM timer– similar functionality to Timer0 / Timer1

Three additional match registers for a total of 7– all PWM outputs have the same rate, which is programmable

– allows up to 6 single edge controlled or 3 double edge controlled PWM outputs in any combination

– single edge controlled PWM outputs all go high at the beginning of each cycle and low at a programmed time

– double edge controlled PWM outputs can be programmed to be either positive going or negative going pulses, with edges at any location in the cycle

Page 317: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Shadow Register 0

Match Register 0

Latch Enable 0Match

=

Control

R

S Q

EN

PWM1

R

S Q

EN

PWM2

=

=

Enable

Enable

R

S Q

EN

PWM6

= Enable

Interrupt

32-bit Timer Counter

32-bit Pre-Scaler

PCLK

Pulse Width Modulator

Page 318: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Single-Edge Controlled PWM

PWM outputs all go high at the beginning of each cycle and go low on a Match

PWMx

PWMy

PWMz

Compare (Match) Value x

Compare (Match) Value yCompare (Match) Value z

Timer

Value

Match Register 0 Value

0000 0000h

Page 319: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Double-Edge Controlled PWM

Double edge controlled PWM outputs can have either edge occur at any position within a cycle

PWM2

PWM4

PWM5

MR1=41, MR2=78 (PWM2)MR3=53, MR4=27 (PWM4)

MR5=65 (PWM5)

Timer

Value0000 0000h

Match Register 0 Value (100)(PWM Period)

(single-edge)

Page 320: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-On Index Hands-On

1. Tools Setup

2. Oscillator / PLL / MAM / GP I/O

3. ADC

4. Interrupts / Timer

5. UART / CAN

Page 321: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Hands-OnProject: SerialRTC

Load Project SerialRTC

Build and Debug

Simulation– Use Serial Window #2

Target Hardware– Use terminal program

set to 9600bps

Page 322: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Watchdog Timer

Once activated, the Watchdog will reset the entire chip if it isnot fed regularly

Feed is accomplished by a specific sequence of data writes

Watchdog flag allows software to tell that a watchdog reset has occurred

Selectable overflow time (µs ... minutes)

Debug Mode generates an interrupt instead of a reset

Secure: watchdog cannot be turned off once it is enabled

Watchdog Timer value can be read in one cycle

Page 323: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Watchdog Timer

32-bit Down Counter

WDFEED

Current Timer Count(WDTC)

WDEN WDTOF WDINT WDRESET

Sticky bits!(cleared by WDT underflow or ext.

reset)

WDMOD Register

/4PCLK

UN

DER

FLO

W

RESET

INTERRUPT

Watchdog TimerConstant

Page 324: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP LPC2300/2400Selected Peripherals

Clock tree

Page 325: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Clocking (only for LPC23/24 families)

MainOscillator

RTCOscillator

PLL

WatchdogTimer

Real TimeClock

ARM7TDMI-S

APBPeripherals

USB Block

EthernetBlock

Other AHBPeripherals

InternalR/C

Oscillator

systemclock select

BypassSynchro-

nizer

watchdogclock select

RTC clockselect

RTCPrescaler

cclk

ExternalEthernet

PHY

25 or50 MHz

pclk

CPUClock

Divider

USBClock

Divider

usbclk(48 MHz)

wdclk

rtcclk

PerpipheralClock

Generator

pllclk

4MHz

1-24MHz

32.768kHz

Fcco

Page 326: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PLL details on LPC23/24

M = 1…32768Fosc: 32Khz – 50Mhz Fcco = 275-550 Mhz

N = 1..256

1..128

CCK or CCLK/2 or CCLK/4

Page 327: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC23/24 clocking

The LPC2300 has three clock sources– External oscillator 1Mhz – 24 Mhz– External watch crystal 32.756 Khz– Internal RC oscillator approx 4 Mhz

The LPC2300 has three clock sources Fcco = (2 x M x Fin)/N– Were 32Khz < Fin < 50Mhz– Were 275Mhz < Fcco < 550Mhz– Also Fcco must be kept to a minimum to reduce power consumption

– The USB peripheral requires a precise 48Mhz clock source

Page 328: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP LPC2300/2400Selected Peripherals

LPC2300 Peripherals – SD/MMC

Page 329: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2300 Peripherals – SD/MMC

Conformance to Multimedia Card Specification v2.11.

Conformance to Secure Digital Memory Card Physical Layer Specification, v0.96.

Use as a multimedia card bus or a secure digital memory card bushost. It can be connected to several multimedia cards, or a single secure digital memory card.

DMA supported through the General Purpose DMA Controller.

Page 330: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

LPC2300 Peripherals – SD/MMC

Multimedia Card Interface

AdapterRegisters

ControlUnit

FIFO

CommandPath

Data Path

APB Bus APBInterface

MCICMD

MCICLK

MCIDATA [3:0]

MCIPWR

Page 331: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 331

LPC2300 Peripherals – BASIC TRAINING SD/MMC/SDIO

Page 332: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 332

LPC2300 Peripherals – SD/MMCSD/MMC memory card interface (LPC2368 & LPC2378)

Conformance to Multimedia Card Specification v2.11.Conformance to Secure Digital Memory Card Physical Layer Specification, v0.96.Use as a multimedia card bus or a secure digital memory card bus host. It can be connected to several (~4 based on I/O pin loading) multimedia cards, or a single secure digital memory card.DMA supported through the General Purpose DMA Controller.

OR

Page 333: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL 333

LPC2300 Peripherals – SD/MMC BASIC TRAINING

SD “Secure Digital” (LPC23xx = 25Mbit/s)– Developed as improvement on MMC– Up to 128 Gbyte per card– Low speed up to 400Kbit/s– High speed up to 100Mbit/s

MMC “Multi-Media Card” (LPC23xx – 20Mbit/s)– 1, 4, or 8 bits per interface– Up to 8Gbyte per card– Slightly thinner than SD cards– Pin-compatible with SD cards

SDIO – small devices that use the SD physical format for other functions beyond storage

– GPS, WiFi, BlueTooth, Modems, FM Radio, RFID, Barcode, etc., etc.

– Additional interconnect functionality required– May require interrupt line (SD interface does not provide)

http://en.wikipedia.org/wiki/Secure_Digital_card

Page 334: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

I2S Features

The I2S input and output can each operate independently in both master and slave mode.

Capable of handling 8, 16, and 32 bit word sizes.

Mono and stereo audio data supported.

The sampling frequency can range (in practice) from 16-48 kHz.

Word Select period in master mode is configurable (separately for I2S input and I2S output).

Transmit and receive functions each have an 8 byte data FIFO.

Programmable FIFO level interrupts.

Two DMA requests, controlled by programmable FIFO levels.

Controls include reset, stop and mute options separately for I2S input and I2S output.

Page 335: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

I2S Diagrams

Transmitter(master)

Controller(master)

Receiver(slave)

SCK: serial clockWS: word selectSD: serial data

Transmitter(slave)

Receiver(master)

SCK: serial clockWS: word selectSD: serial data

Transmitter(slave)

Receiver(slave)

SCKWSSD

SCK

WS

SD MSB LSB MSB

Word nLeft Channel

Word n+1Right Channel

Word n-1Right Channel

Page 336: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

NXP LPC2300/2400Ethernet

Page 337: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller, ARM PrimeCellTM

SDR SDRAM memory support.Asynchronous static device support including RAM, ROM, and Flash.Low transaction latency.Read and write buffers reduce latency and improve performance.8-bit, 16-bit, and 32-bit wide static memory support.Static memory features include:

– Asynchronous page mode read.– Programmable wait states.– Bus turnaround delay.– Output enable, and write enable delays.– Extended wait.

Four chip selects each for SDRAM and static devices.Power-saving modes dynamically control CKE and CLKOUT.Support for dynamic memory self-refresh mode.Supports 2K, 4K, and 8K row address synchronous memory parts.

– Typically 512, 256, and 128 MB parts with 4, 8, 16, or 32 bits per device.

Separate reset domains allow for auto-refresh through chip reset.

Page 338: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

External Memory Controller Block Diagram

A[23:0]

D[31:0]

WEn

OEn

BLSn[3:0]

CSn[3:0]

DYCSn[3:0]

CASn

RASn

CLKOUT[1:0]

CKE[3:0]

DQM[3:0]

StaticMemorySignals

DynamicMemorySignals

SharedSignals

PadInterfaceMemory

controllerstate

machine

DataBuffers

AHB slaveregisterinterface

AHB slavememoryinterface

EMC

AH

B B

us

Page 339: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Advanced Vectored Interrupt Controller,

Standard ARM PrimeCellTM

Mapped to AHB address space for fast access.

Supports 32 vectored IRQ interrupts.

16 programmable interrupt priority levels.

Fixed hardware priority within each programmable priority level.

Any input can be assigned as an FIQ interrupt.

Software interrupt generation.

Page 340: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Vectored Interrupt ControllerIntEnableClear

[31:0]SoftIntClear

[31:0]

IntEnable[31:0]

SoftInt[31:0]

VICINTSOURCE

[31:0]

IntSelect[31:0]

RawIntr[31:0]

FIQStatus[31:0]

IRQStatus[31:0]

FIQStatus[31:0]

FIQ

Interrupt Request, Masking, and Selection

VectPriority0[4:0]

PriorityMasking

Logic

VectAddr0[31:0]

IRQStatus[0]

SWPriorityMask [0]HWPriorityMask [0]

VectIRQ0

Vect Addr0[31:0]

D Q D Q

Vectored Interrupt 0

PriorityLogic

VectAddr[31:0]

Status Registers and FIQ Generation

VectAddrOut

IRQStatus[1]

VectIRQ1

Vect Addr1[31:0]

Vectored Interrupt 1

IRQStatus[31]

VectIRQ31

Vect Addr31[31:0]

Vectored Interrupt 31

IRQ

Vector Selectfor highest priorityinterrupt

IRQStatus[31:0]

SWPriorityMask[31:0]

HWPriorityMask [31:0]

SWPriorityMask [31:0]

Prioritization and Vector Generation

Page 341: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

DMA (1)

Two DMA channels, each with a four-word FIFO.

16 peripheral DMA request lines. Some of these are connected to peripheral functions that support DMA: the SD/MMC, two SSP, and I2S interfaces.

One 32-bit AHB bus master interface.

Single DMA and burst DMA request signals. Each peripheral connected to the GPDMA can assert either a burst DMA request or a single DMA request.

Memory-to-memory, memory-to-peripheral, peripheral-to-memory, and peripheral-to-peripheral transfers are supported.

Page 342: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

DMA (2)

Scatter or gather DMA is supported through the use of linked lists.

Hardware DMA channel priority: channel 0 is higher priority than channel 1.

Incrementing or non-incrementing addressing for source and destination.

Programmable DMA burst size.

8, 16, and 32-bit wide transactions.

Big-endian and little-endian support. Little-endian is the default.

An interrupt can be generated on a DMA completion or error.

Page 343: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

GPIO Interrupts

APBBus

Rising EdgeEnable Register(GPIOIntEnR)

APBBus

D Q

R

D Q

R

1

1

Write 1 toGPIOIntClr

GPIOIntStatR Register

(Read Only)

Falling EdgeEnable Register(GPIOIntEnF)

GPIOIntStatusRegister

GPIOIntStatFRegister

(Read Only)

GPIOWake(from IntWake

Register)

Replicated for eachrelated GPIO pin

OtherPin Ints

PinInt

Replicated for eachrelated GPIO port

GPIOPin

VICInterrupt

Other Port Intsplus one existing

interrupt

Wakeup

Other PortWakeups

PortWakeup

Port Int

Once per chip

Page 344: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet MAC – System Connections

InternalSRAM

Controller

64 KBSRAM

InternalFlash

Controller

512 KBFlash

ARM7TDMI-S

Emul

atio

n Tr

ace

Mod

ule

Test/Debug Interface

ARM7 Local Bus

AHBBridge

AHBBridgeAHB2 AHB1

EthernetMAC with

DMA

16 KBSRAM

GP DMAController

VectoredInterrupt

Controller

16 KBSRAM

USB with4KB RAM

& DMA

ExternalMemory

Controller

AHB toAPB Bridge

APBDivider

TRS

T

TDO

TMS

TCK

TDI

MIIor

RMII

RS

T

Xtal

1

Xtal

2

SystemFunctions

Internal RCOscillator

PLL

SystemClock

APB

AHB toAHB Bridge

MasterPort

SlavePort

A[23:0],D[31:0],

etc.

D+, D-,etc.

Trac

eS

igna

ls

Page 345: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Block Diagram

RegisterInterface

(AHB slave)

DMAInterface

(AHB master)

Bus

Inte

rface

ReceiveDMA

TransmitDMA

ReceiveBuffer

ReceiveFilter

TransmitRetry

TransmitFlow

Control

Eth

erne

t MA

C

RM

II ad

apte

r

MII orRMII

MIIM

HostRegisters

AH

B B

us

Ethernet Block

MII

RMII

Eth

erne

t PH

Y

Bus

Inte

rface

Page 346: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Basic Features

General:– 10/100MBps Ethernet MAC– PHY interface, including MII and RMII (on LPC2300 RMII only)

• List of recommended devices in datasheet

– Internal scatter/gather DMA controller – Semi-dedicated 16K byte on-chip RAM– Can access other memory areas (including off-chip)

except the Flash and main SRAM

Page 347: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Features: Standards

Ethernet standards supported:– Supports 10 or 100 Mbps PHY devices including 10Base-T, 100Base-TX,

100 Base-FX, and 100Base-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.– VLAN frame support.

Page 348: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Features: Memory Transfers

Memory management:– Independent transmit and receive buffers memory mapped to shared

SRAM.– DMA managers with scatter/gather DMA and arrays of frame descriptors.– Memory traffic optimized by buffering and pre-fetching.

Page 349: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Advanced Features

Receive filtering.

Multicast and broadcast frame support for both transmit and receive.

Optional automatic FCS insertion (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 backoff 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.

Page 350: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Ethernet Features: Physical Layer

Physical interface:– Attachment of external PHY chip through standard Media Independent

Interface (MII) or standard Reduced MII (RMII) interface, software selectable.

– PHY register access is available via the Media Independent Interface Management (MIIM) interface.

NOTE: LPC23xx has RMII only

Page 351: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PHY Interface – MIIM(Media Independent Interface Management)

Combined data input, data output, and data output enable. The protocol defines how and when the direction changes.

1MDIO

2Total:

Clock

Function1

# of PinsMDC

MIIM Pin

Page 352: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PHY Interface – MII(Media Independent Interface)

Receiver clock1RX_CLK

Receive error1RX_ER

16Total:

Carrier sense1CRS

Receive data valid1RX_DV

Receive data input4RXD[3:0]

Transmit data output4TXD[3:0]

Transmit error1TX_ER

Transmitter clock1TX_CLK

Collision1COL

Transmit data enable

Function1

# of PinsTX_EN

MII Pin

Page 353: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

PHY Interface – RMII(Reduced Media Independent Interface)

Receive error (optional, depending on application)1RX_ER

Receive data input2RXD[1:0]

Reference clock input1REF_CLK

8Total:

Carrier sense / Data valid1CRS_DV

Transmit data output2TXD[1:0]

Transmit data enable

Function1

# of PinsTX_EN

RMII Pin

Page 354: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

CAN Interface incompatibilities within LPC2000 derivatives

To conserve power, CAN peripherals are powered down after reset on the latest derivatives

– Code must manually enable the power for the CAN interfaces used

When using the filter tables, the numbering of CAN interfaces might vary– In some implementations CAN interfaces are numbered 1 and 2– In some implementations CAN interfaces are numbered 0 and 1

Page 355: 1-day-arm-20071088

Subject/Department, Author, MMMM dd, yyyy

CONFIDENTIAL

Other Peripherals

USB with Device, Host, and OTG.

UARTs (4), one with modem control, one with IrDA.

CAN (2 channels).

SD / MMC Card Interface.

SPI (1) & SSP (2). SPI shares pins with SSP0.

Timers (4), each with capture/compare.

Watchdog Timer.

DAC output.

Page 356: 1-day-arm-20071088

Thank You!