Una de las grandes ventajas de los microcontroladores de Microchip es su “migrabilidad”, que significa la posibilidad de cambiar de modelo de MCU y pasar a otro más potente con más dad d
Trang 2MICROCONTROLADORES «PIC» Diseño práctico de aplicaciones
SEGUNDA PARTE:
PIC16F87X, PIC18FXXXX
2ª Edición
Trang 4MICROCONTROLADORES «PIC» Diseño práctico de aplicaciones
Universidad de Deusto
Susana Romero Yesa
Licenciada en InformáticaProfesora de Arquitectura de Computadores
Universidad de Deusto
Ignacio Angulo Martínez
Licenciado en InformáticaProfesor de Arquitectura de Computadores
Universidad de Deusto
MADRID • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MÉXICO
NUEVA YORK • PANAMÁ • SAN JUAN • SANTIAGO • SA ~ O PAULO
AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS SAN FRANCISCO • SIDNEY • SINGAPUR • ST LOUIS • TOKIO • TORONTO
Trang 5SEGUNDA PARTE: PIC16F87X, PIC18FXXXX 2.ª edición
No está permitida la reproducción total o parcial de este libro, ni su tratamientoinformático, ni la transmisión de ninguna forma o por cualquier medio, ya seaelectrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright
DERECHOS RESERVADOS © 2006, respecto a la segunda edición en español, porMcGRAW-HILL/INTERAMERICANA DE ESPAÑA, S A U
Edificio Valrealty, 1.aplanta
Basauri, 17
28023 Aravaca (Madrid)
ISBN: 84-841-4627-1
Depósito legal: M
Editor: Carmelo Sánchez González
Diseño de cubierta: Luis Sanz Cantero
Compuesto en: GAAP Editorial, S L
Impreso en:
IMPRESO EN ESPAÑA - PRINTED IN SPAIN
Trang 6Prólogo xi
Capítulo 1 LA FAMILIA DE MICROCONTROLADORES PIC 1
1.1 Importancia de los microcontroladores PIC 1
1.2 Clasificación de los microcontroladores PIC 3
1.3 Microcontroladores PIC de 8 bits 3
1.3.1 La gama Base 5
1.3.2 La gama Media 6
1.3.3 La gama Mejorada 15
1.4 Microcontroladores PIC de 16 bits 16
1.4.1 Gama de microcontroladores MCU de 16 bits 16
1.4.2 Gama de microcontroladores DSC de 16 bits 20
Programar PIC es fácil: Recordando el viejo PIC16F84 23
Diseñar con PIC es fácil: Presentación de los sensores analógicos más utilizados 30
Capítulo 2 ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 33
2.1 Introducción 33
2.2 Procesador RISC con arquitectura Harvard 34
2.3 Organización de la memoria de programa 38
2.4 Organización de la memoria de datos RAM 39
2.4.1 Registros específicos para el control de la memoria de programa 39
v
Contenido
Trang 72.4.2 Control de la memoria de datos 39
2.5 Diagrama de conexionado 42
2.6 Repertorio de instrucciones 46
Programar PIC es fácil: El primer programa con los PIC16F87x 48
Diseñar con PIC es fácil: Actuadores para diversas aplicaciones: los motores 52
Capítulo 3 PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE LAS ME-MORIAS FLASH Y EEPROM 57
3.1 Los registros de control 57
3.2 Registro de estado (STATUS) 57
3.3 Registro de opciones (OPTION) 59
3.4 Registro para controlar las interrupciones 59
3.4.1 Registro de control de interrupciones (INTCON) 61
3.4.2 Registro de permiso de interrupciones 1 (PIE1) 61
3.4.3 Registro de permiso de interrupciones 2 (PIE2) 62
3.4.4 Registros de los señalizadores de interrupciones 1 y 2 (PIR1 y PIR2) 62
3.5 Lectura y escritura de las memorias EEPROM y FLASH 62
Programar PIC es fácil: Un programa que maneja las memorias FLASH de código y EEPROM de datos 67
Diseñar con PIC es fácil: Ampliación de periféricos para el trabajo con PIC 74
Capítulo 4 LAS PUERTAS DE E/S Y RECURSOS ESPECIALES DEL PROCE-SADOR 81
4.1 Puertas de E/S 81
4.1.1 Puerta A 81
4.1.2 Puerta B 83
4.1.3 Puerta C 85
4.1.4 Puerta D 85
4.1.5 Puerta E 86
4.2 Palabra de configuración 86
4.3 Palabras de identificación 87
4.4 Reinicialización o reset 88
4.5 Perro Guardián (WDT: watchdog timer) 91
4.6 Modo de reposo o de bajo consumo 91
4.7 Programación de los PIC16F87x 92
Programar PIC es fácil: Utilización de los recursos del PIC 94
Diseñar con PIC es fácil: Ampliación de los recursos del PIC 97
Trang 8Capítulo 5 LOS TEMPORIZADORES 101
5.1 Tipos y características generales 101
5.2 Estructura interna y funcionamiento del TMR1 102
5.3 Registro de control del TMR1 (T1CON) 103
5.4 Chuleta-resumen de los registros asociados al TMR1 104
5.5 Funcionamiento y programación del TMR2 104
5.6 Chuleta-resumen de los registros asociados al TMR2 106
Programar PIC es fácil: Midiendo el tiempo 107
Diseñar con PIC es fácil: Aplicación de los PIC al control de motores y sensores 114
Capítulo 6 MÓDULOS DE CAPTURA, COMPARACIÓN Y MODULACIÓN DE ANCHURA DE PULSOS 119
6.1 Introducción a los módulos CCP 119
6.2 Modo captura 120
6.3 Modo comparación 121
6.4 Chuleta-resumen de los registros asociados al módulo de captura y al de comparación 122
6.5 Modo de modulación de anchura de pulsos (PWM) 123
6.6 Chuleta-resumen de los registros asociados al módulo PWM 124
Programar PIC es fácil: Trabajo con los módulos CCP 126
Diseñar con PIC es fácil: Aplicación de los microcontroladores: la microbótica 138
Capítulo 7 EL CONVERSOR A/D 143
7.1 Presentación del conversor analógico/digital 143
7.2 Registros de trabajo 143
7.3 Estructura interna y configuración del conversor A/D 145
7.4 Chuleta-resumen de los registros asociados al conversor analógico/digital 150
Programar PIC es fácil: Adquisición de valores con los conversores A/D 151
Diseñar con PIC es fácil: Visualización de valores por pantallas LCD 159
Capítulo 8 MÓDULO DE COMUNICACIÓN SERIE SÍNCRONA 167
8.1 Introducción 167
8.2 Modo SPI 169
8.3 Manejo y programación en el modo SPI 170
Trang 98.4 Módulo MSSP trabajando en modo I2C 173
8.5 Conceptos fundamentales sobre el bus I2C 174
8.5.1 Concepto del bus I2C 174
8.5.2 Terminología del bus I2C 176
8.6 Características generales 176
8.6.1 Transferencia del bit 177
8.6.2 Transferencia de datos 178
8.6.3 Arbitraje sin sincronización de reloj 180
8.6.4 Formato 182
8.7 Direccionamiento 183
8.7.1 Definición del primer byte 183
8.8 Especificaciones eléctricas 184
8.8.1 Tiempos 186
8.9 El bus I2C y los PIC16F87x 187
8.10 Chuleta-resumen de los registros usados para el bus I2C 191
8.11 Funcionamiento del modo maestro 191
8.11.1 Condición de inicio (start) 192
8.11.2 Condición de repetición de inicio (start) 192
8.11.3 Modo maestro en transmisión 192
8.11.4 Modo maestro en recepción 193
8.11.5 Secuencia de reconocimiento 193
8.11.6 Condición de parada (stop) 194
Programar PIC es fácil: Comunicación mediante el módulo MSSP 195
Diseñar con PIC es fácil: Comunicación de datos digitales por radio frecuencia 200
Capítulo 9 EL USART: TRANSMISOR/RECEPTOR SÍNCRONO/ASÍNCRONO SERIE 205
9.1 Comunicación serie asíncrona 205
9.2 Generador de baudios 207
9.3 Transmisor asíncrono 209
9.4 Receptor asíncrono 212
Programar PIC es fácil: Comunicación serie con el USART 215
Capítulo 10 CARACTERÍSTICAS Y APORTACIONES DE LA GAMA MEJORADA 221
10.1 El espectacular desarrollo de los PIC18F 221
10.2 Aportaciones específicas 223
10.3 Nomenclatura 224
10.4 Diagrama de conexiones 224
10.5 Encapsulados 227
Trang 10Capítulo 11 ARQUITECTURA INTERNA 229
11.1 Descripción general 229
11.2 Diagrama de conexionado 232
11.3 Configuración del oscilador 233
10.3.1 Tipos de oscilador 233
10.3.2 El oscilador de cristal 234
10.3.3 Selección del oscilador 235
10.3.4 El registro OSCCON 235
10.3.5 Otros registros de configuración 235
Capítulo 12 LA MEMORIA DE DATOS . 237
12.1 Organización del espacio de datos 237
12.2 Modos de direccionamiento 239
12.2.1 Modo de direccionamiento directo 240
12.2.2 Modo de direccionamiento indirecto 241
12.2.3 Acceso a Banco 241
12.3 El registro de estado (SR) 242
12.4 El registro de control del reset (RCON) 243
12.5 La memoria EEPROM 244
12.5.1 Los registros EEADR y EEADRH 244
12.5.2 Los registros EECON1 y EECON2 244
12.5.3 Lectura de la memoria EEPROM 246
12.5.4 Escritura de la memoria EEPROM 246
Capítulo 13 LA MEMORIA DE PROGRAMA 249
13.1 Organización de la memoria de programa 249
13.2 Operaciones de lectura y escritura de tabla 250
13.3 Los registros de control 250
13.3.1 TABLAT 251
13.3.2 TBLPTR 251
13.3.3 EECON1 y EECON2 252
13.4 Operación de borrado de la memoria FLASH 253
13.5 Escritura de la memoria FLASH 253
13.6 Interfaz para memoria externa 253
13.7 Modo de 16 bits 256
Capítulo 14 LAS INTERRUPCIONES . 259
14.1 Los registros de control de interrupciones 259
14.2 Registro RCON 260
14.3 Registros INTCON 260
14.4 Registros PIR 263
Trang 1114.5 Registros PIE 264
14.6 Registros IPR 264
Capítulo 15 EL REPERTORIO DE INSTRUCCIONES 267
15.1 Juego de instrucciones estándar 267
15.2 Operaciones orientadas al byte 267
15.3 Operaciones orientadas al bit 272
15.4 Operaciones con literales 273
15.4 Operaciones de control 275
Capítulo 16 PERIFÉRICOS Y RECURSOS ESPECÍFICOS 281
16.1 Las puertas de entrada/salida 281
16.1.1 La Puerta A 281
16.1.2 La Puerta B 282
16.1.3 La Puerta C 283
16.1.4 La Puerta D 284
16.1.5 La Puerta E 284
16.1.6 La Puerta F 285
16.1.7 La Puerta G 286
16.1.8 La Puerta H 286
16.1.9 La Puerta J 287
16.2 Temporizadores 288
16.2.1 El TMR0 288
16.2.2 El TMR1 289
16.2.3 El TMR2 y el TMR4 292
16.2.4 El TMR3 292
16.3 Módulos CCP: Captura, Comparación y Modulación de Anchura de Pulsos 296
16.3.1 Modo captura 297
16.3.2 Modo comparación 298
16.3.3 Modo modulación de anchura de pulsos (PWM) 299
16.4 El conversor A/D 300
16.5 Módulos de comunicación 303
16.6 Módulo comparador 304
16.7 Otras características especiales de la CPU 306
Capítulo 17 INTRODUCCIÓN A LOS MICROCONTROLADORES PIC DE 16 BITS 307
17.1 Introducción 307
17.2 Características generales de los PIC24 307
17.3 Arquitectura de la CPU 309
17.4 Modelo de procesador para el programador 310
Trang 1217.3 La memoria de programa 313
17.4 La memoria de datos 315
Capítulo 18 LOS dsPIC 317
18.1 Microcontroladores con prestaciones DSP 317
18.2 Microcontroladores y DSC 319
18.3 Clasificación de los DSC 319
18.3.1 Dispositivos dsPIC30F de propósito general 320
18.3.2 Dispositivos dsPIC30F para el control de sensores 320
18.3.3 Dispositivos dsPIC30F para el control de motores y sistemas de alimentación 321
18.4 Encapsulados y diagramas de conexiones 321
18.5 Arquitectura de la CPU 325
18.6 Las memorias 325
18.7 El camino de datos 327
Anexo A LABORATORIO EXPERIMENTAL “PIC School” 329
A.1 Herramientas de desarrollo recomendadas 329
A.2 Fases en el desarrollo de una aplicación con PIC 332
A.3 Experimentos con la gama media 334
A.3.1 Experimento 1: Entradas y salidas digitales 334
A.3.2 Experimento 2: La máquina “Su Turno” 342
A.3.3 Experimento 3: La pantalla LCD 345
A.3.4 Experimento 4: El frecuencímetro 347
A.3.5 Experimento 5: El conversor ADC 352
A.4 Experimentos con la gama mejorada 354
A.4.1 Experimento 6: El multiplicador de 8x8 bits 355
A.4.2 Experimento 7: Modulación Ancho de Banda (PWM) controlado por potenciómetro 356
A.3.3 Experimento 8: Visualización de dos canales analógicos a través del USART 360
A.5 El compilador de C 365
Bibliografía y direcciones de interés relacionadas con los PIC 369
Índice 371
Trang 13El nombre y logo de Microchip, dsPIC, PIC, PICmicro, PICSTART, PICMASTER, PRO MATE y MPLAB son marcas registradas por Microchip Technology Incorporated en EE.UU y otros países DsPICDEM, dsPIC.net, ICSP: In-Circuit Serial Programming (Programación Serie En Circui- to), ICEPIC, MPASM, MPLIB, MPLINK, MPSIM, PICC, PICkit, PICDEM, PICDEM.net, rfLAB y rfPIC son marcas registradas por Microchip Technology Incorporated en EE.UU y otros países SQTP (Serialized Quick Turn Programming) es una marca de servicio de Microchip Technology In- corporated en EE.UU.
Determinados materiales e informaciones contenidos en esta obra han sido reproducidos con el permiso de Microchip Technology Incorporated No se pueden reproducir ni reeditar dichos mate- riales sin el previo consentimiento escrito de Microchip Technology Incorporated.
Las restantes marcas, logos y productos mencionados en este libro están registrados por sus pectivos propietarios.
res-Marcas registradas
Trang 14El presente libro configura la segunda parte de una obra destinada al estudio y desarrollo de
aplica-ciones con los microcontroladores PIC de Microchip titulada “Microcontroladores PIC: Diseño Práctico de Aplicaciones” En su primera parte se presenta el PIC16F84, paradigma de la sencillez
y la eficacia, y los módulos BASIC STAMP de Parallax, programados en Ensamblador y PBASIC,respectivamente
El impresionante esfuerzo de Microchip dedicado a la actualización de sus productos ha puesto una masiva comercialización de nuevos modelos que le han alzado al primer puesto del ran-king mundial de microcontroladores de 8 bits desde 2002
su-Esta nueva edición actualizada y ampliada recoge, además de los microcontroladores de la
ga-ma media PIC16F87X, a los PIC18F de la gaga-ma mejorada que están teniendo una gran aceptación,
y contiene una introducción a los modernos microcontroladores de 16 bits de las familias PIC24F
y PIC24H, así como a los Controladores Digitales de Señales (DSC) materializados en las familiasdsPIC
En los capítulos iniciales destinados a los PIC16F87X se mantiene la estructura de la primera
par-te de la obra en la que cada capítulo se divide en tres parpar-tes La primera es la “Teoría” en la que sedescribe el bloque al que se dedicaba el capítulo La segunda “Programar es fácil” presenta nume-rosos ejercicios, programas y proyectos, y la tercera, “Diseñar con PIC es fácil” se analizan perifé-ricos, tarjetas comerciales y nuevos diseños comerciales relacionados con los recursos estudiados.Este libro consta de 18 capítulos y un anexo, de los cuales los 9 primeros están dedicados a losPIC16F87X Desde el Capítulo 10 al 16 se hace un estudio en profundidad de la arquitectura, elfuncionamiento y la programación de los PIC18F El Capítulo 17 ofrece una introducción sobre losmicrocontroladores de 16 bits comercializados en las familias PIC24F y PIC24H Finalmente elCapítulo 18 ofrece las principales características y aplicaciones de los Controladores Digitales deSeñales, que reunidos en las familias dsPIC, combinan lo mejor de los microcontroladores de 16bits y de los DSP
El Anexo A es un tutorial experimental que recoge una colección de proyectos de dificultad gresiva y completamente resueltos a nivel hardware y software implementados en base al fantásti-
pro-co sistema de desarrollo PIC School diseñado y pro-comercializado por Ingeniería de Microsistemas Programados S L (www.microcontroladores.com) Los experimentos y programas de este anexo
hacen un recorrido práctico sobre todos los recursos y periféricos de los PIC16F87X y delPIC18F4520, que culmina con la utilización del compilador de C y la resolución de programas
xiii
Prólogo
Trang 15Agradecemos muy sinceramente el soporte técnico recibido por Microchip desde su sede central
y desde su representación en Madrid Todos los nombres, informaciones y productos de Microchip
a los que se hace mención en este libro están protegidos por marcas registradas y patentes en todo
el mundo, no estando permitido reproducirlos sin el permiso escrito del fabricante También
reco-nocemos la excelente colaboración que nos ha prestado Ingeniería de Microsistemas Programados
S L que ha puesto a nuestra disposición todas las herramientas que hemos necesitado para
desa-rrollar los temas prácticos de esta obra Igualmente quedamos muy agradecidos a los Sres Benito
Moreno y Pepe Bustamante de Sagitron y a nuestros amigos Goyo y Jorge de Bilbao Electrónica.
Trang 161.1 IMPORTANCIA DE LOS MICROCONTROLADORES PIC
Microchip, fabricante de los microcontroladores PIC, se mantiene desde el año 2002 como líder
mundial de ventas de microcontroladores de 8 bits Como se aprecia en el gráfico de la Figura 1.1,
en el año 2005 el mencionado fabricante facturó un total de 847 millones de dólares, de los cuales
675 procedieron de las ventas de microcontroladores (MCU)
Las ventas de los productos de Microchip son absorbidos en un 43% por Asia y Japón, mientrasque Europa soporta el 28% y América el 29%
En cuanto a los segmentos de mercado a los que se destinan los microcontroladores PIC
desta-ca el área genéridesta-ca de la Electrónidesta-ca de Consumo con el 35%, seguida por la industria de ción con el 18% (Figura 1.2.)
automo-1
La familia de
microcontroladores PIC
Figura 1.1. Gráfico que muestra el aumento de las ventas anuales de Microchip en las que destaca
el porcentaje debido a los microcontroladores (MCU).
AÑO 95 AÑO 96 AÑO 97 AÑO 98 AÑO 99 AÑO 00 AÑO 01 AÑO 02 AÑO 03 AÑO 04 AÑO 05
Trang 17Figura 1.2. Distribución de las ventas de microcontroladores PIC en los principales segmentos del
mercado.
AUTOMOCION 18%
CONSUMO 35%
INDUSTRIA 17%
COMUNICACIONES 13%
OFIMATICA 17%
Figura 1.3. El gráfico recoge el espectacular crecimiento del número de diferentes modelos de
microcontroladores PIC de 8 bits.
AÑO 95 AÑO 96 AÑO 97 AÑO 98 AÑO 99 AÑO 00 AÑO 01 AÑO 02 AÑO 03 AÑO 04
Microchip tiene una gran preocupación por el cumplimiento de las normas ecológicas y ofrece
una selección de sus productos, cada vez más numerosa, libre de plomo Además, el éxito y tación de los microcontroladores de este fabricante viene avalado por la oferta creciente de los mo-delos que comercializa y que se aprecia en el gráfico de la Figura 1.3
acep-La gran diversidad de modelos de microcontroladores permite al diseñador encontrar el que tenga todos los recursos y capacidades de memoria que precisa para su aplicación (Figura 1.4.)
con-La tecnología empleada en la fabricación de los dispositivos PIC ha pasado de las 0,7 micras
en 1998 a las 0,22 micras en 2006 Esto ha supuesto una reducción en el voltaje de alimentación,que ha pasado de estar comprendida entre 2 y 5,5 V, para funcionar con 5V, a un margen entre 2 y3,6 V, siendo la nominal de 3,3 V aunque las E/S siguen trabajando con 5V (Figura 1.5.)
Una de las grandes ventajas de los microcontroladores de Microchip es su “migrabilidad”, que
significa la posibilidad de cambiar de modelo de MCU y pasar a otro más potente con más dad de memoria y periféricos, manteniendo la distribución de las patitas en el encapsulado o “pin-out”, la compatibilidad del software y del repertorio de instrucciones, la compatibilidad de los peri-féricos y la de las herramientas de desarrollo
Trang 18capaci-1.2 CLASIFICACIÓN DE LOS MICROCONTROLADORES PIC
Estos microcontroladores o MCU se caracterizan por su arquitectura Harvard con memorias de grama y de datos independientes, lo que permite la accesibilidad simultánea y la diversidad en lalongitud de las posiciones y el tamaño de ambas memorias (Figura 1.6.)
pro-Genéricamente los microcontroladores se clasifican según el tamaño de los datos que maneja el
repertorio de instrucciones y existen 4 grandes grupos: de 4, de 8, de 16 y de 32 bits Microchip
só-lo fabrica microcontroladores de 8 y de 16 bits y como se ha indicado es el líder mundial en ventasdel primer grupo
1.3 MICROCONTROLADORES PIC DE 8 BITS
Se distinguen porque la longitud de los datos nativos que manejan las instrucciones es de 8 bits, que
se corresponde con el tamaño del bus de datos y el de los registros de la CPU
Figura 1.4. La variedad de dispositivos PIC con sus distintas configuraciones permite encontrar el
modelo que cumpla con las especificaciones de cualquier proyecto.
PICmicro®
MICROCONTROLADORES
O DSC (dsPIC)
Buses de Comunicación
Controladores Refrigeración Conversor D/A
Drivers de Potencia
Procesamiento
de voz
Motores Relés
LCD
LED
Funciones DSP de Encriptación
Filtros Amplificadores
Potenciómetro
digital
Voltaje de Referencia
E/S de Voltaje Alto
Comunicaciones
Trang 19Figura 1.5. Evolución de la tecnología de fabricación desarrollada por Microchip junto a la de la
tensión correspondiente de alimentación.
0.7m
FLASH/EPROM/ROM
120K
2 – 5.5V (NÚCLEO y E/S)
1998 2001 2003 2006
Figura 1.6. La arquitectura Harvard dispone de dos memorias independientes permitiendo que la
longitud de las posiciones y la capacidad de cada una sea la más adecuada.
Los microcontroladores PIC de 8 bits se clasifican en tres grandes gamas: Base, Media y rada, con un total de unos 300 modelos diferentes que contienen distintas capacidades de memoria,periféricos y distintos tipos de encapsulados (Figura 1.7.)
Trang 20Mejo-1.3.1 La gama Base
Los modelos de esta gama se caracterizan porque responden a un juego de 33 instrucciones
máqui-na de 12 bits de longitud cada umáqui-na y disponen de umáqui-na Pila con sólo dos niveles de profundidad Suscapacidades de memoria al igual que el número de recursos internos son reducidos, lo que limita sucampo de aplicación Está compuesta por 14 modelos, de los cuales 6 están encapsulados sólo con
6 patitas, por lo que se les suele apodar “enanos” (Figura 1.8.)
Figura 1.7. Los microcontroladores PIC de 8 bits se clasifican en 3 grandes gamas: Base, Media y
PIC10F2XX PIC12F5XX PIC16F5XX
Figura 1.8. Posicionamiento de los 14 dispositivos PIC de la gama Base teniendo en cuenta su
capacidad de memoria de programa y las patitas con las que están encapsulados.
PIC10F222
PIC12F508 PIC12F509 PIC12F510
PIC16F505 PIC16F506
Trang 21Los PIC enanos de 6 patitas tienen un gran éxito comercial para resolver aplicaciones simplespor su reducido volumen y precio En ellos la alimentación se aplica a 2 de las patitas, quedan-
do las 4 restantes para las E/S y las funciones de sus periféricos, entre los que se encuentra untemporizador o Timer, un Comparador analógico, un CAD de 8 bits, Perro Guardián, etc VéaseFigura 1.9
Figura 1.9. Los PIC enanos de 6 patitas de la gama Base ofrecen una capacidad de memoria
y un conjunto de recursos internos suficientes para resolver multitud de aplicaciones sencillas.
Timer 0 (8)
MEM PROG.:
256/512 w RAM
F204
512w RAM 24
po-la finalidad de facilitar po-la migrabilidad
El aumento del número de patitas significa el incremento en las capacidades de memoria y en elnúmero de los periféricos y recursos integrados en el dispositivo
1.3.2 La gama Media
Los microcontroladores que componen esta gama responden a un repertorio de 35 instrucciones con
un formato de 14 bits de longitud cada una, teniendo la Pila 8 niveles de profundidad y
disponien-do de un vector de interrupción Es una gama numerosa que alcanza en la actualidad 71 modelos ferentes, que comienza con los que se hallan encapsulados con 8 patitas y llegan hasta los que tie-nen 68 patitas En la Figura 1.12 se presentan los aspectos más relevantes de algunos PIC de la gamaMedia de 8 patitas y otros con más
di-En la Figura 1.13 se presenta junto a la nomenclatura o designación de los PIC de la gama dia las principales características que les distinguen
Trang 22Me-LA F
Figura 1.10 Principales características de los PIC de la gama Base Recientemente se comercializan 4 nuevos modelos: PIC10F220,
PIC10F222, PIC12F510 y PIC16F506, cuyas características pueden consultarse en el sitio en Internet del fabricante.
** Requiere un módulo adaptador específico ICD.
MODELO PROG.
Words
RAM Bytes
VOLTAJE (V) ADC
CANALES COMP. Timers /WDT
PIC10FXXX
Trang 23Figura 1.11 Para favorecer la migrabilidad se mantiene la asignación de las funciones de las patitas en
los modelos de 8, 14 y 20 patitas.
RA0 RA1 RA2 RC0 RC1 RC2 RB4 RB5 RB6
RA5 RA4 RA3 RC5 RC4 RC3 RC6 RC7 RB7
Int RC + Osciladores
Timer0(8) Timer1(16) Timer2(8)
ADC de 10 bits
Comparador Analógico +Vref
F675 F615 F629
8 patitas
6 E/S*
FLASH: 1kw RAM 64 E2P 128
ADC, 4 can 1Comparador Analógico
ADC 4 can Reg Int
E2P 0 -
F914 F916 F913
4kw RAM:256
EEPROM:256 28pat 40pat.
F946 F917 8kw RAM:352 RAM 336
28pat 40pat 64pat.
25E/S 35E/S 25E/S 35E/S 25E/S LCD
16/60 LCD 24/96 LCD 16/60
LCD 24/96 LCD 24/96
5 x ADC
8 x ADC
5 x ADC 8 x ADC1xCCP 2xCCP 1xCCP 2xCCP
Figura 1.12 Características relevantes de algunos PIC de la gama Media con 8 patitas junto a otros
de más patitas.
Trang 24RAM Bytes
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
1-8BIT 1-16BIT 1-WDT
1-8BIT 1-16BIT 1-WDT
1-16BIT 2-8BIT 1-WDT
PIC16CXXX
1-8BIT 1-16BIT 1-WDT
Trang 25-MICROCONTROLADORES «PIC» DISEÑO PRÁCTICO DE APLIC
RAM Bytes
LINEAS E/S ENCAPSULADOS
Analógico Digital FREC.
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
USART,
-1-16BIT 2-8BIT 1-WDT
I 2
-1-16BIT 2-8BIT 1-WDT
USART, Baja vel.
USB
-1-16BIT 2-8BIT 1-WDT
USART, Baja vel.
USB
-1-16BIT 2-8BIT 1-WDT
MI 2
Trang 26RAM Bytes
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
-1-16BIT 2-8BIT 1-WDT
1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
I 2
-1-16BIT 2-8BIT 1-WDT
1-16BIT 2-8BIT 1-WDT
1-16BIT 2-8BIT 1-WDT
1-8BIT 1-16BIT 1-WDT
1-8BIT 1-16BIT 1-WDT
Trang 27MICROCONTROLADORES «PIC» DISEÑO PRÁCTICO DE APLIC
RAM Bytes
LINEAS E/S ENCAPSULADOS
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
1-16BIT 2-8BIT 1-WDT
1-8BIT 1-16BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
USART
1-16BIT 2-8BIT 1-WDT
USART,
1-16BIT 2-8BIT 1-WDT
USART,
I 2
Trang 28RAM Bytes
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
-1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
-1-16BIT 2-8BIT 1-WDT
1-16BIT 2-8BIT 1-WDT
AUSART,
1-16BIT 2-8BIT 1-WDT
AUSART,
MI 2
Trang 29-MICROCONTROLADORES «PIC» DISEÑO PRÁCTICO DE APLIC
RAM Bytes
LINEAS E/S ENCAPSULADOS
Analógico Digital FREC.
CCP/
ECCP nW ADC
CANALES COMP.
Timers /WDT
BOR
-Figura 1.13 Características de algunos modelos de la gama Media Recientemente se comercializan nuevos modelos: PIC16F639,
PIC16F685, PIC16F687 PIC16F689, PIC16F690, PIC16F785 y PIC16F946, cuyas características pueden consultarse en la web del fabricante.
** Requiere un módulo adaptador específico ICD.
Trang 301.3.3 La gama Mejorada
Dispone de un repertorio de 77 instrucciones de 16 bits de longitud cada una, una Pila con 31 les de profundidad y 2 vectores de interrupción Los modelos PIC que conforman esta gama res-ponden a la nomenclatura PIC18Xxxx, dedicándose la Figura 1.14 al significado de cada uno de loscampos
nive-Figura 1.14 Significado de cada uno de los campos que componen la nomenclatura de los PIC18Xxxx
8:>68-100 9: >100 o más
PIC18VTABCD
ESPECIFICACIÓN CPU
TECNOLOGÍA DE MEMORIA
C-OTP R-ROM F-FLASH
ESPECIFICACIÓN VOLTAJE
N/A-Normal
B-Tamaño de memoria de programa
de instrucción La Figura 1.15 muestra las características específicas de un conjunto de dispositivos
de la gama Mejorada de 64 y de 80 patitas
Finalmente, en la Figura 1.16 se ofrece la tabla de algunos modelos que componen esta gamacon sus principales características
Trang 31Figura 1.15 Recursos y características de algunos dispositivos de la gama Mejorada de 64 y 80
POR ICSP BOR
8627 8722 8622
Multiplicador
HW
PLVD
6622 6627 6527
64 patitas
8529 6722
80 patitas
54 E/S 70 E/S
96k 128k 64k
64k 96k 48k 128k 48k
RAM:3936 EEPROM: 1024
Acceso a Memoria
Externa
1.4 MICROCONTROLADORES PIC DE 16 BITS
Los requerimientos técnicos que exigen las modernas aplicaciones precisan microcontroladores
más potentes que los de 8 bits y, para poderlas atender, Microchip ha diseñado nuevos
dispositi-vos que manejan en modo nativo datos de 16 bits y que se integran en arquitecturas de mayorcomplejidad
Hay dos grandes gamas de microcontroladores de 16 bits:
1.4.1 Gama de microcontroladores MCU de 16 BITS
La primera familia de esta gama comercializada por Microchip es la de los modelos con la
nomen-clatura genérica PIC24F que se fabrican con una tecnología de 0,25 micras, alcanza un
rendimien-to de 16 MIPS a 32 MHz y está orientada a resolver aquellos diseños que no podían ser cubierrendimien-toscon los PIC18Xxxx
Los PIC24F poseen una arquitectura Harvard modificada con un bus de datos de 16 bits y coninstrucciones de una longitud de 24 bits Pueden manejar una memoria de programa lineal de hasta
8 MB y una de datos de hasta 64 KB (Figura 1.17.)
Trang 32RAM Bytes
CCP/ ECCP nW ADC
CAN2.CB,
MI 2 C/SPI, EUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
2x AUSART,
MI 2 C/SPI
2x EUSART,
MI 2 C/SPI
32KHz PBOR
EUSART,
MI 2 C/SPI, CAN2.CB
2x EUSART,
MI 2 C/SPI
32KHz PBOR
2x EUSART,
MI 2 C/SPI
32KHz PBOR
Trang 33MICROCONTROLADORES «PIC» DISEÑO PRÁCTICO DE APLIC
RAM Bytes
LINEAS E/S ENCAPSULADOS
Analógico Digital FREC.
CCP/
ECCP nW ADC
EUSART,
MI 2 C/SPI, CAN2.CB
2x EUSART,
MI 2 C/SPI
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
MI 2 C/SPI, EUSART, AUSART
32KHz PBOR
Trang 34El núcleo del procesador se alimenta con 2,5 V, aunque las líneas de E/S se alimentan con 3,3 V
y pueden funcionar con los típicos niveles TTL de 5 V Hay 9 modelos diferentes de PIC24F cuyasprincipales características se ofrecen en la Figura 1.18
Figura 1.17 Diagrama por bloques que muestra los principales recursos que conforman los
microcontroladores de 16 bits PIC24F.
GP I/O UART(2)
I 2
C TM
(2) SPI TM
(2) RTCC PMP JTAG y Emul.
Interfaz
Multiplicador
16 X 16
Registro de Desplazamiento
Generación de direcciones
ALU-16 bit
Banco de Registros
16 x 16
BUS DE MEMORIA PROCESADOR DE 16 BITS y 16 MIPS
Memoria de programa (bytes) 128 K
Memoria de instrucciones (words) 42 K
Memoria de datos (bytes) 8 K
Sobrepasamiento de la Pila (PWRT, OST)
#MCLR (optional) WDT
Programación con voltaje bajo Sí
Reset programable Brown-out Sí
Set de instrucciones 76 instrucciones la mayoría de 24 bits
Encapsulados De 64 a 100 patitas
Figura 1.18 Principales características de los 9 modelos de la familia PIC24F.
Trang 35La otra familia de microcontroladores MCU de 16 bits sigue la nomenclatura PIC24H y zan un rendimiento de 40 MIPS, pudiendo disponer de una memoria de programa FLASH de has-
alcan-ta 256 KB y una RAM de hasalcan-ta 16 KB Todos sus modelos están encapsulados en formato TQFPcon 64, 80 y 100 patitas Su principal aportación frente a los PIC24F es la de incluir un Controlador
de DMA con 8 canales (Figura 1.19.)
1.4.2 Gama de microcontroladores DSC de 16 bits
Estos microcontroladores de 16 bits añaden a las prestaciones típicas de los MCU anteriores los cursos hardware y software propios de los DSP (Procesadores Digitales de Señales) lo que permiteutilizarlos en las extraordinarias aplicaciones relacionadas con el procesado digital de señales In-
re-tentan aprovechar todas las ventajas de los microcontroladores MCU y de los DSP y Microchip les
identifica con el nombre DSC: Controladores Digitales de Señales
Los DSC constan de dos familias, la dsPIC30F y la dsPIC33F Los modelos de la familia dsPIC30Ftienen importantes capacidades de memoria, contienen la mayoría de los recursos y periféricos y tie-nen un rendimiento de 30 MIPS cuando se les alimenta con un voltaje comprendido entre 4,5 y 5,5 V.Incorporan un “motor DSP” en el Camino de Datos que les permite realizar las instrucciones que rea-
Modelo Patitas FLASH
(KB) RAM
CANALES DMA
Timer 16-bit
Módulo Capt.
Módulo Comp ADC UART SPI TM
Trang 36lizan las operaciones matemáticas típicas de los algoritmos usados en el procesamiento digital de lasseñales Según la orientación práctica de los modelos los dsPIC30F se dividen en tres categorías:
a) dsPIC30F de Propósito General, con 8 modelos.
b) dsPIC30F de Control de Motores, con 9 modelos.
c) dsPIC30F para Control de Sensores, con 4 modelos.
Los dispositivos pertenecientes a la familia dsPIC33F son compatibles con los dsPIC30F puestoque tienen el mismo repertorio de instrucciones, la misma distribución del patillaje y utilizan las mis-mas herramientas de desarrollo Sin embargo los dsPIC33F se distinguen por las siguientes cualidades:
Figura 1.20 Relación de algunos modelos de dsPIC30F destinados al Control de Motores con sus
características.
Modelo Patitas Mem de
programa
RAM Bytes
EEPROM Bytes
Timer 16-bit
Módulo Capt.
Módulo Comp. PWM
CAD
10 bits
500 ksps QEI UART SPI TM
I 2
C TM CAN
1 Se alimentan con 3,3 V aunque las E/S pueden trabajar con niveles TTL.
2 Incorporan un Controlador DMA de 8 canales.
3 Aumenta el número de interrupciones y excepciones.
4 Alcanza un rendimiento de 40 MIPS.
5 Posee un interfaz para CODEC.
6 Hay modelos con 256 KB de memoria FLASH y 30 KB de RAM.
Existe un total de 27 dispositivos dsPIC33F, 15 de los cuales se encuadran dentro de los de pósito General y el resto en el de Control de Motores (Figura 1.21.) No disponen de EEPROM.Los modelos dsPIC33F de Propósito General son adecuados para aplicaciones de voz y audio,seguridad, electromedicina, módem, etc Los agrupados en el Control de Motores se orientan a loselectrodomésticos como las lavadoras, al control de la dirección electrónica de automóviles, controlmedioambiental, sistemas de alimentación ininterrumpible, inversores y a matrices de iluminacióncon LED En la Figura 1.22 se muestra el diagrama por bloques correspondiente a la estructura in-terna de los dsPIC33F
Trang 37Pro-Modelo Patitas FLASH
(Kbyte) (Kbyte) RAM
Timer
16 bits
Módulo Capt.
Módulo Comp.
Convertidor ADC UART SPI TM
Figura 1.21 Tabla con las características principales de algunos modelos de la familia dsPIC33F.
Figura 1.22 Diagrama por bloques de la estructura interna de los dsPIC33F.
Temporizador 16 bits
Watchdog CAD de 12 bits y 16 canales CAD de 12 bits y 16 canales UART(2)
I 2
C TM
(2) SPI TM
(2) CAN (1-2) CODEC I/F MOTOR
Multiplicador
17 X 17
Generación de direcciones
Control de Motores
DMA
ALU-16 bit Banco de Registros
16 x 16
Trang 38RECORDANDO EL VIEJO PIC16F84
En esta sección demostraremos, capítulo a capítulo, que la programación de los nuevos PIC hacemás sencilla la realización de ciertas tareas en muchos casos, como consecuencia de sus recursos.Todo es cuestión de probar y no quedarse en meros espectadores, así que manos a la obra que co-mienza la función y usted es el principal actor
lí-El programa debe mostrar cuándo el valor lógico que introducen ambos interruptores es cero
Pa-ra ello, si los dos interruptores introducen por la Puerta A nivel lógico 0, los LEDs de la Puerta Bdeben encenderse, y en los demás casos permanecen apagados
Esquema eléctrico
Tras entender lo que se pide hay que especificar el esquema eléctrico del circuito para saber cómoestán conectados los periféricos (Figura 1.23.) En dicho esquema se representa el PIC, con los ele-mentos auxiliares que siempre necesita (cristal, alimentación y circuito de reset), y los periféricos
de entrada/salida que se utilizan en cada momento
En este ejercicio tanto los interruptores como los LEDs están conectados para ser activos por vel alto En el caso de los interruptores este hecho no altera la resolución del problema, pero si losLED estuvieran conectados para activarse por nivel bajo, el valor para encenderlos y apagarlos se-ría justamente el contrario
ni-Organigrama
Otra práctica muy recomendable antes de empezar a programar es plasmar en un organigrama la
for-ma de resolver el problefor-ma (Figura 1.24.)
Cuanto más complicado sea dicho enunciado, más abstracto será el organigrama, pudiendo cluso necesitarse varios para llegar a un nivel aceptable de concretización Al contrario, si el pro-blema es sencillo el programa es casi una traducción inmediata del organigrama a código
in-Programar PIC es fácil
23
Trang 39Figura 1.23 Esquema eléctrico correspondiente al ejercicio propuesto.
Figura 1.24 Organigrama del ejercicio.
Trang 40Programa comentado
Una vez dados estos pasos previos estamos en disposición de comenzar la programación
Vamos a seguir unas reglas básicas a la hora de escribir los programas que, aunque no son gatorias, facilitan la lectura y la comprensión
obli-Siguiendo estas normas y en base al esquema eléctrico y al organigrama se obtiene el programaque aparece bajo estas líneas Antes de continuar, ¿por qué no intenta resolverlo usted mismo y com-prueba luego cómo anda su práctica de programación con los PIC? Recuerde que no hay un modoúnico de resolución y que se aprende practicando y cometiendo errores
serán escritas en minúsculas.
; procesador
; hexadecimal
; los registros internos en
; utilizadas de Puerta A