MICROCONTROLADORES «PIC»
Diseño práctico de aplicaciones
SEGUNDA PARTE:
PIC16F87X, PIC18FXXXX
2ª Edición
MICROCONTROLADORES «PIC»
Diseño práctico de aplicaciones
SEGUNDA PARTE:
PIC16F87X, PIC18FXXXX
2ª Edición
José M.a Angulo Usategui
Dr. Ingeniero Industrial
Catedrático de Arquitectura de Computadores
Universidad de Deusto
Susana Romero Yesa
Licenciada en Informática
Profesora de Arquitectura de Computadores
Universidad de Deusto
Ignacio Angulo Martínez
Licenciado en Informática
Profesor 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
MICROCONTROLADORES «PIC». Diseño práctico de aplicaciones.
SEGUNDA PARTE: PIC16F87X, PIC18FXXXX. 2.ª edición
No está permitida la reproducción total o parcial de este libro, ni su tratamiento
informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea
electró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, por
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.
Edificio Valrealty, 1.a planta
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
Contenido
Prólogo ....................................................................................................................................
xi
Capítulo 1. LA FAMILIA DE MICROCONTROLADORES PIC ...............................
1
1.1.
1.2.
1.3.
Importancia de los microcontroladores PIC...........................................................
Clasificación de los microcontroladores PIC.........................................................
Microcontroladores PIC de 8 bits ..........................................................................
1.3.1. La gama Base ...........................................................................................
1.3.2. La gama Media.........................................................................................
1.3.3. La gama Mejorada....................................................................................
Microcontroladores PIC de 16 bits ........................................................................
1.4.1. Gama de microcontroladores MCU de 16 bits.........................................
1.4.2. Gama de microcontroladores DSC de 16 bits ..........................................
1
3
3
5
6
15
16
16
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
1.4.
2.1.
2.2.
2.3.
2.4
Introducción ...........................................................................................................
Procesador RISC con arquitectura Harvard ...........................................................
Organización de la memoria de programa .............................................................
Organización de la memoria de datos RAM ..........................................................
2.4.1. Registros específicos para el control de la memoria de programa ...........
33
34
38
39
39
v
vi
CONTENIDO
2.4.2. Control de la memoria de datos................................................................
Diagrama de conexionado......................................................................................
Repertorio de instrucciones....................................................................................
39
42
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 MEMORIAS FLASH Y EEPROM .....................................................................
57
2.5.
2.6.
3.1.
3.2.
3.3.
3.4.
Los registros de control..........................................................................................
Registro de estado (STATUS) ................................................................................
Registro de opciones (OPTION)............................................................................
Registro para controlar las interrupciones..............................................................
3.4.1. Registro de control de interrupciones (INTCON)....................................
3.4.2. Registro de permiso de interrupciones 1 (PIE1) ......................................
3.4.3. Registro de permiso de interrupciones 2 (PIE2) ......................................
3.4.4. Registros de los señalizadores de interrupciones 1 y 2 (PIR1 y PIR2).........
Lectura y escritura de las memorias EEPROM y FLASH.....................................
57
57
59
59
61
61
62
62
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
3.5.
Capítulo 4.
LAS PUERTAS DE E/S Y RECURSOS ESPECIALES DEL PROCESADOR ...........................................................................................................
81
Puertas de E/S ........................................................................................................
4.1.1. Puerta A....................................................................................................
4.1.2. Puerta B ....................................................................................................
4.1.3. Puerta C ....................................................................................................
4.1.4. Puerta D....................................................................................................
4.1.5. Puerta E ....................................................................................................
Palabra de configuración........................................................................................
Palabras de identificación ......................................................................................
Reinicialización o reset ..........................................................................................
Perro Guardián (WDT: watchdog timer) ...............................................................
Modo de reposo o de bajo consumo.......................................................................
Programación de los PIC16F87x ...........................................................................
81
81
83
85
85
86
86
87
88
91
91
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
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
CONTENIDO
Capítulo 5.
5.1.
5.2.
5.3.
5.4.
5.5.
5.6.
vii
LOS TEMPORIZADORES .......................................................................... 101
Tipos y características generales ...........................................................................
Estructura interna y funcionamiento del TMR1 ....................................................
Registro de control del TMR1 (T1CON) ...............................................................
Chuleta-resumen de los registros asociados al TMR1 ...........................................
Funcionamiento y programación del TMR2 ..........................................................
Chuleta-resumen de los registros asociados al TMR2 ...........................................
101
102
103
104
104
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.
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
MÓDULOS DE CAPTURA, COMPARACIÓN Y MODULACIÓN DE
ANCHURA DE PULSOS............................................................................. 119
Introducción a los módulos CCP ...........................................................................
Modo captura .........................................................................................................
Modo comparación ................................................................................................
Chuleta-resumen de los registros asociados al módulo de captura y al
de comparación ......................................................................................................
Modo de modulación de anchura de pulsos (PWM)..............................................
Chuleta-resumen de los registros asociados al módulo PWM ...............................
119
120
121
122
123
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.
7.2.
7.3.
7.4.
Presentación del conversor analógico/digital.........................................................
Registros de trabajo................................................................................................
Estructura interna y configuración del conversor A/D ..........................................
Chuleta-resumen de los registros asociados al conversor analógico/digital ..........
143
143
145
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.
8.1.
8.2.
8.3.
MÓDULO DE COMUNICACIÓN SERIE SÍNCRONA ........................... 167
Introducción ........................................................................................................... 167
Modo SPI ............................................................................................................... 169
Manejo y programación en el modo SPI................................................................ 170
viii
CONTENIDO
8.4.
8.5.
Módulo MSSP trabajando en modo I2C ................................................................
Conceptos fundamentales sobre el bus I2C ...........................................................
8.5.1. Concepto del bus I2C ...............................................................................
8.5.2. Terminología del bus I2C .........................................................................
8.6. Características generales ........................................................................................
8.6.1. Transferencia del bit .................................................................................
8.6.2. Transferencia de datos ..............................................................................
8.6.3. Arbitraje sin sincronización de reloj ........................................................
8.6.4. Formato ....................................................................................................
8.7. Direccionamiento ...................................................................................................
8.7.1. Definición del primer byte .......................................................................
8.8. Especificaciones eléctricas.....................................................................................
8.8.1. Tiempos ....................................................................................................
8.9. El bus I2C y los PIC16F87x ..................................................................................
8.10. Chuleta-resumen de los registros usados para el bus I2C ......................................
8.11. Funcionamiento del modo maestro ........................................................................
8.11.1. Condición de inicio (start)........................................................................
8.11.2. Condición de repetición de inicio (start) ..................................................
8.11.3. Modo maestro en transmisión ..................................................................
8.11.4. Modo maestro en recepción .....................................................................
8.11.5. Secuencia de reconocimiento ...................................................................
8.11.6. Condición de parada (stop).......................................................................
173
174
174
176
176
177
178
180
182
183
183
184
186
187
191
191
192
192
192
193
193
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.
9.1.
9.2.
9.3.
9.4.
EL USART: TRANSMISOR/RECEPTOR SÍNCRONO/ASÍNCRONO
SERIE..................................................................................................................... 205
Comunicación serie asíncrona ...............................................................................
Generador de baudios.............................................................................................
Transmisor asíncrono .............................................................................................
Receptor asíncrono.................................................................................................
205
207
209
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.
10.2.
10.3.
10.4.
10.5.
El espectacular desarrollo de los PIC18F ..............................................................
Aportaciones específicas........................................................................................
Nomenclatura .........................................................................................................
Diagrama de conexiones ........................................................................................
Encapsulados..........................................................................................................
221
223
224
224
227
CONTENIDO
Capítulo 11.
ix
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 .........................................................................
12.2. Modos de direccionamiento ...................................................................................
12.2.1. Modo de direccionamiento directo...........................................................
12.2.2. Modo de direccionamiento indirecto........................................................
12.2.3. Acceso a Banco ........................................................................................
12.3. El registro de estado (SR) ......................................................................................
12.4. El registro de control del reset (RCON).................................................................
12.5. La memoria EEPROM ...........................................................................................
12.5.1. Los registros EEADR y EEADRH...........................................................
12.5.2. Los registros EECON1 y EECON2..........................................................
12.5.3. Lectura de la memoria EEPROM ............................................................
12.5.4. Escritura de la memoria EEPROM ..........................................................
Capítulo 13.
LA MEMORIA DE PROGRAMA ................................................................ 249
13.1. Organización de la memoria de programa .............................................................
13.2. Operaciones de lectura y escritura de tabla............................................................
13.3. Los registros de control..........................................................................................
13.3.1. TABLAT ...................................................................................................
13.3.2. TBLPTR ...................................................................................................
13.3.3. EECON1 y EECON2 ...............................................................................
13.4. Operación de borrado de la memoria FLASH .......................................................
13.5. Escritura de la memoria FLASH............................................................................
13.6. Interfaz para memoria externa ...............................................................................
13.7. Modo de 16 bits......................................................................................................
Capítulo 14.
14.1.
14.2.
14.3.
14.4.
237
239
240
241
241
242
243
244
244
244
246
246
249
250
250
251
251
252
253
253
253
256
LAS INTERRUPCIONES .............................................................................. 259
Los registros de control de interrupciones .............................................................
Registro RCON ......................................................................................................
Registros INTCON ................................................................................................
Registros PIR .........................................................................................................
259
260
260
263
x
CONTENIDO
14.5. Registros PIE.......................................................................................................... 264
14.6. Registros IPR ......................................................................................................... 264
Capítulo 15.
15.1.
15.2.
15.3.
15.4.
15.4.
EL REPERTORIO DE INSTRUCCIONES ................................................ 267
Juego de instrucciones estándar .............................................................................
Operaciones orientadas al byte ..............................................................................
Operaciones orientadas al bit .................................................................................
Operaciones con literales .......................................................................................
Operaciones de control...........................................................................................
Capítulo 16.
PERIFÉRICOS Y RECURSOS ESPECÍFICOS......................................... 281
16.1. Las puertas de entrada/salida .................................................................................
16.1.1. La Puerta A...............................................................................................
16.1.2. La Puerta B...............................................................................................
16.1.3. La Puerta C...............................................................................................
16.1.4. La Puerta D...............................................................................................
16.1.5. La Puerta E ...............................................................................................
16.1.6. La Puerta F ...............................................................................................
16.1.7. La Puerta G...............................................................................................
16.1.8. La Puerta H...............................................................................................
16.1.9. La Puerta J ................................................................................................
16.2. Temporizadores ......................................................................................................
16.2.1. El TMR0...................................................................................................
16.2.2. El TMR1...................................................................................................
16.2.3. El TMR2 y el TMR4 ................................................................................
16.2.4. El TMR3...................................................................................................
16.3. Módulos CCP: Captura, Comparación y Modulación de Anchura de Pulsos .......
16.3.1. Modo captura............................................................................................
16.3.2. Modo comparación...................................................................................
16.3.3. Modo modulación de anchura de pulsos (PWM).....................................
16.4. El conversor A/D ...................................................................................................
16.5. Módulos de comunicación .....................................................................................
16.6. Módulo comparador ...............................................................................................
16.7. Otras características especiales de la CPU.............................................................
Capítulo 17.
17.1.
17.2.
17.3.
17.4.
267
267
272
273
275
281
281
282
283
284
284
285
286
286
287
288
288
289
292
292
296
297
298
299
300
303
304
306
INTRODUCCIÓN A LOS MICROCONTROLADORES PIC
DE 16 BITS ......................................................................................................... 307
Introducción ...........................................................................................................
Características generales de los PIC24 ..................................................................
Arquitectura de la CPU ..........................................................................................
Modelo de procesador para el programador...........................................................
307
307
309
310
CONTENIDO
xi
17.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 ............................................................
18.2. Microcontroladores y DSC ....................................................................................
18.3. Clasificación de los DSC .......................................................................................
18.3.1. Dispositivos dsPIC30F de propósito general ...........................................
18.3.2. Dispositivos dsPIC30F para el control de sensores..................................
18.3.3. Dispositivos dsPIC30F para el control de motores y sistemas
de alimentación.........................................................................................
18.4. Encapsulados y diagramas de conexiones .............................................................
18.5. Arquitectura de la CPU ..........................................................................................
18.6. Las memorias .........................................................................................................
18.7. El camino de datos .................................................................................................
Anexo A.
317
319
319
320
320
321
321
325
325
327
LABORATORIO EXPERIMENTAL “PIC School”........................................ 329
A.1. Herramientas de desarrollo recomendadas.............................................................
A.2. Fases en el desarrollo de una aplicación con PIC ..................................................
A.3. Experimentos con la gama media ..........................................................................
A.3.1. Experimento 1: Entradas y salidas digitales.............................................
A.3.2. Experimento 2: La máquina “Su Turno”..................................................
A.3.3. Experimento 3: La pantalla LCD .............................................................
A.3.4. Experimento 4: El frecuencímetro ...........................................................
A.3.5. Experimento 5: El conversor ADC ..........................................................
A.4. Experimentos con la gama mejorada .....................................................................
A.4.1. Experimento 6: El multiplicador de 8x8 bits............................................
A.4.2. Experimento 7: Modulación Ancho de Banda (PWM) controlado
por potenciómetro.....................................................................................
A.3.3. Experimento 8: Visualización de dos canales analógicos a través
del USART ...............................................................................................
A.5. El compilador de C ................................................................................................
329
332
334
334
342
345
347
352
354
355
356
360
365
Bibliografía y direcciones de interés relacionadas con los PIC......................................... 369
Índice ...................................................................................................................................... 371
Marcas registradas
El 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 Circuito), 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 Incorporated 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 materiales sin el previo consentimiento escrito de Microchip Technology Incorporated.
Las restantes marcas, logos y productos mencionados en este libro están registrados por sus respectivos propietarios.
Prólogo
El presente libro configura la segunda parte de una obra destinada al estudio y desarrollo de aplicaciones 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 supuesto una masiva comercialización de nuevos modelos que le han alzado al primer puesto del ranking mundial de microcontroladores de 8 bits desde 2002.
Esta nueva edición actualizada y ampliada recoge, además de los microcontroladores de la gama media PIC16F87X, a los PIC18F de la gama 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 familias
dsPIC.
En los capítulos iniciales destinados a los PIC16F87X se mantiene la estructura de la primera parte de la obra en la que cada capítulo se divide en tres partes. La primera es la “Teoría” en la que se
describe el bloque al que se dedicaba el capítulo. La segunda “Programar es fácil” presenta numerosos 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 los
PIC16F87X. Desde el Capítulo 10 al 16 se hace un estudio en profundidad de la arquitectura, el
funcionamiento y la programación de los PIC18F. El Capítulo 17 ofrece una introducción sobre los
microcontroladores de 16 bits comercializados en las familias PIC24F y PIC24H. Finalmente el
Capítulo 18 ofrece las principales características y aplicaciones de los Controladores Digitales de
Señales, que reunidos en las familias dsPIC, combinan lo mejor de los microcontroladores de 16
bits y de los DSP.
El Anexo A es un tutorial experimental que recoge una colección de proyectos de dificultad progresiva y completamente resueltos a nivel hardware y software implementados en base al fantástico sistema de desarrollo PIC School diseñado y 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 del
PIC18F4520, que culmina con la utilización del compilador de C y la resolución de programas.
xiii
xiv
PRÓLOGO
Agradecemos 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 reconocemos 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 desarrollar 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.
1
La familia de
microcontroladores PIC
1.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, mientras
que Europa soporta el 28% y América el 29%.
En cuanto a los segmentos de mercado a los que se destinan los microcontroladores PIC destaca el área genérica de la Electrónica de Consumo con el 35%, seguida por la industria de automoción con el 18%. (Figura 1.2.)
900
800
Millones Dólares
700
600
500
400
300
200
100
122
167
220
272
306
AÑO 98
AÑO 99
393
469
443
AÑO 01
AÑO 02
517
557
AÑO 03
AÑO 04
675
0
AÑO 95
AÑO 96
AÑO 97
MCU
Figura 1.1.
AÑO 00
Memorias
AÑO 05
Analógicos
Gráfico que muestra el aumento de las ventas anuales de Microchip en las que destaca
el porcentaje debido a los microcontroladores (MCU).
1
2
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
OFIMATICA
17%
CONSUMO
35%
COMUNICACIONES
13%
INDUSTRIA
17%
Figura 1.2.
AUTOMOCION
18%
Distribución de las ventas de microcontroladores PIC en los principales segmentos del
mercado.
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 aceptación de los microcontroladores de este fabricante viene avalado por la oferta creciente de los modelos que comercializa y que se aprecia en el gráfico de la Figura 1.3.
La gran diversidad de modelos de microcontroladores permite al diseñador encontrar el que contenga todos los recursos y capacidades de memoria que precisa para su aplicación. (Figura 1.4.)
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 y
3,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 capacidad de memoria y periféricos, manteniendo la distribución de las patitas en el encapsulado o “pinout”, la compatibilidad del software y del repertorio de instrucciones, la compatibilidad de los periféricos y la de las herramientas de desarrollo.
300
250
200
150
100
50
0
Figura 1.3.
25
AÑO 95
55
AÑO 96
77
AÑO 97
111
AÑO 98
129
AÑO 99
142
159
AÑO 00
AÑO 01
187
AÑO 02
214
AÑO 03
262
AÑO 04
El gráfico recoge el espectacular crecimiento del número de diferentes modelos de
microcontroladores PIC de 8 bits.
LA FAMILIA DE MICROCONTROLADORES PIC
E/S de
Voltaje Alto
Potenciómetro
digital
Comunicaciones
IR
RF
3
Telecom
DTMF
Codec
Drivers de
Potencia
Voltaje de
Referencia
PICmicro®
Sensores
Filtros
Amplificadores
Conversor A/D
Motores
Relés
MICROCONTROLADORES
O
Control de Potencia
- Reguladores
- Supevisión
- Detectores de voltaje
- Bombas de carga
- Cargadores de batería
- Control de alimentación
DSC (dsPIC)
Conversor D/A
LCD
LED
Controladores
Refrigeración
Comparadores
KEELOQ®
Dispositivos de
seguridad
Figura 1.4.
Memoria
NV Serie
Interfaz
- RS232/485
- RS422/423
- I2CTM
- SPITM
- USART
Buses de
Comunicación
- CAN Bus
- USB
- LIN Bus
- Serial I/O
Periferia Digital
- Captura
- PWM
- Temporizadores
- Reloj en tiempo
real
Funciones
DSP de
Encriptación
Procesamiento
de voz
La variedad de dispositivos PIC con sus distintas configuraciones permite encontrar el
modelo que cumpla con las especificaciones de cualquier proyecto.
1.2. CLASIFICACIÓN DE LOS MICROCONTROLADORES PIC
Estos microcontroladores o MCU se caracterizan por su arquitectura Harvard con memorias de programa y de datos independientes, lo que permite la accesibilidad simultánea y la diversidad en la
longitud de las posiciones y el tamaño de ambas memorias. (Figura 1.6.)
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 ventas
del 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.
4
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
0.22m
FLASH
200K
0.35m
FLASH
185K
0.4m
FLASH
160K
0.5m
FLASH/ROM
150K
0.7m
FLASH/EPROM/ROM
120K
2 – 5.5V
(NÚCLEO y E/S)
1998
NÚCLEO: 2-3,6V
E/S: 5V
2001
Figura 1.5.
2003
2006
Evolución de la tecnología de fabricación desarrollada por Microchip junto a la de la
tensión correspondiente de alimentación.
BUS DE
INSTRUCCIONES
MEMORIA
DE
PROGRAMA
BUS
DE DATOS
MEMORIA
DE
DATOS
CPU
DIRECCIÓN
Figura 1.6.
NÚCLEO: 2-3,6V
E/S: 5V
DIRECCIÓN
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 Mejorada, con un total de unos 300 modelos diferentes que contienen distintas capacidades de memoria,
periféricos y distintos tipos de encapsulados. (Figura 1.7.)
LA FAMILIA DE MICROCONTROLADORES PIC
5
GAMA MEJORADA
77 instrucciones de 16 bits
de longitud
PIC18FXXX
Figura 1.7.
PIC12F6XX
PIC16FXXX
GAMA MEDIA
35 instrucciones de 14 bits
de longitud
PIC10F2XX
PIC12F5XX
PIC16F5XX
GAMA BASE
33 instrucciones de 12 bits
de longitud
Los microcontroladores PIC de 8 bits se clasifican en 3 grandes gamas: Base, Media y
Mejorada.
1.3.1. La gama Base
Los modelos de esta gama se caracterizan porque responden a un juego de 33 instrucciones máquina de 12 bits de longitud cada una y disponen de una Pila con sólo dos niveles de profundidad. Sus
capacidades de memoria al igual que el número de recursos internos son reducidos, lo que limita su
campo 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.)
MEMORIA DE
PROGRAMA
PIC16F57
PIC16F59
2K
1K
PIC10F220
PIC10F222
PIC10F202
PIC10F206
PIC10F200
PIC10F204
512
256
6
Figura 1.8.
PIC12F510
PIC16F506
PIC12F509
PIC16F505
PIC16F54
PIC12F508
Nº PATITAS
8
14
18
28
40
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.
6
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Los PIC enanos de 6 patitas tienen un gran éxito comercial para resolver aplicaciones simples
por su reducido volumen y precio. En ellos la alimentación se aplica a 2 de las patitas, quedando las 4 restantes para las E/S y las funciones de sus periféricos, entre los que se encuentra un
temporizador o Timer, un Comparador analógico, un CAD de 8 bits, Perro Guardián, etc. Véase
Figura 1.9.
Fmáx 8 MHz
(RC interno)
MEM. PROG.:
256/512 w
RAM
16/24
ICD 2 *
ICE 2000
Timer 0 (8)
F202
F200
8 bit ADC
ICSP
F220
F222
-
256w 512w
RAM RAM
24
16
1x
Comparador
lógico
256w
RAM
16
512w
RAM
24
2 x ADC
8 bits
POR
* : 25mA (Absorben/Suministran)
* : 1Q 05
Figura 1.9.
WDT
F206
4 E/S *
512w
RAM
24
256w
RAM
16
Otros
Int RC +
Osciladores
F204
6 patitas
An. Comp
+Vref
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.
Para favorecer la migrabilidad en el hardware y permitir la transición a modelos PIC más potentes y con más patitas, se mantiene la distribución de las funciones asignadas a las patitas, de manera que los cambios de conexionado y de trazado de pistas sean mínimos. En la Figura 1.11 se
muestra la distribución de las funciones de las patitas de los encapsulados con 8, 14 y 20 patitas con
la finalidad de facilitar la migrabilidad.
El aumento del número de patitas significa el incremento en las capacidades de memoria y en el
nú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 disponiendo de un vector de interrupción. Es una gama numerosa que alcanza en la actualidad 71 modelos diferentes, que comienza con los que se hallan encapsulados con 8 patitas y llegan hasta los que tienen 68 patitas. En la Figura 1.12 se presentan los aspectos más relevantes de algunos PIC de la gama
Media de 8 patitas y otros con más.
En la Figura 1.13 se presenta junto a la nomenclatura o designación de los PIC de la gama Media las principales características que les distinguen.
MODELO
MEM.
PROG.
Words
RAM LÍNEAS
Bytes
E/S
ENCAPSULADOS
Analógico
Digital
ADC
CANALES COMP.
Timers
/WDT
ICD
FREC.
BOR/
nº de VOLTAJE
OSCI.
TM
MAX
PBOR/
puntos
INT. ICSP
(V)
MHz
PLVD
parada
PIC10FXXX
PIC10F200
384
16
4
6OT,8P
-
-
PIC10F202
768
24
4
6OT,8P
-
-
PIC10F204
384
16
4
6OT,8P
-
1
PIC10F206
768
24
4
6OT,8P
-
1
PIC12C508A
768
25
6
8P,8SM,8JW,8SN,8MF
-
-
PIC12C509A
1536
41
6
8P,8SM,8JW,8SN,8MF
-
-
PIC12F508
768
25
6
8P,8SL,8SM
-
-
PIC12F509
1536
41
6
8P,8SL,8SM
-
-
PIC16C55A
768
24
20
28P,28JW,28SP,28SO,28SS
-
-
PIC16C56A
1536
12
12
18P,18JW,18SO,20SS
-
-
PIC16CR56A
1536
25
12
18P,18SO,20SS
-
-
PIC16C58B
3072
73
12
18P,18JW,18SO,20SS
-
-
PIC16CR58B
3072
73
12
18P,18SO,20SS
-
-
PIC16HV540
768
25
12
18P,18JW,18SO,20SS
-
-
PIC16F505
1536
72
12
14P,14JW,14SL
-
-
PIC16F54
768
25
12
18P,18SO,20SS
-
-
PIC16F57
3072
72
20
28P,28SO,28SS,28SP
-
-
PIC16F59
3072
134
32
40P,44PT
-
-
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
4
4
SI
-
1**
2.0-5.5
4
4
SI
-
1**
2.0-5.5
4
4
SI
-
1**
2.0-5.5
4
4
SI
-
1**
2.0-5.5
4
4
SI
-
-
2.5-5.5
4
4
SI
-
-
2.5-5.5
4
4
SI
-
1**
2.5-5.5
4
4
SI
-
1**
2.5-5.5
40
-
-
-
-
2.5-5.5
40
-
-
-
-
2.5-5.5
20
-
-
-
-
2.5-5.5
40
-
-
-
-
2.5-5.5
20
-
-
-
-
2.5-5.5
40
-
-
BOR
-
3.5-15
20
4
SI
-
1**
2.0-5.5
20
-
SI
-
-
2.0-5.5
20
-
SI
-
-
2.0-5.5
20
-
SI
-
-
2.0-5.5
PIC12C/FXXX
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
** Requiere un módulo adaptador específico ICD.
7
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.
LA FAMILIA DE MICROCONTROLADORES PIC
PIC16C/F5X
RA4
20-Patitas
VDD
RA5
14-Patitas
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
8-Patitas
8
VSS
RA0
RA1
RA3
RA2
RC5
RC0
RC4
RC1
RC3
RC2
RC6
RB4
RC7
RB5
RB7
RB6
Figura 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.
MEM. PROG:
4 o 8KW
Comparador
Analógico
+Vref
FLASH:
1KW
RAM:
64
RAM:
256,336,352
Timer0(8)
Timer1(16)
Timer0(8)
Timer1(16)
Timer2(8)
Regulador
interno
Int RC +
Osciladores
F675
WDT
F913
6 E/S*
F914
RAM:256
BOR
F916
F917
F946
8kw
RAM:352
RAM 336
EEPROM:256
RAM 64
E2P 0
ADC, 4 can
1Comparador Analógico
ADC 4 can
POR
4kw
FLASH: 1kw
-
1xUSART
F615
8 patitas
E2P 128
SPI/
Esclavo 12c
BOR
ICSP
F629
10bitADC
Int RC +
Osciladores
WDT
POR
ICSP
2.Compar.
Analog.
+ Vref
EEPROM:
256
ADC de 10
bits
EEPROM:
128
Captura
Compara
PWM
Reg Int
28pat
40pat.
28pat.
40pat.
64pat.
25E/S
LCD
16/60
5x
ADC
35E/S
LCD
24/96
8x
ADC
25E/S
LCD
16/60
5x
ADC
35E/S
LCD
24/96
25E/S
LCD
24/96
1xCCP
2xCCP
1xCCP
8 x ADC
2xCCP
Figura 1.12. Características relevantes de algunos PIC de la gama Media con 8 patitas junto a otros
de más patitas.
ICD
Analógico
Digital
MEM. MEM
FREC.
BOR/
nº de CCP/
RAM LINEAS
OSC.
MODELO PROG. EEPROM
ENCAPSULADOS
ADC
Timers COM. MÁX. INT. PBOR/ puntos ECCP nW
Bytes E/S
COMP.
Words Bytes
MHz
PLVD
CANALES
/WDT I/O
parada
PIC12FXXX
PIC12F629
1792
128
64
6
8P,8SN,8MF
-
1
PIC12F635
1792
128
64
6
8P,8SN,8MF
-
1
PIC12F675
1792
128
64
6
8P,8SN,8MF
4x10BIT
1
PIC12F683
3584
256
128
6
8P,8SN,8MF
4x10BIT
1
PIC14000
7168
-
192
20
28SP,28SO,28SS,28JW
8SLAC
2
PIC16C432
3584
-
128
12
20SS,20P,20JW
-
2
PIC16C433
3584
-
128
6
18SO,18P,18JW
4x8BUT
-
PIC16C554
896
-
80
13
18P,18SO,18JW,20SS
-
-
PIC16C558
3584
-
128
13
18P,18SO,18JW,20SS
-
-
PIC16C62B
3584
-
128
22
28SP,28SO,28SS,
28JW,28ML
-
-
PIC16C620A
896
-
96
13
18P,18SO,18JW,20SS
-
2
PIC16CR620A
896
-
96
13
18P,18SO,20SS
-
2
PIC16C621A
1792
-
96
13
18P,18SO,18JW,20SS
-
2
PIC16C622A
3584
-
128
13
18P,18SO,18JW,20SS
-
2
1-8BIT
1-16BIT
1-WDT
1-8BIT
1-16BIT
1-WDT
1-8BIT
1-16BIT
1-WDT
1-16BIT
2-8BIT
1-WDT
-
20
4
BOR
1**
-
-
-
20
8
BOR/
PLVD
1**
-
SI
-
20
4
BOR
1**
-
-
-
20
8
BOR
1**
1/0
SI
20
4
-
-
-
-
20
-
BOR
-
-
-
10
4
-
-
-
-
20
-
-
-
-
-
20
-
-
-
-
-
20
-
BOR
-
1/0
-
40
-
BOR
-
-
-
20
-
BOR
-
-
-
40
-
BOR
-
-
-
40
-
BOR
-
-
-
PIC16CXXX
LA FAMILIA DE MICROCONTROLADORES PIC
9
Figura 1.13. Características de algunos modelos de la gama Media (continúa).
1-8BIT
1-16BIT I2CTM/SMB
1-WDT
1-8BIT
LIN
1-WDT
1-8BIT
LIN
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-16BIT
2-8BIT I2C/SPITM
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
1-8BIT
1-WDT
PIC16C63A
7168
-
192
22
28SP,28SO,28SS,
28JW,28ML
-
-
PIC16CR63
7168
-
192
22
28SP,28SO,28SS,
-
-
PIC16C65B
7168
-
192
33
40P,40JW,40L,
44PQ,44PT
-
-
PIC16CR65
7168
-
192
33
40P,40L,44PQ,44PT
-
-
PIC16C717
3584
-
256
16
18P,18SO,18JW,20SS
6x10BIT
-
PIC16C72A
3584
-
128
22
28SP,28SO,28JW,
28SS,28ML
5x8BIT
-
PIC16CR72
3584
-
128
22
28SP,28SO,28SS
5x8BIT
-
PIC16C73B
7168
-
192
22
28SP,28SO,28JW,
28SS,28ML
-
-
PIC16C74B
7168
-
192
22
40P,40JW,44L,
44PQ,44PT
8x8BIT
-
PIC16C745
14336
-
256
22
28SP,28SO,28JW
5x8BIT
-
PIC16C765
14336
-
256
33
40,40JW,44L,44PT
8x8BIT
-
PIC16C770
3584
-
256
16
20P,20SO,20JW,20SS
6x12BIT
-
Figura 1.13. Características de algunos modelos de la gama Media (continúa).
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
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
1-16BIT
2-8BIT
1-WDT
1-16BIT
2-8BIT
1-WDT
USART,
I2C/SPI
20
-
BOR
-
2/0
-
USART,
I2C/SPI
20
-
BOR
-
2/0
-
USART,
I2C/SPI
20
-
BOR
-
2/0
-
USART,
I2C/SPI
20
-
BOR
-
2/0
-
MI2C/SPI
20
4
PBOR
/PLVD
-
0/1
-
I2C/SPI
20
-
BOR
-
1/0
-
I2C/SPI
20
-
BOR
-
1/0
-
USART,
I2C/SPI
20
-
BOR
-
2/0
-
USART,
I2C/SPI
20
-
BOR
-
2/0
-
24
-
BOR
-
2/0
-
24
-
BOR
-
2/0
-
20
4
PBOR
/PLVD
-
0/1
-
USART,
Baja vel.
USB
USART,
Baja vel.
USB
MI2C/SPI
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
PIC16CXXX
10
ICD
Analógico
Digital
MEM. MEM
FREC.
BOR/
nº de CCP/
OSC.
RAM LINEAS
MODELO PROG. EEPROM
ENCAPSULADOS
ADC
Timers COM. MÁX. INT. PBOR/ puntos ECCP nW
Bytes E/S
COMP.
Words Bytes
MHz
PLVD
CANALES
/WDT I/O
parada