Table Of ContentUNIVERSIDAD CARLOS III DE MADRID
ESCUELA POLIT(cid:201)CNICA SUPERIOR
INGENIER˝A T(cid:201)CNICA DE TELECOMUNICACIONES
SISTEMAS DE TELECOMUNICACIONES
PROYECTO FINAL DE CARRERA
CREACI(cid:211)N DE UN ENTORNO DE DESARROLLO PARA
APLICACIONES BASADAS EN MICROCONTROLADORES
STM32L CORTEX-M3
AUTOR: JORGE CABALLERO ESCRIBANO
TUTOR: MICHAEL GARC˝A LORENZ
Octubre de 2011
T(cid:237)tulo: CREACI(cid:211)N DE UN ENTORNO DE DESARROLLO PA-
RA APLICACIONES BASADAS EN MICROCONTROLA-
DORES SMT32L CORTEX-M3.
Autor: JORGE CABALLERO ESCRIBANO
Tutor: MICHAEL GARC˝A LORENZ
La defensa del presente Proyecto Fin de Carrera se realiz(cid:243) el d(cid:237)a 28 de Octubre de 2011;
siendo cali(cid:28)cada por el siguiente tribunal:
Presidente:
Secretario
Vocal
Habiendo obtenido la siguiente cali(cid:28)caci(cid:243)n:
Calificaci(cid:243)n:
Presidente Secretario Vocal
3
Agradecimientos
Quiero agradecer este proyecto de (cid:28)n de carrera a mi tutor Michael, por su ayuda, paciencia,
y respuesta cuando lo he necesitado.
Quisiera agradecer no s(cid:243)lo este proyecto sino tambiØn toda mi carrera a mis padres, por la
educaci(cid:243)n que me han dado, sin la cuÆl no ser(cid:237)a quien soy, gracias. TambiØn me acuerdo de todos
mis familiares que encend(cid:237)an velas en mis exÆmenes, en especial a mis abuelos FØlix y Mar(cid:237)a, mi
espejoenlavida.YnopuedoolvidarmedemiprimoRubØn,quemehaenseæado,hacompartido
estudios conmigo y hemos conseguido una gran amistad.
No puedo olvidarme de mi otra familia la cuÆl ha sido un soporte fundamental en estos aæos,
en concreto todos aquellos que han compartido tardes en la biblioteca, Christian, Patri, Victor,
RubØn, etc. Pero en especial me gustar(cid:237)a agradecer la ayuda incondicional de Raœl, gracias por
tu apoyo, comprensi(cid:243)n y tus charlas en la calle, y por preguntarme un d(cid:237)a, si quer(cid:237)a ser ingeniero
o instalador de antenas.
TambiØn quiero recordar mis compaæeros de clase, e@synet, con los cuales he pasado muy
buenos momentos y el estudio fue menos doloroso gracias a su compaæ(cid:237)a, y gracias a ellos me
voy de la universidad con una amistad para siempre.
Mi mÆs sincero agradecimiento a mis compaæeros de Indra en Aranjuez, en especial a Carlos
por haberme enseæado a no ser un ingenierito y a ser mejor persona.
YporœltimoaAndoni,mimejorapoyoenestosœltimosmesesdecarreraytenerlapaciencia
que tienes conmigo. Gracias por ayudarme en los malos momentos y compartir los buenos.
5
˝ndice general
1. INTRODUCCI(cid:211)N 21
1.1. PROBLEMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2. OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2. ESTADO DE LA T(cid:201)CNICA 23
2.1. LPC2129 y µVision de Keil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1. LPC2129 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2. µVision de Keil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2. ARDUINO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1. PLACA ARDUINO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2. ARDUINO IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.3. Programar el microcontrolador ATmega directamente. . . . . . . . . . . . 28
2.3. THE MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4. LPCXPRESSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.1. LPCXpresso IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.2. LPCXpresso HW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3. LPC1769 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5. STM32L DISCOVERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.1. IDEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7
3. SOLUCI(cid:211)N ESCOGIDA 45
3.1. ELECCI(cid:211)N DE LA PLACA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2. ELECCI(cid:211)N DEL TOOLCHAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3. CORTEX M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1. INTRODUCCI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.2. VENTAJAS DEL CORTEX-M3 . . . . . . . . . . . . . . . . . . . . . . . 50
3.4. CMSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.1. (cid:190)QU(cid:201) ES CMSIS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.2. CAPAS DE SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.3. CMSIS PARA UN CORTEX . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5. STM32L152RBT6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6. LIBRER˝AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.1. INTRODUCCI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.2. CONTENIDO DE LA LIBRER˝A . . . . . . . . . . . . . . . . . . . . . . 56
3.6.3. NOMENCLATURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.4. DESCRIPCI(cid:211)N DE LOS FICHEROS DE LA LIBRER˝A . . . . . . . . . 59
3.6.5. (cid:190)C(cid:211)MO UTILIZAR LA LIBRER˝A? . . . . . . . . . . . . . . . . . . . . . 61
4. GU˝A DE PERIF(cid:201)RICOS 65
4.1. RESET AND CLOCK CONTROL (RCC) . . . . . . . . . . . . . . . . . . . . . . 65
4.1.1. Relojes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2. GENERAL PURPOSE I/Os (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3. SYSTEM TIMER (SysTick) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.3.1. CONFIGURACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4. DISPLAY LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8
4.4.1. Reloj del LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4.2. CONFIGURACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.5. EXTERNAL INTERRUPT (EXTI) y NVIC . . . . . . . . . . . . . . . . . . . . . 76
4.6. ANALOG-TO-DIGITAL CONVERTER (ADC) . . . . . . . . . . . . . . . . . . . 80
4.6.1. CONFIGURACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.7. TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.7.1. Con(cid:28)guraci(cid:243)n Input Capture . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.7.2. Con(cid:28)gurar Output Compare. . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.7.3. External Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.8. PULSE WIDTH MODULATOR (PWM). . . . . . . . . . . . . . . . . . . . . . . 95
4.9. DIGITAL-TO-ANALOG CONVERTER (DAC) . . . . . . . . . . . . . . . . . . . 97
4.9.1. Onda Triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.9.2. Onda senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5. EVALUACI(cid:211)N 107
5.1. GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.1.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 108
5.1.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 108
5.1.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 109
5.2. INTERRUPCI(cid:211)N EXTERNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.2.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 110
5.2.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 110
5.2.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 112
5.3. ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.3.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 114
9
5.3.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 115
5.3.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 116
5.4. TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.4.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 118
5.4.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 118
5.4.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 119
5.5. PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.5.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 120
5.5.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 120
5.5.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 122
5.6. DAC: ONDA TRIANGULAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.6.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 123
5.6.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 124
5.6.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 125
5.7. DAC: ONDA SENOIDAL Y SAWTOOTH . . . . . . . . . . . . . . . . . . . . . . 126
5.7.1. (cid:190)C(cid:211)MO UTILIZAR LA APLICACI(cid:211)N? . . . . . . . . . . . . . . . . . . . 127
5.7.2. DESCRIPCI(cid:211)N DEL SOFTWARE. . . . . . . . . . . . . . . . . . . . . . 127
5.7.3. C(cid:211)DIGO DE LA APLICACI(cid:211)N . . . . . . . . . . . . . . . . . . . . . . . 128
6. CONCLUSIONES 129
7. TRABAJO FUTURO 131
8. PRESUPUESTO DEL PROYECTO 133
8.1. Fases del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.2. Coste del Personal Empleado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
10
Description:viable un cambio a PIC o AVR ya que el salto de modelo de programación es .. son: MDK-ARM, IAR Embedded Workbench y Atollic TrueSTUDIO.