Corso LPC2103
-
Upload
nicola-masarone -
Category
Documents
-
view
52 -
download
4
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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