Microcontrolador y Pantalla Touch_ Buen Material
Transcript of Microcontrolador y Pantalla Touch_ Buen Material
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
1/230
UNIVERSIDAD MIGUEL HERNNDEZ DE ELCHE
ESCUELA POLITCNICA SUPERIOR DE ELCHE
INGENIERA INDUSTRIAL
MANEJO DE UNA PANTALLA TCTILCON EL PIC32 PARA EL CONTROL DEDISPOSITIVOS EXTERNOS
PROYECTO FIN DE CARRERA
Enero 2010
AUTOR: Jess Fernndez Gonzlez
DIRECTORA: Mara Asuncin Vicente Ripoll
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
2/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
3/230
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE
VISTO BUENO Y CALIFICACIN DEL PROYECTO
Ttulo proyecto:
Proyectante: Jess Fernnez Gonzlez
Directora: Mara Asuncin Vicente Ripoll
Lugar y fecha:
CALIFICACIN NUMRICA MATRCULA DE HONOR
Mritos justificativos en el caso de conceder Matrcula de Honor:
Lugar y fecha:
E s c u e l a P o l i t c n i c a S u p e r i o r d e E l c h e
U n i v e r s i d a d M i g u e l H e r n n d e z
MANEJO DE UNA PANTALLA TCTIL CON EL PIC32 PARA EL CONTROLDE DISPOSITIVOS EXTERNOS.
Conforme presidente:
Fdo.:
Conforme secretario:
Fdo.:
Conforme vocal:
Fdo.:
VB directora del proyecto:
Fdo.: Mara Asuncin Vicente Ripoll
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
4/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
5/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
6/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
7/230
NDICE
1. CAPTULO1.INTRODUCCINYOBJETIVOS........................................ 25
1.1 OBJETIVOS ......................................... 25
1.2
ESTRUCTURA
.........................................
26
2. CAPTULO2.ELMICROCONTROLADORPIC32:HARDWARE
YSOFTWARE ........................................ 29
2.1 INTRODUCCIN ......................................... 29
2.1.1 DIFERENCIASENTREUNMICROCONTROLADORYUN
MICROPROCESADOR ......................................... 29
2.1.2
APLICACIONES
DE
LOS
MICROCONTROLADORES
...........
30
2.1.3 MODELOSDEMICROCONTROLADORESDELAMARCA
MICROCHIP ......................................... 32
2.2 MICROCONTROLADOR PIC32 ......................................... 33
2.2.1 ELECCIN DEL MICROCONTROLADOR................... 33
2.2.2 CARACTERSTICAS DEL MICROCONTROLADOR
PIC32MXXX ......................................... 34
2.2.3 NCLEOMCU ......................................... 37
2.2.3.1 Estadospipeline ......................................... 38
2.2.3.2 UnidaddeEjecucin ...................................... 40
2.2.3.3 MDU:UnidaddeMultiplicacinyDivisin..... 40
2.2.3.4 ShadowRegisterSets..................................... 40
2.2.3.5 RegisterBypassing......................................... 41
2.2.3.6
BITS
de
estado
de
la
ALU
................................
42
2.2.3.7 MecanismodeInterrupcionesyexcepciones. 42
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
8/230
NDICE
2.2.4 JUEGODEINSTRUCCIONES ......................................... 43
2.2.4.1 RegistrosdelaCPU......................................... 49
2.2.4.2 Modosdelprocesador.................................... 49
2.2.4.3 RegistrosCP0 ......................................... 51
2.2.5 MEMORIADELSISTEMA ......................................... 52
2.2.6 RECURSOSESPECIALES ......................................... 53
2.2.6.1 PerroguardinoWatchdog........................... 53
2.2.6.2 Tecnologadeahorroenergtico................... 53
2.2.6.3 Osciladores ......................................... 54
2.2.6.4 Puertosdecomunicacin............................... 54
2.2.6.5 ConversorA/D ......................................... 56
3. CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO............... 61
3.1 MPLABIDE ......................................... 61
3.1.1 INTRODUCCIN ......................................... 61
3.1.2 CARACTERSTICASGENERALES ...................................... 62
3.1.3
ESTRUCTURA
DE
UN
PROYECTO
.....................................
63
3.1.4 CREACINDEUNPROYECTO......................................... 64
3.2 SOFTWAREDEGRABACIN ......................................... 71
3.2.1 INTRODUCCIN ......................................... 71
3.2.2 SOFTWAREDEGRABACIN ......................................... 71
3.2.3 GRABARENLAEXPLORER16MEDIANTEICD3................ 72
4.
CAPTULO
4.
TARJETA
DE
EVALUACIN
PARA
EL
PIC32:
STARTERKIT ........................................ 77
4.1 INTRODUCCIN ......................................... 77
4.1.1 CARACTERSTICASGENERALES....................................... 78
4.1.2 ARQUITECTURADELATARJETAPIC32STARTERKIT...... 79
4.2 PROGRAMASUTILIZADOSPARAVERIFICARSTARTERKIT............ 82
4.3 PROGRAMASREALIZADOSPARAELPIC32STARTERKIT.............. 85
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
9/230
NDICE
5. CAPTULO5.SISTEMADEDESARROLLOEXPLORER16........................ 95
5.1 INTRODUCCIN ......................................... 95
5.1.1 CARACTERSTICASGENERALES....................................... 96
5.1.2 ARQUITECTURADELATARJETAEXPLORER16................ 97
5.2 SOFTWAREDEGRABACIN ......................................... 109
5.3 EJEMPLOSDEPROGRAMASPARALAEXPLORER16...................... 110
5.3.1 EJEMPLO1:LEDS ......................................... 112
5.3.2 EJEMPLO2:INTERFAZSPI ......................................... 114
5.3.3 EJEMPLO3:INTERFAZUART ......................................... 119
5.3.4 EJEMPLO4:MODULOLCDYPUERTOPARALELO(PMP) 125
5.3.5 EJEMPLO5:PULSADORES ......................................... 128
5.3.6 EJEMPLO6:ENTRADASANALGICAS............................. 131
6. CAPTULO6.PANTALLATCTIL:HARDWAREYSOFTWARE...............139
6.1 INTRODUCCIN ......................................... 139
6.1.1 IMPORTANCIADELASPANTALLASTCILESEN
APLICACIONES
EMBEBIDAS
.........................................
139
6.2 ARQUITECTURAHARDWARE ......................................... 140
6.2.1 ARQUITECTURADELAPANTALLATCTIL...................... 140
6.2.2 FUNCIONAMIENTODEUNAPATALLATCTIL................ 142
6.2.3 CARACTERSTICASMSIMPORTANTESDELLCD
GRFICO ......................................... 144
6.2.4 CONEXIONADODELAPANTALLATCTIL....................... 145
6.3
MICROCHIP
GRAPHIC
LIBRARY
.........................................
146
6.3.1 ESTRUCTURADELALIBRERAGRFICA.......................... 146
6.3.2 CARACTERSTICASDELOSWIDGETS(OBJETOS)............. 147
6.3.3 FUNCIONAMIENTODELALIBRERA................................ 148
6.3.4 PROGRAMASEJEMPLO ......................................... 153
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
10/230
NDICE
7. CAPTULO7.APLICACIONESDESARROLLADAS ..................................163
7.1 INTRODUCCIN ......................................... 163
7.2 PANTALLATCTIL ......................................... 163
7.2.1 ASPECTOSATENERENCUENTAPARAELABORAREL
PROGRAMA ......................................... 163
7.2.2 ESTRUCTURADELPROGRAMA....................................... 166
7.2.3 FUNCIONAMIENTODELPROGRAMA.............................. 173
7.3 PANTALLATCTIL YACELEROMETRO ......................................... 177
7.3.1 ASPECTOSATENERENCUENTAPARAELABORAREL
PROGRAMA ......................................... 177
7.3.2 ESTRUCTURADELPROGRAMA....................................... 179
7.3.3 FUNCIONAMIENTODELPROGRAMA.............................. 182
8. CAPTULO8.CONCLUSIONESYTRABAJOSFUTUROS.........................191
ANEXOA.DISEODELAMEMORIADELPIC32 ......................................195
A.1
INTRODUCCIN
.........................................
195
A.1.1 REGISTROSDECONTROL ......................................... 195
A.2 DISEODELAMEMORIAPIC32 ......................................... 197
A.2.1 CLCULODELADIRECCINFSICAAVIRTUAL
YVICEVERSA ......................................... 199
A.2.2 PARTICINDELAMEMORIAFLASHDEPROGRAMA..... 199
A.2.3 PARTICINDELARAM ......................................... 200
ANEXOB.CONSIDERACIONESPRCTICASPARA PROGRAMARELPIC32205
B.1 INTRODUCCIN ......................................... 205
B.2 VARIABLES ......................................... 205
B.3 INTERRUPCIONES ......................................... 209
B.3.1 MDULORTCC ......................................... 214
B.3.2 OTRASFUNCIONESTILES ......................................... 215
B.4 CONFIGURACINDELPIC32 ......................................... 215
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
11/230
NDICE
ANEXOC.ACELERMETROADXL330 ........................................223
C.1 INTRODUCCIN ......................................... 223
C.1.1 IMPORTANCIADELOSSENSORESENAPLICACIONES
EMBEBIDAS ......................................... 223
C.2 FUNCIONAMIENTODELSENSOR ......................................... 224
ACRNIMOS ........................................227
BIBLIOGRAFA ........................................229
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
12/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
13/230
NDICE DE FIGURAS
2.1 Estructurabsicadeunmicrocontrolador. ....... 30
2.2 Ejemplosdeaplicacionesdemicrocontroladores. ....... 31
2.3 PIC16F84A,modelodemicrocontroladormuypopularen
ladocenciadePICs. ....... 32
2.4 PIC32MX460512L. ....... 34
2.5 100pinesdelPIC32MX3XXL. ....... 36
2.6 EsquemadelosestadospipelinedelaCPUdelPIC32MX. ....... 39
2.7 Esquemade losestadospipelinede laCPUdelPIC32MX
antebloqueohardwareslip. ....... 41
2.8 Esquemade losestadospipelinede laCPUdelPIC32MX
usandoelmecanismobypassing. ....... 42
2.9 Formatodelos3tiposdeinstrucciones. ....... 44
2.10 RegistrosdelaCPU. ....... 49
2.11 ModosdeoperacindelaCPU. ....... 50
2.12 RegistrosCP0. ....... 51
2.13 Primeros8bitsdelregistroSTATUS. ....... 52
2.14 DiagramadebloquesdelmduloADCde10bits. ....... 56
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
14/230
NDICE DE FIGURAS
3.1 Procesodeescrituradeunaaplicacin. ....... 61
3.2 PantallainicialdelMPLABIDE. ....... 63
3.3
Estructura
de
un
proyecto
con
el
MPLAB
IDE. .......
64
3.4 Creacindeunproyecto,seleccindeldispositivo. ....... 65
3.5 Creacin de un proyecto, seleccin del compilador y el
linkado. ....... 65
3.6 Creacindeunproyecto,nombrarelproyecto. ....... 66
3.7 Creacindeunproyecto,aadirarchivosalproyecto. ....... 67
3.8 Aadirarchivosalproyectodesdeelmenprincipal. ....... 67
3.9 Resumendelasopcionesdeconfiguracin,configuration
bits. ....... 68
3.10 Construccindelprograma,build. ....... 69
3.11 Programarelmicrocontrolador. ....... 69
3.12 Verificacindelaprogramacineneldispositivo. ....... 70
3.13 Ejecutarelprogramaenmododebugger. ....... 70
3.14 MPLABICD3InCircuitDebugger. ....... 71
4.1 SistemadeevaluacinPIC32StarterKit. ....... 77
4.2 Componentes del sistema de evaluacin PIC32 Starter
Kit. ....... 78
4.3 PIC32StarterKit,Ledsencendidos. ....... 80
4.4 Conector para expansin modular de 120 pins y/o
alimentacindelatarjeta. ....... 81
4.5 Diagrama de Bloques de la tarjeta de evaluacin PIC32
StarterKit. ....... 81
4.6 Cuadro de dilogo para la introduccin de la accin a
realizar,programaStarterkitturorial.c. ....... 83
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
15/230
NDICE DE FIGURAS
4.7 VentanadeSalidadelprogramaStaterKitTutorial.c. ....... 83
4.8 ConfigurationsbitsparaelPIC32StarterKit. ....... 85
4.9
Registro
T1CON,
asociado
al
Timer1. .......
86
4.10 VentanadeSalidadelprogramasemforosv2.0.c. ....... 92
5.1 SistemadedesarrolloExplorer16. ....... 95
5.2 ComponentesdelsistemadedesarrolloExplorer16. ....... 97
5.3 a) Zcalo de 100 pins. b) Detalle de la esquina para la
colocacindelPIC. ....... 98
5.4 Selectordelprocesador,PICPIM. ....... 98
5.5 Suministro de energa elctrica mediante fuente de
alimentacin externa conectada a: a) Conector J12. b)
Patillajesituadoenlaparteinferiorizquierdadelaplaca. ....... 99
5.6 LEDspresentesenlatarjetaExplorer16. ....... 99
5.7 Pulsadores presentes el sistema de desarrollo
Explorer16. ....... 100
5.8 JumperenmodoInterruptor:a)JumperenmodoON. b)
JumperenmodoOFF. ....... 100
5.9 JumperJ7enmodomultiplexor:a)Ubicacindeljumper
en la placa Explorer16 b) Detalle de los 3 pines. c)
JumperenelladoF4450.d)JumperenelladoPIC24. ....... 101
5.10 MduloLCDdelaplacaExplorer16. ....... 102
5.11 SensordeTemperaturaTC1047A. ....... 103
5.12 PotencimetroR6de10K. ....... 103
5.13 Conectorpara lafamiliadeprogramadores/depuradores
ICD. ....... 103
5.14 PuertoserieRS232. ....... 104
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
16/230
NDICE DE FIGURAS
5.15 ConectorUSB. ....... 104
5.16 MemoriaEEPROM(25LC256)presenteenlaExplorer16. ....... 105
5.17
Relojes:
a)
Oscilador
primario
8MHz
y
secundario
32.768kHz (cilndrico).b)OsciladorparaelPIC18LF4550
20MHz. ....... 105
5.18 Explorer16,PCBparaaadirunaLCDgrfica. ....... 106
5.19 Explorer16, conectorpara tarjetas deexpansinPICtaill
Plus. ....... 107
5.20 Explorer16,conectorPICkit2. ....... 107
5.21 Explorer16,conectorJTAG. ....... 108
5.22 DiagramadeBloquesdelatarjetaExplorer16. ....... 108
5.23 AdaptadorPIC32StarterKit100LPimAdaptor. ....... 109
5.24 MPLABICD3InCircuitDebuggerenfuncionamientoenla
Explorer16. ....... 109
5.25
LEDS
encendidos,
programa
LED.c. .......
1135.26 DiagramadebloquesdelainterfazSPI. ....... 114
5.27 RegistroSTATUSdelaEEPROMserie,25LC256. ....... 116
5.28 ConfiguracindelProgramaHyperterminal. ....... 122
5.29 Consola del Programa Hyperterminal, ejecucin
programaserial.c. ....... 123
5.30 Consola del Programa Hyperterminal, ejecucin
programaU2Test.c. ....... 124
5.31 ProgramaLCDtest.cejecutadoenlaExplorer16. ....... 127
5.32 Esquema del nuevo carcter a crear en el modulo LCD
(0x00). ....... 128
5.33 ProgramaProgressBar.c ejecutadoenlaExplorer16. ....... 128
5.34 Rebotesocasionadosporlospulsadores. ....... 129
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
17/230
NDICE DE FIGURAS
5.35 Programabuttons.cejecutadoenlaExplorer16. ....... 131
5.36 ProgramaPot.cejecutadoenlaExplorer16. ....... 133
5.37
Programa
POT
MAN.c
ejecutado
en
la
Explorer16. .......
135
5.38 ProgramaTemperatura.cejecutadoenlaExplorer16. ....... 135
6.1 EjemplosdeAplicacionesconpantallastctiles. ....... 139
6.2 GraphicsPICtailPlusDaughterBoardv2. ....... 140
6.3 DiagramadeBloquesdelmoduloLCD. ....... 141
6.4 Esquemadefuncionamientodeunpixelen unapantalla
reflectiva. ....... 142
6.5 Esquemadefuncionamientodeunpixelenunapantalla
reflectivaII. ....... 143
6.6 Esquemadefuncionamientodeunpixelenunapantalla
transmisiva. ....... 143
6.7 Esquemadefuncionamientodeunpixelenunapantalla
transmisivaII. ....... 143
6.8 Equipo completo en funcionamiento, sistema de
desarrolloExplorer16,MPLABICD3yGraphicsPICtailPlus
DaughterBoard. ....... 145
6.9 Estructuradelalibreragrficav1.6 demicrochip. ....... 147
6.10 Librera grfica, control de los objetos a travs de la
interfazdemensaje. ....... 148
6.11 Librera grfica, estructura GOL_SCHEME aplicada a un
botn. ....... 149
6.12 Libreragrfica,parmetrosparadefinir lasdimensiones
deunbotn. ....... 150
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
18/230
NDICE DE FIGURAS
6.13 Diagrama de flujo bsico del funcionamiento de la
libreragrfica. ....... 152
6.14 ProgramaGraphicsPrimitives LayerDemoejecutadoen
lapantallatctil. ....... 153
6.15 Programa AN1136_v1.0.c ejecutado en la pantalla
tctil. ....... 157
6.16 Programa AN1136_v2.0.c ejecutado en la pantalla
tctil. ....... 158
6.17 Programa AN1136Demo.c ejecutado en la pantalla
tctil. ....... 159
7.1 EsquemadelPotencimetroR6delatarjetaExplorer16. ....... 165
7.2 Sensorde temperaturaTC1047,Voltajedesalida (Vout)
respectotemperatura. ....... 166
7.3 Pantallaprincipal,ProgramaProyecto_1.c. ....... 173
7.4 Pantalla Secundaria, Potentiometer, Programa
Proyecto_1.c. ....... 174
7.5 Pantalla Secundaria, Slide Potentiometer, Programa
Proyecto_1.c. ....... 174
7.6 Programa Proyecto_1.c a) Pantalla Secundaria, Set
TimeandDate,detallealpresionarelmendesplegable
paraseleccionarelmes.b)Fechayhoraconfiguradatras
pulsar el botn Show. c) Pantalla principal tras
configurarlahoraylafecha. ....... 175
7.7 Pantalla Secundaria, Temperature Sensor, Programa
Proyecto_1.c a) Pantalla cuando la temperatura es
inferiora24C.b)Temperaturadel sensorentre24Cy
25C.c)Temperaturaigualosuperiora26C. ....... 176
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
19/230
NDICE DE FIGURAS
7.8 I/OExpansionBoard. ....... 177
7.9 I/OExpansionBoardconconectorsoldado. ....... 178
7.10
Conexin
del
acelermetro
a
la
I/O
Expansion
Board. .......
178
7.11 Pantallaprincipal,ProgramaAPP.c ....... 183
7.12 Calibracin del sensor, Programa APP.c a) Primera
posicinacalibrar.b)ResultadosdeCalibracin. ....... 183
7.13 Lecturadevalores,ProgramaAPP.c. ....... 184
7.14 Pantalladisplay,ProgramaAPP.c. ....... 184
7.15 Pantalla shock, Programa APP.c a) Esperando a un
shock en alguno de los ejes. b) Shock producido en el
ejeX. ....... 185
7.16 Lecturadengulos,ProgramaAPP.c. ....... 186
7.17 Juego de la pelota, Programa APP.c a) Mensaje de
bienvenida al juego. b) Instrucciones del juego. c)
Seleccindelniveldedificultad.d)Pantalladeljuego.e)
Mensajefinalconeltiempoenejecucin. ....... 187
8.1 USBPICtailPlusDaughterBoard. ....... 191
8.2 Estructurapropuestaparalacaptacindevideo. ....... 192
A.1 RegistrosSFRsparaconfigurarlamemoriadelPIC32. ....... 195
A.2 Registro BMXPUPBA asociado a la memoria flash de
programa. ....... 196
A.3 DivisindelamemoriadelPIC32,regionesprimarias. ....... 197
A.4 Mapeodelamemoriavirtuala lafsica. ....... 198
A.5 Esquemadedireccionespara laparticinde lamemoria
RAM. ....... 201
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
20/230
NDICE DE FIGURAS
B.1 Esquemadelaconfiguracindelrelojdelsistema. ....... 216
C.1 UsodeunacelermetroeneliPhone. ....... 223
C.2 AcelermetroADXL330. ....... 224
C.3 SensibilidaddelsensorADLX330enlostresejes. ....... 224
C.4 Modelofsicodeunsensorcapacitivodiferencial. ....... 225
C.5 Salidadel sensorADXL330en funcinde laorientacin
delmismo. ....... 225
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
21/230
NDICE DE TABLAS
2.1 ModelosdemicrocontroladoresdelamarcaMicrochip. ....... 32
2.2
Juego
de
instrucciones
completo
presente
en
la
familia
PIC32MX3XX/4XX. ....... 48
5.1 JuegodecaracteresdelmduloLCD. ....... 102
5.2 Listadetodos losprogramasevaluadossobreelsistema
Explorer16. ....... 111
5.3 Programas detallados ejecutados en el sistema de
desarrolloExplorer16.
.......
112
6.1 Caractersticas principales del TFTG240320UTSW92W
TPE. ....... 144
B.1 Comparacin de las variables enteras disponibles en el
MPLABC32. ....... 205
B.2 Comparacinde lasvariablesfraccionalesdisponiblesen
el
MPLAB
C32.
.......
207
B.3 Anlisis temporal de las diferentes variables,
multiplicacin. ....... 208
B.4 Anlisistemporaldelasdiferentesvariables,divisin. ....... 208
B.5 Anlisis temporal de las diferentes instrucciones de
optimizacindecdigo. ....... 220
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
22/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
23/230
Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.
1. INTRODUCCIN Y OBJETIVOS
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
24/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
25/230
25
CAPTULO
1.
INTRODUCCIN
Y
OBJETIVOS
1.1. OBJETIVOS
ElpresenteProyectoFindeCarrerasecentraeneldesarrollodeaplicaciones
prcticasparalaprogramacindemicrocontroladores.Enconcreto,eltrabajohasido
realizadoconmicrocontroladoresPICdegamaalta(familiademicrocontroladoresde
32bits),enparticularconlosmodelosPIC32MX360F512Ly elPIC32MX460F512L.
En los ltimos aos han tenido un gran auge los microcontroladores PIC
fabricadosporMicrochipTechnologyInc.LosPIC(PeripheralInterfaceController)son
unafamiliademicrocontroladoresquehatenidogranaceptacinydesarrollograciasa
quesusbuenascaractersticas,bajoprecio,reducidoconsumo,pequeotamao,gran
calidad, fiabilidad y abundancia de informacin, los convierten en muy fciles,
cmodosyrpidosdeutilizar.
Eltrabajo
realizado
en
este
proyecto
se
puede
dividir
en
4tareas
bsicas:
Estudiodelhardwareysoftware(juegodeinstrucciones)delPIC32dada
surecientepuestaenelmercado.
Anlisis de programas ejemplo para la placa PIC32 Starter Kit y
desarrollodelosprimerosprogramasejemploparaelPIC32.
Estudio del sistema de desarrollo Explorer16 y desarrollo de cdigo
fuenteparaestesistema.
Desarrollo de aplicaciones de controlmediante el uso de la pantalla
tctilincorporandoposteriormenteunacelermetro.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
26/230
CAPTULO1.INTRODUCCINYOBJETIVOS
26
1.2. ESTRUCTURA
Elproyecto finde carreraManejodeunapantalla tctil conelPIC32parael
control
de
dispositivos
externos
sedivide
en
ocho
captulos
ytres
anexos.
Eneste
primercaptuloserealizaunabreveintroduccindetallandolosobjetivosdelproyecto
ydescribiendosuestructura.
En el segundo captulo se realiza una introduccin a la arquitectura de los
microcontroladores en general, y se describe con detalle la familia de los
microcontroladoresPICde32bits.
Eneltercercaptulosepresentanlosdistintosprogramasquesehanutilizadoa
lo largo del proyecto, tanto para la grabacin de los programas en los
microcontroladores,como
para
la
depuracin
ysimulacin
del
cdigo
fuente.
Seguidamente, en el cuarto captulo se describe la metodologa realizada
durante la evaluacin del PIC32 Starter Kit, desarrollando los primeros programas
fuenteparaelPIC32.
Posteriormente, en el quinto captulo se analiza el sistema de desarrollo
Explorer16,sepresentasuarquitecturafsicayelsoftwarenecesarioparahacerusode
ella.Adems se presentan una serie de programas ejemplo desarrollados para esta
tarjeta.
Enelcaptulosextoseestudiaelhardwarede lapantallatctilpresenteen la
placadeexpansinGraphicsPICtailPlusDaughterBoard (versin2)yseanalizael
funcionamientodelalibreraMicrochipGraphicLibraryversin1.6..
Acontinuacin,enelcaptulosptimosedetallanlasaplicacionesdesarrolladas
paralatarjetagrficaGraphicsPICtailPlusDaughterBoard(versin2)usandotanto
elsistemadedesarrolloExplorer16comolatarjetaI/OExpansionBoardalacualse
haincorporadoelacelermetroADXL330.
Finalmente,enelcaptulooctavosehaceunarecopilacindeconclusiones,as
comodelosposiblestrabajosfuturos.
Por ltimo, al final del documento se encuentran losAnexosA,B yC. En el
anexoAsedescribedequmanerasepuedeconfigurar lamemoriadelPIC32.Enel
anexo B se describen distintos aspectos a tener en cuenta a la hora de programar
sobreelPIC32queno se comentanenprofundidadenningunode loscaptulosdel
presenteproyecto.MientrasqueelanexoCserealizaunbreveestudiodelhardware
delacelermetroADLX330paraladeteccindemovimientoenelespacio.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
27/230
Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.
2. EL MICROCONTROLADOR PIC32:HARDWARE Y SOFTWARE
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
28/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
29/230
29
CAPTULO2.ELMICROCONTROLADORPIC32:
HARDWARE
Y
SOFTWARE
2.1. INTRODUCCIN
Hace unos aos, los sistemas de control se implementaban usando
exclusivamentelalgicadecomponentes,loquehacaquefuesendispositivosdegran
tamaoymuypesados.Parafacilitarunavelocidadmsaltaymejorarlaeficienciade
estos
dispositivos
de
control,
se
trat
de
reducir
su
tamao
apareciendo
as
los
microprocesadores. Siguiendo con el proceso de miniaturizacin, el siguiente paso
consistienlafabricacindeuncontroladorqueintegrasetodossuscomponentesen
unsolochip.Aestoseleconoceconelnombredemicrocontrolador.
2.1.1. DIFERENCIAS ENTRE UN MICROCONTROLADOR Y UN
MICROPROCESADOR
UnmicroprocesadoresuncircuitointegradoquecontienelaUnidadCentralde
Proceso(CPU)deuncomputador,queconstade laUnidaddeControlyde losbuses
necesarios para comunicarse con los distintos mdulos. Mientras que un
microcontrolador, es un circuito integrado programable que contiene todos los
bloquesnecesariosparacontrolarelfuncionamientodeunatareadeterminada:
ProcesadoroCPU:queinterpretalasinstruccionesdeprograma.
Memoria
RAM
para
almacenar
las
variables
necesarias.
MemoriaEPROM/PROM/ROMparaelprogramatipo.
PuertosE/Sparacomunicarseconelexterior.
Diversosmdulosparaelcontroldeperifricos.
Generador de impulsos de reloj que sincroniza el funcionamiento de todo el
sistema.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
30/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
30
Figura
2.1:
Estructurabsicadeunmicrocontrolador.
En la Figura 2.1, se puede ver al microcontrolador embebido dentro de un
encapsulado de circuito integrado, con su procesador, buses, memoria, perifricos y
puertos de entrada/salida. Fuera del encapsulado se ubican otros circuitos para
completar perifricos internos y dispositivos que pueden conectarse a los pines de
entrada/salida.
Unmicrocontroladores,portanto,uncircuitoochipqueincluyeensuinterior
las tresunidades funcionalesdeunordenador:CPU,MemoriayUnidadesdeE/S,es
decir,setratadeuncomputadorcompletoenunsolocircuitointegrado.
2.1.2. APLICACIONES DE LOS MICROCONTROLADORES
Cadavezexistenmsproductosqueincorporanunmicrocontroladorconelfin
deaumentarsustancialmentesusprestaciones,reducirsutamaoycoste,mejorarsu
fiabilidadydisminuirelconsumo.
Losmicrocontroladoresamenudoseencuentranenaplicacionesdomsticasy
enequiposinformticostalescomo:microondas,refrigeradores,lavadoras,televisin,
equiposdemsica,ordenadores,impresoras,mdems,lectoresdediscos,etc.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
31/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
31
Figura2.2:Ejemplosdeaplicacionesdemicrocontroladores.
Los microcontroladores tambin son muy utilizados en robtica, donde la
comunicacin entre controladores es muy importante. Esto hace posible muchas
tareas especficas al distribuir un gran nmero de microcontroladores por todo el
sistema.Lacomunicacinentrecadamicrocontroladoryunocentral,permiteprocesar
lainformacinporunordenadorcentral,otransmitirloaotrosmicrocontroladoresdel
sistema.
Otroejemplo
de
aplicacin
de
los
microcontroladores,
es
la
de
la
utilizacin
para monitorizar y gravar parmetros medioambientales (temperatura, humedad,
precipitaciones, etc.). El pequeo tamao, el bajo consumo de potencia y su
flexibilidad hacen de este dispositivo, una herramienta adecuada para este tipo de
aplicaciones.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
32/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
32
2.1.3. MODELOS DE MICROCONTROLADORES DE LA MARCA MICROCHIP
Diversosfabricantesofrecenampliasgamasdemicrocontroladoresparatodas
lasnecesidades.Nosotrosvamosautilizarmicrocontroladoresde lamarcamicrochip,
alser
la
marca
con
un
mayor
nmero
de
modelos
de
estos
ypor
su
mayor
utilizacin
tantoprofesionalmentecomoporaficionados.
Dentrodelamarcademicrochip,nosencontramosconvariosmodelosdePIC.
Estos se clasifican de acuerdo a la longitud de sus instrucciones dando lugar a 3
grandestiposdePIC.
Clasificacin Longituddeinstrucciones ModelosdePIC
GamaBaja 8bits Pic10,Pic12,Pic16,Pic18
GamaMedia 16bits Pic24F,Pic24H,dsPIC30,dsPIC33
GamaAlta 32bits Pic32
Tabla
2.1:
ModelosdemicrocontroladoresdelamarcaMicrochip.
Adems,conformeaumentamoslalongituddelasinstruccionesvaaaumentar
la funcionalidad, las prestaciones ofrecidas pero tambin la complejidad de las
instruccionesydesuuso.
Figura
2.3:
PIC16F84A,modelo
de
microcontrolador
muy
popular
en
la
docencia
de
PICs.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
33/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
33
2.2. MICROCONTORLADOR PIC32
2.2.1. ELECCIN DEL MICROCONTROLADOR
Existe una gran diversidad de microcontroladores, como se ha podido
comprobar con anterioridad. Dependiendo de la potencia y caractersticas que se
necesiten, se pueden elegir microcontroladores de 8, 16 32 bits. Aunque las
prestacionesdelosmicrocontroladoresde16y32bitssonsuperioresalosde8bits,la
realidadesquelosmicrocontroladoresde8bitsdominanelmercado.Estoesdebidoa
que los microcontroladores de 8 bits son apropiados para la gran mayora de las
aplicaciones,por loquenoesnecesarioemplearmicrocontroladoresmspotentesy
enconsecuenciamscaros.
Sin embargo, los modernos microcontroladores de 32 bits (puestos en el
mercadoafinalesdelao2007)sevanafianzandoenelmercado,siendolasreasde
ms inters el procesamiento de imgenes, las comunicaciones, las aplicaciones
militares, losprocesos industrialesyelcontrolde losdispositivosdealmacenamiento
masivodedatos.
Alahoradeseleccionarelmicrocontroladorautilizarenundiseoconcretose
hade
tener
en
cuenta
multitud
de
factores
como
la
documentacin,
herramientas
de
desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por
supuesto las caractersticas del microcontrolador (tipo de memoria de programa,
nmerodetemporizadores,interrupciones,etc.).
En el caso particular de este proyecto, la eleccin del microcontrolador vino
influenciadaporsurecientepuestaenelmercadodelmismo,conmotivodeanalizary
estudiar las nuevasposibilidades que nos ofreca el PIC32 respectoa susanteriores.
Dentrode
los
microcontroladores
de
gama
alta
vamos
autilizar
dos
modelos
de
32
bits,elPIC32MX360F512Ly elPIC32MX460F512L.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
34/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
34
Figura
2.4:
PIC32MX460512L.
2.2.2. CARACTERSTICAS DEL MICROCONTROLADOR PIC32MXXX
El PIC32X360F512L, introduce una nueva lnea de dispositivos de microchip
correspondientes a la familia de microcontroladores de 32 bit RISC (Reduced
Instruction Set Computer). Adems esta familia ofrece la opcin de una nueva
migracin para estas aplicaciones de altas prestaciones las cuales pueden quedarse
pequeasparalasplataformasde16bit.
AcontinuacinsemuestranlascaractersticasgeneralesdelPIC32:
Frecuenciadeoperacin:Dc80MHZ.
Memoria
de
programa:
512Kbytes
MemoriadeDatos:32Kbytes
Recursosdeinterrupcin/vectores:95/63
PuertosdeE/S:PuertosA,B,C,D,F,G
o TotalpinsE/S:85
CanalesDMA(DirectmemoryAccess):4
Timers:
o Nmerototal(16bit):5
o32
bit
(pareja
de
16
bit):
2
o Timerdencleode32bit:1
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
35/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
35
Canalesdecapturadeentrada:5
CanalesdesalidaComparadores/PWN
Notificacindecambiodeentradasporinterrupcin:22
Comunicacionesenserie:
o UART:2
o SPI(3cables/4cables):2
o I2C:2
Comunicacionesparalelas(PMP/PSP):8bit/16bit
JTAGboundarySCAN
JTAGdebugandprogram
ICSP2wiredebugandprogram:
Instruccintrace
Hardwarebreakpoints:6instructions,2Data
Modulode10bitanalgicodigital(Canalesdeentrada):16
Comparadoresanalgicos:2
InternoLDO
Resets (y retrasos): POR, BOR, MCLR, WDT, SWT(software reset),
CM(configurationBitMismatch)
100pinTQFP
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
36/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
36
Figura
2.5:
100pinesdelPIC32MX3XXL.
Porotraparte,laarquitecturadelPIC32hasidodescompuestaenlossiguientes
bloquesfuncionales:
NcleoMCU
Memoriadelsistema
Perifricos
Integracindelsistema
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
37/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
37
2.2.3. NCLEO MCU
ElcorazndelPIC32eselncleoM4KCPUbasadoenlatecnologaMIPS32[1].
LaCPU
realiza
las
operaciones
bajo
el
programa
de
control.
Las
instrucciones
son
ledas
ycargadasporlaCPU,decodificadasyejecutadassncronamente. Estasinstrucciones
sepuedenalmacenarenlamemoriaflashdeprogramaobienenlamemoriadedatos
RAM.
Esta CPU del PIC32 se basa, por tanto, en una arquitectura de carga
almacenamiento la cual realiza la mayora de operaciones en base a una serie de
registros internos (contiene 32 registros de propsito general de 32 bits). Estas
instrucciones especficas de carga y almacenamiento se utilizan para mover datos
entreestosregistrosinternosascomofueradelPIC.
LascaractersticasprincipalesdelncleoMCUsonlassiguientes:
NcleoRISCMIPS32M4Kde32bits.
ALUdeunsolociclo.
Unidaddeejecucindecargaalmacenamiento.
5estadospipeline.
Busesdedireccionesydatosde32bits.
Archivosderegistrodepropsitogeneralde32bits.
FMTFixedMappingTranslation. FMDUFastMultiplyDivideUnit.
MIPS32Compatibleinstructionset.
MIPS16eCodeCompressionInstructionSetArchitectureSupport.
Instrucciones de 16 y 32 bits, optimizadas para lenguajes de alto nivel
comoC.
PuertodebugEJTAG
Rendimientohasta1.5DMIPS/MHz
Proteccin
del
cdigo
interno
para
ayudar
a
proteger
la
propiedad
intelectual.
A continuacin vamos a ir describiendo algunas de estas caractersticas as
comolosconceptosmsimportantesdelNcleoMCU.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
38/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
38
2.2.3.1 Estados pipeline
Losestadosdelpipelineson5:
Estadodeinstruccin(I)
Estadodeejecucin(E) Estadodememoria(M)
Estadodealinear(A)
Estadodereescribir(W)
Estado I: Instruccin Fetch
Durante el estado I una instruccin es cargada y leda desde SRAM y las
instruccionesMIPS16esonconvertidasainstruccionesenMIPS32.
Estado E:Ejecucin
DuranteelestadoE:
Losoperandossonledosycargadosdesdeelarchivoderegistro.
OperandosdelosestadosMyAsondesviadosaesteestado.
La unidad aritmtico lgica (ALU) empieza las operaciones aritmticas o
lgicaspara
las
instrucciones
registro
aregistro.
La ALU calcula la direccin virtual de los datos para las instrucciones de
cargaryguardaryelMMU(MemoryManagementUnit)realizaeltraslado
deladireccinvirtualalafsica.
LaALUdeterminasiparaunacondicindebifurcacinestaesverdaderay
calculaladireccinobjetivodelaramificacin.
LasinstruccioneslgicasseleccionanunadireccindeinstruccinyelMMU
realizalatraslacindeladireccinvirtualalafsica.
Todaslasoperacionesdedivisinymultiplicacinempiezanenesteestado.
Estado M:Memory Fetch
Duranteesteestado:
TerminanlasoperacionesaritmticasolgicasdelaALU.
Se realiza el acceso a los datos SRAM para las instrucciones de carga y
almacenamiento.
Los
clculos
de
multiplicaciones
y
divisiones
continan
en
la
MDU
(Multiply/DivideUnit). Sielclculo terminaantesqueel IU (IntegerUnit)
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
39/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
39
mueva la instruccin pasada al estado M, entonces la MDU mantiene el
resultadoenun registro temporalhastaqueel IUmueve la instruccinal
EstadoA(yconsecuentementesabrquenosereliminado)
Estado A: Alinear
DuranteelestadoA:
Una operacin MUL hace que el resultado est disponible para la
reescritura. ElregistroactualreescritoesejecutadoenelestadoW.
Desde este estado, la carga de datos o el resultado de la MDU estn
disponiblesparasubypassing(comentadoacontinuacin)enelestadoE.
Estado W: Reescribir
Durante el registro W: Para registros a registros o cargar instrucciones, el
resultadosereescribeenelarchivoderegistro.
El ncleo M4k implementa un mecanismo de desviacin (bypassing) que
permitequeelresultadodeunaoperacinseaenviadodirectamentea la instruccin
que lonecesita sin tener queescribir el resultadoenel registro y entonces volvera
leerlo.
Figura
2.6:
EsquemadelosestadospipelinedelaCPUdelPIC32MX.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
40/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
40
2.2.3.2 Unidad de Ejecucin
La unidad de ejecucin del PIC32 es la responsable de llevar a cabo el
procesamiento de la mayora de instrucciones del MIPS. Esta proporciona una
ejecucinpara lamayorade instruccionesenunsolociclo,mediante laejecucinen
pipeline
(pipelining),
donde
las
complejas
operaciones
son
divididas
en
pequeas
partesllamadosestados(explicadosanteriormente).
2.2.3.3. MDU: Unidad de Multiplicacin y Divisin
La unidad de multiplicacin y divisin realiza como su nombre indica, las
operaciones de divisin y multiplicacin. La MDU consiste en un multiplicador de
32x16, registros de resultado de acumulacin (HILO) y todos los multiplexores y la
lgicade
control
requerida
para
realizar
estas
funciones.
Esta
unidad
tiene
unas
altas
prestacionesyaquesoportalaejecucindeunaoperacindemultiplicacinde16x16
o32x16cadaciclodereloj,yunaoperacindemultiplicacinde32x32serealizacada
dosciclosdereloj.Porotraparte,lasoperacionesdedivisinseimplementanconun
solobitcadacicloderelojmedianteunalgoritmoiterativoyrequiere35ciclosdereloj
en el peor de los casos para que se complete la operacin. Tan pronto como el
algoritmo detecta el signo del dividendo, si el tamao actual es 24, 16 o 8 bits, el
divisorsalta7,15o23delas32iteraciones.
Adems,
el
M4K
implementa
una
instruccin
adicional
de
multiplicacin,
MUL,
la cual consiste en que los 32 bits ms bajos del resultado de la multiplicacin se
guardanenelarchivoderegistroenlugardeenelparderegistrosHI/LO.Paraello,se
handiseadodos instruccionesadicionalesqueseusanparaejecutar lasoperaciones
demultiplicacinysumaascomomultiplicacinyresta,estason:multiplicacinsuma
(MADD/MADDU) y multiplicacinresta (MSUB/MSUBU). La instruccin MADD
multiplica dos nmeros y entonces suma el producto al contenido actual de los
registrosHIy LO. Similarmente, la instruccinMSUBmultiplica losdosoperandos y
entoncesrestaelproductodelosregistros HIyLO. Estasoperacionessesuelenusar
enalgoritmos
de
Digital
Signal
Processor
(DSP).
2.2.3.4. Shadow Register Sets
El procesador del PIC32 implementa una copia de los registros de propsito
general para usarlos como interrupciones de alta prioridad. Este banco extra de
registroesconocidocomoshadowregisterset(controladosporlosregistrosubicados
en la CP0) [2]. Cuando ocurre una interrupcin de alta prioridad, el procesador
automticamente conmuta a los shadow register set sin la necesidad de una
intervencindelsoftware.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
41/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
41
Este banco de registros especiales permite reducir eficazmente, tanto la
sobrecargaenelmanejodeinterrupcionescomoeltiempodelatencia.
2.2.3.5. Register Bypassing
UnInterlockobloqueo,ocurrecuandounainstruccinenelestadopipelineno
puede avanzar debido a una dependencia de datos o una condicin externa similar,
porejemplo,cuandounainstruccindependedelresultadodeunainstruccinprevia.
EltipodebloqueohardwareenelprocesadorMIPsesSlips.Estospermitenqueuna
partede lapipelineavancemientrasotrapartede lapipelinepermaneceesttica,se
muestraunejemploenlasiguientefigura:
Figura
2.7:
EsquemadelosestadospipelinedelaCPUdelPIC32MXantebloqueo
hardwareSlip.
Sin embargo, el procesador del PIC32 implementa un mecanismo llamado
registerbypassingqueayudaareducirestosslipsen lapipelinedurante laejecucin.
Cuando una instruccin esta en el estado E de la pipeline, el operando debe estar
disponibleparalasiguienteinstruccin.
Elregistrobypassingpermiteunatajoparaconseguirdirectamenteeloperando
desdelapipeline. DetalformaqueunainstruccinenelestadoEpuederecuperarun
operandodeotrainstruccinqueseestejecutandooenelestadoMoenelestadoA
de la pipeline. Mediante la figura que se muestra a continuacin podemos ver las
interdependenciasdescritas:
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
42/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
42
Figura
2.8:
EsquemadelosestadospipelinedelaCPUdelPIC32MXusandoelmecanismo
bypassing.
Evidentementeelusodelbypassingaumentaelrendimientoenelrangodeuna
instruccinporciclorelojparalasoperacionesdelaALU.
2.2.3.6. BITS de estado de la ALU
AdiferenciadelamayoradelosotrosmicrocontroladoresPIC,elPIC32nousa
un registro de Status con flags. Las banderas o flags se usan en la mayora de los
procesadores
a
ayudar
a
tomar
una
decisin
para
realizar
operaciones
durante
la
ejecucindeunprograma.Estasbanderassebasanen,resultadosdecomparacinde
operacionesobienenoperacionesaritmticas. Detalformaqueelprogramaejecuta
instruccionesbasadasenestosvaloresdelasbanderas.
Sin embargo el PIC32 usa instrucciones que realizan una comparacin y
almacenan una bandera o valor en un registro de propsito general, ejecutndose
entoncesunaramacondicionada,usandoesteregistrodepropsitogeneralqueacta
comounoperando.
2.2.3.7. Mecanismo de interrupciones y excepciones
La familia de procesadores del PIC32 implementa un mecanismo eficiente y
flexibleparaelmanejode las interrupcionesyexcepciones. Ambossecomportande
manerasimilaryaquelainstruccinactualcambiatemporalmenteparaejecutarseun
procedimiento especial. La diferencia entre las dos es que las interrupciones son
usualmenteuncomportamientonormalylasexcepcionessonelresultadodeunerror
enlascondiciones,comoporejemplounerrorenelbusalenviarorecibirdatos.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
43/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
43
Cuando ocurre una interrupcin o una excepcin, el procesador realiza los
siguientespasos:
El PC (contador de programa) de la siguiente instruccin a ejecutar se
guardaenelregistrodelcoprocesador.
Lacausadelregistroesactualizadaparaconocerlarazndelaexcepcino
delainterrupcin.
StatusEXLoERLespuestoa1comocausadelmododeejecucinKernel.
DesdelosvaloresdeEBASEySPACINGsecalculaelPC.
ElprocesadorcomienzalaejecucindelprogramadesdeunnuevoPC.
2.2.4. JUEGO DE INSTRUCCIONES
LafamiliadelosmicroprocesadoresPIC32estndiseadosparausarseconun
leguajedeprogramacindealtonivelcomoeselleguajedeprogramacinC. ElPIC32
soporta varios tipos de datos y usa un modo de direccionamiento simple pero
necesarioparael lenguajedealtonivel. Demaneraquedisponede32 registrosde
propsito general y 2 registros especiales para realizar las operaciones de
multiplicacinydivisin(HiLo).
Existen tres tipos diferentes de formatos para las instrucciones en lenguaje
mquinapresentes
en
el
procesador.
InstruccionesInmediatasotipoI.
InstruccionesdeSaltootipoJ.
InstruccionesdeRegistrosotipoR.
La mayora de estas instrucciones son ejecutadas en registros. Las
instrucciones de Registros tienen tres operandos: 2 fuentes y un destino. Las
instrucciones inmediatas tienen una fuente y un destino, mientras que las
instruccionesdesaltotienenunainstruccinrelativade26bit,queseusaparacalcular
eldestinodelsalto.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
44/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
44
Figura
2.9:
Formatodelos3tiposdeinstrucciones.
Acontinuacinmostramosunatablaresumencon las instruccionesqueestnimplementadasen losncleosde lassiguientesfamiliasdemicrocontroladoresde32
bits,PIC32MX3XX/4XX:
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
45/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
45
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
46/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
46
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
47/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
47
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
48/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
48
Tabla
2.2:
JuegodeinstruccionescompletopresenteenlafamiliaPIC32MX3XX/4XX.
Comopodemosobservarexisten124instruccionesdiferentes,porloquedada
su extensin y su dificultad, la familia de los microprocesadores PIC32 suelen
programarse en lenguaje de programacin de alto nivel, accediendo a los registros
especficos usando las funciones proporcionadas por el compilador o asignado
directamentelosunosyloscerosenlasposicionesdeseadas.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
49/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
49
2.2.4.1. Registros de la CPU
TalycomohemoscomentandoanteslosregistrosdelaCPUsonlossiguientes:
32registrosdepropsitogeneralde32bits.
2 registros de propsito general para almacenar el resultado de lasmultiplicaciones,divisionesyoperacionesdemultiplicacinacumulativa(HI
yLO).
Yunregistrodepropsitoespecial,contadordeprograma(PC),alcualsolo
le afectan indirectamente ciertas instrucciones, tal y como hemos visto
anteriormente, las interrupciones y excepciones. Este registro no es un
registrovisibleenlaarquitectura.
En
la
siguiente
figura
se
muestra
la
distribucin
de
los
registros
de
la
CPU:
Figura
2.10:
RegistrosdelaCPU.
2.2.4.2. Modos del procesador:
Hay tres maneras distintas de ejecucin de la CPU del PIC32: dos modos de
operacinyunmodoespecial:modoUser,modoKernelymodoDebug. Elprocesador
comienza laejecucinenelmodoKernelysisequieresepuedepermanecereneste
mododurantelaoperacinnormal. Elmodousuarioesunmodoopcionalquepermite
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
50/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
50
al diseador partir el cdigo entre software privilegiado y no privilegiado. Por otra
parte,elmodoDEBUGsoloseusasolomedianteundepurador.
Unade lasprincipalesdiferenciasentre losdistintosmodosdeoperacinesel
direccionamientodelamemora,detalformaqueelsoftwaresolopermiteelaccesoa
determinadas regiones de esta. Por ejemplo los perifricos no son accesibles en el
modo usuario. La siguiente figura muestra la organizacin de la memoria en cada
modo:
Figura
2.11:
ModosdeoperacindelaCPU.
Modo Kernel:
Parapoderaccederatodoslosrecursoshardware,elprocesadordebeestaren
esteestado.
Tal
y
como
podemos
veren
la
figura
anterior,
este
modo
permite
el
accesosoftwareatodoelespaciodedireccionesdelprocesadorascomotambina
lasinstruccionesprivilegiadas.
De tal forma que el procesador operar en este modo cuando el bit DM del
registroDEBUGsea0yelregistroSTATUScontengaalgunodelossiguientesvalores:
UM=0;ERL=1;EXL=1.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
51/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
51
Modo User:
Para poder operar en este modo, el registro STATUS debe contener los
siguientesvalores:UM=1;EXL=0;ERL=0.
Mientras
se
est
ejecutando
el
procesador
en
este
modo,
el
software
se
restringeaunaseriederecursosdelprocesador.Detal forma,queenestemodose
tienenicamenteaccesoalreadememoriaUSEG.
Modo Debug:
Este modo especial del procesador, requiere que para su funcionamiento se
ejecuteunaexcepcindebug. Detalformaqueseaccederatodoslosrecursoscomo
en
el
modo
kernel
as
como
a
los
recursos
hardwares
especiales
usados
en
lasaplicacionesdedebug. CuandoseentraenestemodoelbitDMdelregistroDEBUGes
1. ParasalirdeestemodobastaconejecutarlainstruccinDERET.
2.2.4.3. Registros CP0:
ElPIC32usaunregistroespecialcomointerfaceparacomunicarelestatusyla
informacindecontrolentreelsoftwaredelsistemay laCPU. Esta interfazse llama
coprocesador 0. El software del sistema accede a los registros del CP0 usando las
instruccionesdelcoprocesadorcomoMFC0yMTC0. LosregistrosCP0enelMCUdel
PIC32sonlossiguientes:
Figura
2.12:
RegistrosCP0.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
52/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
52
Entre los registros ms importantes del coprocesador destaca el registro
STATUS(registro12delCP0,seleccin0).EsteregistroSTATUSesdelecturayescritura
ycontieneel modode operaciones, lahabilitacinde interrupcionesy elestadodel
diagnosticodelprocesador.
o Interrupcioneshabilitadascuando:
IE=1 EXL=0 ERL=0 DM=0
o Modosdeoperacin:
DEBUGcuandoelbitDMes1encualquierotrocasoKernelo
user
Modousercuando UM=1 EXL=0 ERL=0
ModokernelcuandoUM=0 EXL=1 ERL=1
Laposicinqueocupanestosbitsson:
Figura2.13:Primeros8bitsdelregistroSTATUS.
2.2.5. MEMORIA DEL SISTEMA
ElPIC32proporciona4GB (232) deespaciodedireccionesdememoriavirtual
unificada.Todaslasregionesdememoria,incluidaslamemoriadeprograma,memoria
dedatos,SFRsyregistrosdeconfiguracinresidenenesteespaciodedireccionescon
sus respectivas direcciones nicas. Opcionalmente, la memoria de datos y de
programasepuedenpartirenmemoriadeusuarioykernel. Adems, lamemoriade
datospuedeponersecomoejecutable,permitiendoalPIC32ejecutarsedesdeesta.
Caractersticasprincipalesdelaorganizacindelamemoria:
Anchodedatosde32bits.
SeparacindelespaciodedireccionesdelmodoUserykernel
Flexibilidad para poder realizar una particin de la memoria flash de
programa.
Flexibilidad para poder realizar una particin de la memoria RAM para
datosyotroespacioparaprograma.
SeparacindelamemoriaFlashbootparaprotegerelcdigo.
Manejorobustodelasexcepcionesdelbusparainterceptarelcdigofuera
decontrol.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
53/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
53
MapeodelamemoriamediantelaunidadFMT(FixedMappingTranslation)
Regionesdedireccionescacheablesynocacheables.
EnelAnexoAdelpresenteproyecto,sedetallaconmsprecisin la formaen la
queseseparan losespaciosdememoriaenmodouserykernel, losregistrosusados
paraconfigurar lamemoriadelmicrocontrolador,ascomo lamaneraderealizaruna
particin tanto de la memoria flash de programa como de la memoria RAM y las
consideracionesquehayquetenerencuentaalahoradellevarloacabo.
2.2.6. RECURSOS ESPECIALES
En
este
apartado
se
detallan
los
recursos
especiales
ms
comunes
que
pueden
poseerlosmicrocontroladores:
2.2.6.1. Perro guardin o Watchdog:
El perro guardin est diseado para inicializar automticamente el
microcontroladorenelcasodequeexistaunmalfuncionamientodelsistema.
Consiste en un temporizador cuyo objetivo es generar automticamente un
reset cuando se desborda y pasa por 0, a menos que se inhabilite en la palabra de
configuracin.Cuandoelperroguardinesthabilitado,sehadedisearelprograma
demaneraquerefresqueoinicialicealperroguardinantesdequeseprovoquedicho
reset.Sielprograma fallaosebloquea,noserefrescaralperroguardinycuando
completesutemporizacinprovocarunresetalsistema.
2.2.6.2. Tecnologa de ahorro energtico:
Todos
los
dispositivos
de
la
familia
del
PIC32
incorporan
un
rango
de
caractersticasquepuedensignificativamentereducirelconsumoelctricodurantesu
funcionamiento. Sedebebsicamenteadoscaractersticas:
Cambio de reloj sobre la marcha: El reloj del dispositivo puede ser
cambiadobajounsoftwarequecontrolealgunodelos4relojesdurantela
operacin.
Instruccionesbasadasenmodosdeahorrodeenerga. Elmicrocontrolador
puedesuspendertodas lasoperaciones,oselectivamenteapagarelncleo
mientrasdeja
activo
los
perifricos,
utilizando
una
instruccin
del
software.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
54/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
54
2.2.6.3. Osciladores:
Toda la familia del PIC32 nos ofrece 4 osciladores diferentes con sus
correspondientes opciones, lo que le permite al usuario un gran rango de posibles
eleccioneseneldesarrollodelasaplicacioneshardware. Estasincluyen:
FRC: Internal oscillator, para velocidades altas de operacin con un
consumobajo,salidanominalde8MHz.
LPRC: Internal lowfrequency and lowpower oscillator. Designado para
velocidades de operacin pequeas con bajo consumo, baja precisin,
32KHZ.
POSC:Externalprimaryoscillator.Hasta20MHZ(XThasta10MHz;HSpara
msde
10MHz),
dependiendo
si
usamos
cristal
de
cuarzo
oun
resonador
cermico.
SOSC: External lowfrequency and lowpower, designado para bajas
velocidadesconuncristalexternode32,768Khz.Utilizadoparatemporizar
tiempos exactos. Adems es necesario si se quiere usar el mdulo RTCC
(RealTimeClockandCalendar).
EC:Externalclock,permiteconectaruncircuitoexternoyreemplazarlopor
eloscilador,
proporcionando
al
microcontrolador
una
onda
de
la
frecuencia
quequeramos.
Lasealproducidaporcadarelojpuedesermultiplicadaodivididaparaofrecer
unanchorangodefrecuenciasatravsdelcircuitoPLL. Estecircuitoproporcionaun
rango de frecuencias desde 32KHZ hasta la frecuencia mxima especificada por el
PIC3280MHZ,comentadoenmayorprofundidadenelAnexoBdelpresenteproyecto.
2.2.6.4. Puertos de comunicacin:
Lospuertosdecomunicacinsonherramientasquedotanalmicrocontrolador
de la posibilidad de comunicarse con otros dispositivos externos, otros buses de
microprocesadores, buses de sistemas, buses de redes ypoder adaptarlosconotros
elementos bajo otras normas y protocolos. En las aplicaciones de los PIC, estas se
reducen a entender los protocolos. En general en el PIC32 existen disponibles dos
tipos,lainterfazdecomunicacinserieasncrona(UART)ylasncrona(SPIyI2C).
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
55/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
55
ElPIC32proporciona7 formasdecomunicacinperifricade lascuales6son
enserie. Estasltimasson:
2UniversalAsynchronousReceiverandTransmitters(UARTs).
2SPIy2I2C(sncrono).
Ladiferenciaprincipalentreunacomunicacinsncronayotraasncronaes la
necesidaddepasarinformacintemporaldesdeelquetransmitealreceptor. Esdecir,
lacomunicacinsncronanecesitadeuna lneadedicadaparaunasealderelojque
proporcioneunasincronizacinentreambosdispositivos. As,elqueorigina laseal
derelojseledenominamaestroyalotroesclavo.
Interfaz I2C:
Utilizadoscables,dospinesdelmicrocontrolador:1parael reloj (SCL)yotro
paratrasmitirlosdatosdeformabidireccional(SDA).
Requiere10bitsparaconfigurareldispositivoantesdequeseenvecualquier
dato. Estopermitequeconelmismocablesepuedausarhasta1000dispositivos.
Interfaz SPI:
Estainterfazseparalatransmisindedatosendoslneas:unaparalosdatosde
entrada (SDI) y otra para los de salida (SDO), por tanto requiere otro cable pero
permitetransferirdatossimultneamenteenambasdirecciones.
Sin embargo, esta interfaz requiere una lnea fsica adicional (seleccin del
esclavo, SS) para conectar cada dispositivo. La principal ventaja de la interfaz SPI es
que es muy simple y la velocidad puede ser mucho ms alta que con la mayor
velocidad
del
bus
I2C.
Interfaz UART:
Norequiereunalneadereloj. Existen2lneasdedatos,TXyRX,lascualesse
usanparalaentradaysalidadedatos,ysepuedencolocaradicionalmentedoslneas
quepuedenserusadasparaproporcionarunhardwarehandshake(lneasCTSyRTS).
Lasincronizacinseobtieneaadiendounbitdestartyotrodestopalosdatos.
Generalmenteseusaestainterfazcuandoladistanciafsicaesgrande.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
56/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
56
Interfaz pararela:
El Parallel Master Port (PMP) se ha aadido a la arquitectura del PIC32 para
dotardeunbusdeE/Sflexiblepararealizartareascotidianasdelcontroldeperifricos
externos.
El
PMP
proporciona
la
habilidad
de
transferir
datos
de
8
o
16
bits
de
una
manerabidireccionalyhasta64Kdeespaciodedirecciones.Ademssepuedeajustar
eltiempoparaadecuarelPMPalavelocidaddelosperifricosconlosquequeremos
interactuar.
2.2.6.5. Conversor A/D:
Como es muy frecuente el trabajo con seales analgicas, stas deben ser
convertidas a digital y por ello muchos microcontroladores incorporan un conversor
A/D,
el
cual
se
utiliza
para
tomar
datos
de
varias
entradas
diferentes
que
se
seleccionanmedianteunmultiplexor.
El PIC32 ofrece la posibilidad de convertir la informacin analgica a digital
concretamenteatravsdeunmoduloADCde10bits.
Figura
2.14:
Diagramade
bloques
del
mdulo
ADC
de
10
bits.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
57/230
CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE
57
Como se puede ver en el esquema de bloques anterior, el mdulo A/D pose
hasta16pinesdeentradasquesepuedenusarpararecibirentradasanalgicas. Estos
pines estn conectados a2 multiplexores paraseleccionar losdistintos canales y las
diferentes referencias para cada uno. La salida del convertidor de 10bits se puede
pasaraenteros
con
signo
osin
signo
de
16
o
32
bits.
Params informacinsobreelmicrocontroladorserecomiendaver lahojade
caractersticas del componente disponible en el CDROM adjunto a la memoria del
presente Proyecto Fin de Carrera [3], el documento PIC32MX Family Reference
Manual[4]obienladireccinwebdelfabricanteMicrochip[5].
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
58/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
59/230
Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.
3. HERRAMIENTAS SOFTWARE DEDESARROLLO
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
60/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
61/230
61
CAPTULO
3.
HERRAMIENTAS
SOFTWARE
DE
DESARROLLO
3.1. MPLAB IDE
3.1.1. INTRODUCCIN
Elprocesodeescrituradeunaaplicacinsedescribeamenudocomounciclo
dedesarrollo,yaqueesmuydifcilque todos lospasosefectuadosdesdeeldiseo
hasta la implementacin se realicen correctamente a la primera. Lamayora de las
vecesseescribeelcdigo,setesteayluegosemodificaparacrearunaaplicacinque
funcionecorrectamente(verfigura3.1).
MPLAB IDE integra todas estas funciones con el fin de no tener que utilizar
distintasherramientasydiferentesmodosdeoperacin.
Figura
3.1:Procesodeescrituradeunaaplicacin.
El
software
MPLAB
IDE
de
Microchip
[6],
es
un
entorno
de
desarrollo
integrado
bajoWindows,quepermiteeditar,ensamblar,linkar,depurarysimularproyectospara
losdistintosdispositivosPICdeMicrochip.
Dichoentorno incorpora todas lasherramientasnecesariaspara larealizacin
decualquierproyecto:
Editordetexto.
Ensamblador.
Linkador.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
62/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
62
Simulador.
Mensdeayuda.
Ademsde lasherramientas incorporadas, sepuedenaadirotras comopor
ejemplo:
CompiladoresdeC.
Emuladores.
Programadores.
Depuradores.
Portanto,elentornoMPLABesunsoftwarequejuntoconunemuladoryun
programador,formanunconjuntodeherramientasdedesarrollo.
3.1.2. CARACTERSTICAS GENERALES
Este software esta en ingls y est diseado para trabajar bajo el sistema
operativodeWindowsenunentornogrficoconventanasybotones.A lo largodel
presentetrabajovamosatrabajarconlaversindelMPLABIDEv8.33.
Si observamos la pantalla inicial del programa podemos observar tres reas
principales, la ventana de edicinMPLAB IDE (color azul), ventana de salida (color
naranja)yelpaneldenavegacinalaizquierdadelamisma(colorverde). Laventana
deedicin
es
el
editor
de
cdigo,
donde
vamos
aescribir
nuestro
programa,
mientras
queenlaventanadesalidasemostrarlainformacinyelestadodelaltimaaccin
realizada.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
63/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
63
Figura
3.2:PantallainicialdelMPLABIDE.
Por otra parte, en el panel de navegacin se pueden ver dos tabulaciones
etiquetadas como Archivos y Smbolos. La etiqueta de archivos nos da acceso al
organizadorProjectmanager,elcualnospermiteorganizarnuestrosarchivospara
unproyecto. Esdedestacarquenoesnecesarioincluirelarchivolinkerenlaventana
denuestroproyecto. ConelPIC32, seusar automticamenteparaelenlazadoun
linkerpor
defecto,
sin
embargo,
en
el
caso
de
que
se
considere
oportuno
se
podr
incluirunoenconcreto.
Adems,unade lascaractersticasdeldepuradorparaelPIC32quenosofrece
elMPLAB IDE, es que posee un puerto de datos para depurar. Esto proporciona al
depuradorlacapacidaddeenviaryrecibirmensajesatravsdeunaconsola,lacualla
vamosautilizarenalgunasde lasaplicacionesdesarrolladas (semuestraunejemplo
de esta consola en el apartado 2 del captulo 4), mediante el uso de la librera
db_utils.h.
3.1.3. ESTRUCTURA DE UN PROYECTO
Unproyectoesunconjuntodeprogramasqueseintegranenunnicomdulo
con el fin de generar un cdigo ejecutable para un determinadomicrocontrolador.
Dichos
programas
pueden
estar
escritos
en
diferentes
lenguajes
de
programacin,
comoporejemploensamblador,C,Basic,Pascal.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
64/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
64
AcontinuacinsemuestralaestructuradeunproyectocreadoconMPLAB,as
comosusficherosdeentradaysalida:
Figura
3.3:
Estructura
de
un
proyecto
con
el
MPLAB
IDE.
Losficherosfuente(puedenservarios),puedenestarescritosenensamblador
o en C, con extensiones .asm y .c respectivamente, y mediante los programas
ensambladorycompilador,seobtienenlosficherosobjetoconextensin.o.
Todos los ficherosobjeto,juntoaotros ficherosprocedentesde libreras,son
linkados,generandounaseriedeficherosdesalidadeloscualeselmsimportantees
el
ejecutable
.HEX
que
ser
el
que
se
grabar
en
el
dispositivo.
3.1.4. CREACIN DE UN PROYECTO
Un proyecto contiene todos los archivos necesarios para construir una
aplicacin (cdigo fuente, ficheros de cabecera, libreras, etc), as como sus
correspondientesopcionesdeconstruccin.Generalmentehabrunsoloproyectopor
workspace.
Porotraparte,unworskspacecontiene:unoomsproyectos,informacindel
dispositivoseleccionado,laherramientadeprogramacinydepuracinylasopciones
deconfiguracindelMPLABIDE.
Adems, el MPLAB IDE contiene un asistente para ayudar a crear nuevos
proyectos. Detalformaqueelprocesodecreacindeunproyectosepuededividiren
8tareas
las
cuales
vamos
air
describiendo
paso
apaso
con
tal
de
crear
un
proyecto
paraejecutarloenelStarterKit(Capitulo4),primeratarjetaevaluada:
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
65/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
65
1.- Seleccin del dispositivo:
Abrimos el MPLAB IDE y lo primero que tenemos que realizar es cerrar
cualquier worksapce que estuviera abierto, para ello realizamos clic en file>Close.
Posteriormentehacemos
clic
en
Project>Project
Wizard,
para
abrir
el
asistente
de
creacindeunproyecto nuevo,detalformaquesenosabrirunaventanacomo la
quesemuestraacontinuacin:
Figura
3.4:Creacindeunproyecto,seleccindeldispositivo.
Enel
men
desplegable
seleccionamos
el
dispositivo,
en
nuestro
caso
PIC32MX360F512LyledamosaNEXT.Entoncessenosabrirotra ventana,comola
quemostramosenelsiguientepunto.
2.- Seleccin del Lenguaje de trabajo:
Figura
3.5:
Creacindeunproyecto,seleccindelcompiladoryellinkado.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
66/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
66
Enestaventanatenemosqueseleccionarelcompiladorquevamosausarenel
programaascomoellinker,ambossehandescargadodelapginademicrochip[7].
EnActiveToolsuiteseleccionamosdelalistadesplegableMicrochipPIC32C
CompilerToolsSuite. Laherramientadetrabajo incluyeelensambladoryel linkado
que usaremos. Si la opcin del compilador no est disponible, hay que activar la
casillashowallinstalledtoolsuites.
Eneldesplegablede contenidosde lasherramientas, seleccionamosMPLAB
C32CCompiler (pic32gcc.exe) yabajo,en Location,hacemos clicen Browse y
seleccionamos la siguiente ruta que contiene el archivo seleccionado antes:
C:\ProgramFiles\Microchip\MPLABC32\bin\pic32gcc.exe.
Porltimo seleccionamoseneldesplegable anterior MPLAB32 LINKObject
linker(pic20
ld.exe)
ycomprobamos
que
la
ruta
es
la
siguientec:\Program
Files\Microchip\MPLABC32\bin\pic32Id.exe. HacemosclicenNEXTparacontinuar.
3.- Nombrar el proyecto
Senosabrirunapantallacomolaquesemuestraacontinuacin:
Figura
3.6:
Creacindeunproyecto,nombrarelproyecto.
En esta una nueva ventana seleccionamos la carpeta en la que queremos
guardar nuestro proyecto y le damos un nombre al mismo, por ejemplo
C:\MiProyecto\Luces. HacemosclicenNEXTparacontinuar.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
67/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
67
4.-Aadir los archivos a tu proyecto:
Figura
3.7:
Creacinde
un
proyecto,
aadir
archivos
al
proyecto.
Silosarchivosen.caunnoloshemoscreadopodremossaltarestapantallay
ya losaadiremosposteriormente. HacemosclicenFinishparaterminarycerramos
la ventana. Al cerrar la ventana, se ha creado en el MPLAB IDE el proyecto y el
workspace, con los siguientes nombres: el workspace Luces.mcw y el archivo del
proyectoLuces.mcp.
Hacemos
clic
en
Files>New
en
la
barra
del
men
para
crear
un
archivo
nuevo
en
el que comenzar a escribir nuestro programa. Antes que nada, lo guardamos en
File>SaveAscomoLuces.cenlamismacarpetaenlaquehemoscreadoelproyecto.
Es importante escribir la extensin .c para que el MPLAB lo reconozca como un
fichero fuente. Ahora escribimos el cdigo en c para ejecutar el ejemplo.Una vez
escritoelcdigoaadimoselarchivoLuces.caldirectoriode fuentestalycomose
puedeapreciarenlasiguientefigura:
Figura
3.8:
Aadirarchivosalproyectodesdeelmenprincipal.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
68/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
68
Posteriormente, seleccionamos nuestro depurador, clic en Debugger>Select
Tool>PIC32MX Starter Kit de la barra de men. Antes de seleccionarlo, hay que
asegurarsequenuestroStarterKitestconectadoanuestroPCatravsdelcableUSB.
Una vez lohayamos conectado,en la ventanade salidadelMPLAB, semostrarun
mensajeen
el
que
nos
indicar
Starter
kit
Found,
ala
vez
que
el
LED
naranja
de
depuracindelatarjetaseencender.
5.- Confirmar las opciones de configuracin.
HacemosclicenConfigure>ConfigurationBitsparaconfirmarque lasopciones
deconfiguracindenuestromicrocontroladorson lasquequeramos. Acontinuacin
semuestraunaconfiguracintpicaparaelStarterKit:
Figura
3.9:
Resumendelasopcionesdeconfiguracin,configurationbits.
6.- Construir el proyecto:
Hacemos clic en Project>Build all en la barra delmen yobservamos (en la
ventanadesalida)queelprocesotranscurrasinerroreshastaqueaparezcaelmensaje
BUILDSUCCEEDED,momentoenelqueelprogramaestarpreparadoparaque lo
probemosenelStarterKit.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
69/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
69
Figura3.10:Construccindelprograma,build.
7.- Programar el dispositivo
HacemoscliceneliconodeProgramAllMemoriesenlabarraHerramientasdel
dispositivo,talycomomuestralafigura,contaldeprogramarelmismo:
Figura
3.11:
Programarelmicrocontrolador.
Una vez pulsado, nos aparecer un mensaje advirtindonos acerca de que
vamos a sobrescribir lamemoria, le damos a Yes para continuar. En la ventana de
salida nos fijamos en el progreso y cuando aparezca DONE significar que la
programacindeldispositivohasidocompletada.Estoverificaque la imagenhasido
cargadaenlamemoriaFlashyestpreparadaparasuejecucin.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
70/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
70
Figura
3.12:
Verificacinde
la
programacin
en
el
dispositivo.
8.- Probar el programa:
UnavezprogramadalamemoriadeldispositivohacemosclicenDebugger>Run
enlabarradelmenoeneliconodeRun(colorazul)enelmendeldepuradortaly
como indica la siguiente figura, comenzando el funcionamiento del programa en
nuestroStarter
Kit.
Figura
3.13:
Ejecutarelprogramaenmododebugger.
Parapararelprogramaprimero tenemosquehacer clicen Halt (pausa) y
posteriormenteenReset(colorpurpura).
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
71/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
71
3.2. SOFTWARE DE GRABACIN
3.2.1. INTRODUCCIN
Losmicrocontroladores
en
general,
ylos
de
la
empresa
Microchip
en
particular,
necesitandeun circuitoelectrnicoquepermita transferirleselprograma realizado
desdeelordenador.Existenmuchasmanerasdeafrontaresteproblema,yengeneral
sesueleutilizaralgunodelospuertosdisponiblesencualquierordenadorparaestefin.
Porello,enelmercadoesposibleconseguirprogramadoresdePICsconconexinpara
puertoUSB,paralelooserie(RS232).
3.2.2. SOFTWARE DE GRABACIN
Para grabar los programas en el PIC32, existenmltiples opciones as como
distintos software. En el presente trabajo se ha utilizado el MPLAB ICD3 InCircuit
Debuggerparalagrabacinydepuracindelcdigo,elcualseconectadirectamentea
laExplorer16(Captulo5)atravsdelconectorreservadoparaello.Detalformaque
estegrabadorseconectaa laExplorer16medianteuncablemodularyalordenador
medianteun cableUSB. Esta versindelprogramador ICD3eshasta15 vecesms
rpidaquesuversinanterior[8].Adems,nonecesitadeunafuentedealimentacin
externa,yaqueestalarecibedesdeelordenadoratravsdelcableUSB.
Porotraparte,paraqueelordenadorpuedarealizarlasdiferentesopcionesde
grabacin,senecesita tener instaladoelprogramaMPLAB IDEensuversin8.15ao
superior. EnnuestrocasovamosatrabajarconlaversinMPLABIDEv8.33,talycomo
yahemoscomentadoanteriormente.
Figura3.14:MPLABICD3InCircuitDebugger.
MduloICD3
(pastillade
grabacin)
Conectores
USB
Tarjetade
Test
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
72/230
CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO
72
La pastilla de grabacin dispone tambin de 3 luces indicadoras las cuales
poseenlossiguientessignificados.ElLeddePowersepondrdecolorverdecuando
seconectealordenador,indicandoqueyaestconectadoacorriente.ElLEDactive
se pondr de color azul cuando se le suministre energa o cuando se conecte a la
tarjeta.Por
otra
parte
el
LED
Status
puede
tener
3configuraciones
distintas:
si
esta
de color verde, significaqueeldepuradorestoperando correctamenteobienque
esteseencuentraenstandby;siesdecolorrojoesquealgunaoperacinhafalladoy
porltimosiesdecolornaranjasignificaqueeldepuradorestocupado.
Adems dispone de una tarjeta de Test, la cual se usa para verificar que el
MPLABICD3funcionacorrectamente.Estatarjetalapodemosverenlafigura3.13,en
elextremoalqueseencuentraconectadoelcablemodular.
3.2.3. GRABAR EN LA EXPLORER16 MEDIANTE ICD3
Enesteapartadovamosadescribirlospasosquehayquerealizaralahorade
depurar o grabar un programa mediante el uso del MPLAB ICD3 bajo el entorno
MPLABIDEv8.33,ademsse indicantodoslosaspectosquehayquetenerencuenta
parallevarloacabo.
Lospasos
necesarios
para
grabar
un
programa
yverificar
su
funcionamiento
medianteelusodeMPLABICD3IncircuitDebuggersonlossiguientes:
Primero tenemosqueasegurarnosquealabrirelprograma tengamos
seleccionadonuestrodispositivoenConfigure>SelectDevice.
Nos aseguramos que los bits de configuracin son los correctos,
Configure>Configuration Bits y posteriormente seleccionamos
Debugger>Select Tool>ICD 3, MPLAB ICD3 incircuit debugger, para
depurar
el
cdigo.
Construimos el programa para crear el archivo de grabacin con la
extensin.HEX,mediantelaopcinBuildAll.Nostenemosqueasegurar
que el interruptor S2 est en PIM, para que funcione correctamente
nuestromicrocontrolador,encasocontrariodarunerror.
Cargamoselprogramaen laExplorer16parasudepuracin. Paraello
debugger>Program. Una vez realizado ya podemos comprobar el
funcionamientodelprogramadndolearun. Hastaestepuntoesmuy
similarrespecto
ala
forma
de
depurar
en
el
Starter
Kit.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
73/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
74/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
75/230
Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.
4. TARJETA DE EVALUACIN PARAEL PIC32: STARTER KIT
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
76/230
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
77/230
77
CAPTULO4.TARJETADEEVALUACINPARAEL
PIC32:
STARTER
KIT
4.1. INTRODUCCIN
Como ya hemos comentado en el captulo anterior, la idea de realizar este
proyecto surgi trasel lanzamiento almercadodelpotentemicrocontroladorPIC32
juntoconunaseriedeherramientasdedesarrolloquefacilitabansuuso.Enconcreto,
elequipodeevaluacinPIC32Starterkit,elcualfacilitamucholainteraccinconeste
novedosomicrocontrolador.
Este
kit
inicial
para
el
PIC32
representa
un
mtodo
simple
ydebajocosteparallevaracabounprimercontactoconlosmicrocontroladoresde32
bits.Ademsel kit incluye todo lo necesariopara escribirunprograma,efectuar el
depuradoyejecutarelcdigoenunmicrocontroladorPIC32.
Figura4.1:SistemadeevaluacinPIC32StarterKit.
Adems,juntoconelkit,se incluyeunCdquecontieneelsoftwarenecesario
para la grabacin y depuracin vaUSB de los programas ejemplos incluidos en el
mismoyquecomentaremosenelapartado4.2.Por loqueestosprogramaspueden
servir como base a la hora de elaborar los primeros programas con la familia de
microcontroladoresPIC32.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
78/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
78
4.1.1. CARACTERSTICAS GENERALES
A continuacin se enumeran las principales caractersticas del sistema de
evaluacin
PIC32
Starter
Kit:
1. Microcontroladorde32bitPIC32MX360F512Lcon512KBdememoriaFlash
y32KBdeRAM.
2. Enlatarjeta,relojde8MHz.
3. MicrocontroladorPIC18LF4550paradepuraryprogramar.
4. ConectividadmedianteUSBparalascomunicacionesdedepuracin.
5. IndicadorLednaranjadedepuracin.
6. Trespulsadores.7. TresLedsdedistintoscolores,definidosporelusuario.
Figura
4.2:ComponentesdelsistemadeevaluacinPIC32StarterKit.
1
2
3
4
5
6 7
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
79/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
79
4.1.2. ARQUITECTURA DE LA TARJETA PIC32 STARTER KIT
En este apartado se realiza una explicacin exhaustiva del sistema deevaluacinPIC32StarterKit.
Suministroelctrico:
HaydosformasdesuministrarlaenergaalPIC32delStarterKit:
CableUSBconectadoaJ1.
Una tarjeta externa con un suministro elctrico regulado para corriente
continuaqueproporcione+5VyqueseconecteaJ2delStarterKit,situado
enlaparteposteriordelatarjetadeevaluacin.
ConectividadUSB:
ElPIC32MXStarterKit incluyeunmicrocontroladorPIC18LF4550USB,el cual
proporciona la conectividad y el soporte del protocolo USB. El cableado desde
PIC18LF4550alPIC32MXnosproporcionadostiposdeconectividad:
PinsdeE/SdelPIC18LF4550aICSPpinsdelPIC32MX
Pins
de
E/S
del
PIC18LF4550
aJTAG
pins
del
PIC32MX
ElPIC32MXStarterKitusacomnmente lospinesdel JTAGdelPIC32MXpara
programarydepurar. Laprimeravezqueseenchufa,elPIC18LF4550secargaconel
firmwareUSB.Adems,mediante laconexinUSBsepuedeactualizardeuna forma
muysencillaelfirmwaredeldispositivo.
Interruptores:
Latarjetadeevaluacindisponedelossiguientespulsadores:
SW1:InterruptoractivobajoconectadoaRD6
SW2:InterruptoractivobajoconectadoaRD7
SW3:InterruptoractivobajoconectadoaRD13
Estos interruptores no tienen ningn circuito antirebote y requieren el uso
internoderesistenciasconectadasa+5V. Portanto, los interruptoresestarnanivel
alto(3,3V)
cuando
no
se
pulsan
ycuando
los
presionamos
se
encontrarn
anivel
bajo.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
80/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
80
LEDS:
Los3ledsdisponiblesseencuentranconectadosalaslneas0,1y2delpuerto
D.Paraqueseenciendanestosleds,lospinesdelPORTDcorrespondientessetendrn
queponeranivelaltoparaqueseenciendan. Adems,cadaunodeestosledstienen
uncolordistinto,rojo,naranjayverdetalycomopodemosverenlaFigura4.3.
Figura4.3:PIC32StarterKit,Ledsencendidos.
OpcionesdelOscilador:
Elmicrocontrolador
de
la
tarjeta
de
evaluacin
tiene
un
circuito
oscilador
el
cualseencuentraconectadoaeste. Elosciladorprincipal(Y2)usaunrelojde8MHzy
actacomoelosciladorprimariodelcontrolador. Portanto,noesnecesarioelusode
un cristal externo para usar el PIC32. En caso de que queramos se podr usar el
osciladorinternodelmicrocontrolador.
Porotraparte,elrelojdelPIC18LF4550es independientedelPIC32MXytiene
supropiocristalde8MHz(Y1).
Conectorparaexpansinmodularde120pin(J2):
LaplacadelPIC32MXStarterKithasidodiseadaconunainterfazdeexpansin
modular de 120 pins (situada en la parte trasera de la tarjeta, ver figura 4.4). Esta
interfazproporciona a laplacaunelementomodularparaposibles ampliacionesde
nuevas tecnologas que puedan aparecer en el futuro, haciendo de la tarjeta un
elemento flexible.Asmismoesteconectornosvaaservirmsadelanteparapoder
conectarestatarjetaa laExplorer16ascomoa la I/OExpansinBoardqueveremos
enlos
captulos
5y7respectivamente.
LEDs
Pulsadores
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
81/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
81
Figura
4.4:Conectorparaexpansinmodularde120pinsy/oalimentacindelatarjeta.
Acontinuacinmostramoseldiagramadebloquesdealtoniveldelatarjetade
evaluacinPIC32StarterKit:
Figura4.5:DiagramadeBloquesdelatarjetadeevaluacinPIC32StarterKit.
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
82/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
82
4.2. PROGRAMAS UTILIZADOS PARA VERIFICAR STARTER KIT
Acontinuacinsedetallanalgunosdelosprogramas utilizadosparacomprobar
elfuncionamiento
de
la
tarjeta
de
evaluacin.
Hay
que
tener
en
cuenta,
que
al
ser
una
tarjetadeevaluacinsinmuchosmdulosconlonicoquesepuedeoperaresconlos
pulsadoresyconlosledsdedistintoscolores.
Elprimerprogramaevaluado (StarterKitTutorial.c)sigueelsiguientediagrama
deflujo:
-
7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material
83/230
CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT
83
Esteprimerprograma incluye la libreraDebugprint (db_utils.h) con laque
vamosasercapacesdemostrarmensajesporpantallaa laesperadeunarespuesta
porpartedelusuario. Enestecuadrosenosvaa indicarquedebemosde introducir
unadelasletrasquesenosindicanenlaventanadesalida,estasson:E,R,O,G,X,sila
entradano
se
corresponde
con
ninguna
de
estas
letras
se
mostrar
un
mensaje
de
erroryse intercambiarelestadodecadaLED (verdiagramade flujoanterior).Por
tanto, el programa responder con una accin u otra dependiendo de la letra
introducida. A continuacinmostramos el cuadro de dilogo (figura 4.6) en el que
introducimosnuestraeleccinascomo losmensajesquesemuestranen laventana