Corso LPC2103

20
LPC2103 Microprocessori e Microcontrollori Corso di progettazione su SoC ARM S 2 DEL – Solid State and Diamond Electronics Lab. ROMA TRE Università degli Studi 1/20 Microprocessori e Microcontrollori Corso di progettazione su Corso di progettazione su SoC SoC ARM ARM Prof. N. Masarone Lab.: St. 132 (S 2 DEL – Solid State and Diamond Electronics Lab.) e.mail: [email protected] LPC2103

description

Microprocessori e microcontrolloriCorso di progettazione su SoC ARM

Transcript of Corso LPC2103

Page 1: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

1/20

Microprocessori e Microcontrollori Corso di progettazione su Corso di progettazione su SoCSoC ARM ARM

Prof. N. MasaroneLab.: St. 132 (S2DEL – Solid State and Diamond Electronics Lab.)e.mail: [email protected]

LPC2103

Page 2: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

2/20

Indirizzo webhttp://www.standardics.nxp.com/products/lpc2000/lpc2101.lpc2102.lpc2103/

Documenti LPC2103●flyer (lpc210x.pdf): presenta brevemente il dispositivo;●data sheet (lpc2101.lpc2102.lpc2103.pdf): presenta anche i dati elettrici;●user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf): per il programmatore●errata sheet (errata.lpc2103.pdf): descrive gli errori presenti nella documentazione

Riferimenti generali per lo studio del µC LPC2103

© NXP B.V. 2007

Page 3: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

3/20

Introduzione al µC LPC2103Flyer (lpc210x.pdf), tuttoData sheet (lpc2101.lpc2102.lpc2103.pdf), tuttoDocumento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 1

© NXP B.V. 2007

Page 4: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

4/20

La memoria di sistema nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), cap. 2

© NXP B.V. 2007

Page 5: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

5/20

Mappa dei pin nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 6

© NXP B.V. 2007

Page 6: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

6/20

Impostazione dei pin nel µC LPC2103

Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 7

© NXP B.V. 2007

Page 7: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

7/20

Porte input/output nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 8

© NXP B.V. 2007

Page 8: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

8/20

Timer 32-bit e 16-bit nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 15 e 16

© NXP B.V. 2007

Page 9: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

9/20

TIMER0_TCR = 0x02; //stop and reset timerTIMER0_PR = 0x00; //set prescaler to zero

PINSEL0 |= 0x00000800; // set P0.5 as MAT0.1

TIMER0_MR3 = 1000 * ((FOSC * PLL_MUL)/ (1000000 * PBSD)); // set PWM period in usTIMER0_MCR = 0x00000400; //reset timer on match i.e. after one PWM period TIMER0_PWMCON = 0x00000002; // PWM mode enabled for MAT0.1 <--> P0.5 TIMER0_MR1 = 500 * ((FOSC * PLL_MUL)/ (1000000 * PBSD)); // set PWM low level time in us TIMER0_TCR = 0x01; //start timer

Esempio di gestione PWM su Timer0, canale 1

void delayMs(unsigned short delayInMs){ // setup timer #1 for delay TIMER1_TCR = 0x02; //stop and reset timer TIMER1_PR = 0x00; //set prescaler to zero TIMER1_MR0 = delayInMs * ((FOSC * PLL_MUL)/ (1000 * PBSD)); TIMER1_IR = 0xff; //reset all interrupt flags TIMER1_MCR = 0x04; //stop timer on match TIMER1_TCR = 0x01; //start timer //wait until delay time has elapsed while (TIMER1_TCR & 0x01);}

Esempio di funzione ritardo su Timer1, canale 0

(user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 15 e 16

Page 10: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

10/20

Convertitore Analogico Digitale (ADC) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 14

data sheet (lpc2101.lpc2102.lpc2103.pdf)

© NXP B.V. 2007

Page 11: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

11/20

Vectored Interrupt Controller (VIC PL190)Indirizzo web: http://infocenter.arm.com/help/index.jspDocumento ARM: technical reference manual (DDI0181.pdf)Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 4

© NXP B.V. 2007

Page 12: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

12/20

/***************************************************************************** * Description: * IRQ setting function: * VIC_Ch: hardware IRQ line [0..31] * pISR: ISR name * IRQ_slot: IRQ slot [0..15] 0 is highest priority, 15 is the lowest ****************************************************************************/void enIRQ(int VIC_Ch, void(*pISR)(), int IRQ_slot){

VICIntSelect &= ~(1<<VIC_Ch); //VIC_Ch interrupt is assigned to IRQ (not FIQ)VICVectAddr_n(IRQ_slot) = (unsigned long)(*pISR);//register ISR addressVICVectCntl_n(IRQ_slot) = 32+VIC_Ch; //enable vector interrupt for VIC_ChVICIntEnable |= 1<<VIC_Ch; //enable VIC_Ch interrupt

}

Esempio di gestione del VIC in linguaggio C

enIRQ(EINT0_VIC_Ch, eint0ISR, 12); //enIRQ(14, eint0ISR, 12)

Definizione di funzione

Chiamata di funzione

#define EINT0_VIC_Ch 14#define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C)) /* Interrupt select reg. */#define VICVectAddr_n(N) (*((volatile unsigned long *) (0xFFFFF100 + 0x04*N))) /*Vector Address n reg.*/#define VICVectCntl_n(N) (*((volatile unsigned long *) (0xFFFFF200 + 0x04*N))) /*Vector Control n reg.*/#define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010)) /* Interrupt enable reg. */

VICIntSelect &= ~100000000000000 //VIC_14 (EINT0) interrupt is assigned to IRQ (not FIQ)VICVectAddr12 = eint0ISR //defines ISR address for VIC_14 (EINT0) interruptVICVectCntl12 = 32 + 14 //VIC_14 (EINT0) is in slot 12; slot 12 is on VICIntEnable = 100000000000000 //enables VIC_14 (EINT0) interrupt line

Valori registri VIC

Con queste istruzioni attiviamo la linea di interrupt collegata a EINT0, impostandola come IRQ (non FIQ) e assegnandole una priorità 12 con routine di gestione (ISR) eint0ISR.

Page 13: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

13/20

Real Time Clock (RTC) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 17

© NXP B.V. 2007

Page 14: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

14/20

Watchdog Timer (WDT) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 18

© NXP B.V. 2007

Page 15: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

15/20

Serial Peripheral Interface (SPI) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 12 e 13

© NXP B.V. 2007

Page 16: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

16/20

Universal Asynchronous Receiver/Transmitter (UART) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 9 e 10

© NXP B.V. 2007

Page 17: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

17/20

Il controllo di sistema nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 5

© NXP B.V. 2007

Page 18: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

18/20

Memoria Flash nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 19

© NXP B.V. 2007

Page 19: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

19/20

Embedded Integrated Circuit Emulator (ICE) Monitor nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 20

© NXP B.V. 2007

Page 20: Corso LPC2103

LPC2103 Microprocessori e MicrocontrolloriCorso di progettazione su SoC ARM

S2DEL – Solid State and Diamond Electronics Lab. ROMATRE

Università degli Studi

20/20

Inter Integrated Circuit Bus (I2C-Bus) nel µC LPC2103Documento LPC2103: user manual (user.manual.lpc2101.lpc2102.lpc2103.pdf), capitolo 11

Specifiche tecniche: www.nxp.com/acrobat_download/usermanuals/UM10204_3.pdf

© NXP B.V. 2007