MICROCONTROLADORES 3 16f887
MICROCONTROLADORES 3 16f887
MICROCONTROLADORES 3 16f887
SISTEMAS MICROCONTROLADOS
SISTEMAS MICROCONTROLADOS
Captulo 3
PIC 16F88X
3.1 El PIC16F88X
Microchip inicia su introduccin al mercado con el 16F84 y aunque tienen a disponibilidad una gran variedad de PICs, este resulta ser uno de los ms utilizados en todo el mundo, luego es descontinuado y remplazado por el PIC16F62X. Pero sus prestaciones limitadas y tamao le dieron paso (la menos en nuestro medio) a la familia de 16F87X que nos brindaban una gran versatilidad lo que los ha convertido en uno de los modelos que ms usan los desarrolladores, al momento la familia 16F88X se basa en la 16F87X, pero los han mejorado ya que traen versiones de perifricos actualizados a los que los llaman extendidos y otra caracterstica adicionales.
38
Power-on Reset (POR) Power-up Timer (PWRT) y Oscilador Start-up Timer (OST) Brown-out Reset (BOR) con opcin de control por software. Watchdog Timer Extendido Baja-Correitne (WDT) con oscilador interno (seleccionable por software, nominal 268 segundos con full prescaler) habilitacin por software. Multiplexado del Master Clear Reset con Pull-up/Input Pin. Proteccin de cdigo programable. Flash/EEPROM de alta resistencia : - 100,000 escrituras en la FLASH - 1,000,000 escrituras en la EEPROM - Retencin en la Flash/Data EEPROM: > 40 years Memoria de programa Read/Write durante ejecucin. In-Circuit Debugger (en placa). Las Caractersticas de Bajo consumo: Correinte en Standby: - 50 nA 2.0V, tpico Corriente de trabajo: - 11 uA @ 32 kilohercio, 2.0V, tpico - 220 uA @ 4 megahertzio, 2.0V, tpico La Corriente del Timer del Perro Guardin: - 1 uA @ 2.0V, tpico Las Caractersticas Perifricas: 35 Pines de I/O con Control Individual de Direccin: - Fuente de alta corriente para manejo de LED directo. - Deteccin de interrupcin por cambio en el Pin. - Pull-ups programables individuamente. - Ultra Low-Power Wake-up (ULPWU). El Mdulo Analgico del Comparador con: - Dos comparadores analgicos. - Referencia de voltaje Programable on-chip (CVREF) mdulo (el % de VDD). - Referencia fija (0.6V) de voltaje. - Entradas y salidas de comparador externamente accesible. - El modo SR Latch. - Timer 1 Puerta externa (cuenta habilitada). Conversor A / D: - Resolucin de 10-bit y 14 canales. Timer0: Contador/temporizador de 8-bits con pre-escala programable El Timer1 Extendido:
39
Contador/temporizador de 16-bits con pre-escala El modo de entrada externa. Oscilador dedicado de 31 el oscilador de kilohercio en modo bajo consumo. Timer2: Contador/temporizador de 8-bits con 8 bits de periodo, Prescaler y Postscaler. Modulo extendido Compara, captura PWM. - La captura de 16 bits, resolucin mxima de 12.5 ns - Haga una comparacin, tope. decisin 200 ns - PWM de 10 bits con 1, 2 o 4 canales de salida programables, "tiempo muerto" Frecuencia mxima de salida 20 kilohercios. - Control de la direccin de salida PWM Captura, Compare, PWM Module: - La captura de 16 bits, max. resolucin 12.5 ns. - Compara de 16 bits, max. resolucin de 200 ns. - PWM de 10 bits, max. frecuencia 20 kilohercios. USART realzado Module: - Soporte RS-485, RS-232, y LIN 2.0 - El Autobaudio Detecte - El auto wake-up con un Start-bit. In-Circuit Serial ProgrammingTM (ICSPTM) por dos pines. Modulo Master Synchronous Serial Port (MSSP) soporta 3-wire SPI (los 4 moods) e I2C. en modos Maestros y Esclavos con I2C Address Mask. Cada una de sus pines puede proveer mximo hasta 25mA de corriente.
16F882 20Mhz
16F883 20Mhz
16F884 20Mhz
16F886 20Mhz
16F887 20Mhz
2KB
4KB
4KB
8KB
8KB
128
128
256
256
368
40
Caractersticas Posiciones EEPROM de datos Ports E/S N de Pines Interrupciones Timers Mdulos CCP y ECCP Comunicaciones Serie EUSART/ MSSP Comparadores analgicos Convertidor A/D de 10 bits
16F887
128
256
256
256
256
24 28 10 3 1/1
24 28 11 3 1/1
35 40 13 3 1/1
24 28 14 3 1/1
35 40 13 3 1/1
1/1
1/1
1/1
1/1
1/1
11
11
14
11
14
41
Pila (Stack): Cuando como resultado de una subrutina o interrupcin el contador de programa tiene que dejar de contar en orden normal, para cargar una nueva direccin, la direccin actual se guarda en la pila, de esta manera cuando el uC sabe dnde estaba antes de ir a la subrutina o a la interrupcin. Control y decodificador de Instrucciones: En este bloque se entiende la orden o instruccin guardada en la memoria de programa, y por ende es el encargado de controlar todo el resto del uC. Generador de Tiempos: Aqu se recibe la seal del reloj externo (reloj significa un tren de pulsos), y se distribuye por todo el sistema de manera que todos trabajan a la misma velocidad. ALU (Unidad Lgica Aritmtica): La ALU es la encargada de realizar las operaciones aritmticas y lgicas entre las que se incluyen suma, resta, AND, OR, XOR y NOT. Registro Acumulador o W (working): Este registro es el ms importante de todos, porque a travs de l, se realizan un sin nmero de operaciones e instrucciones, en especial aquellas relacionadas con la ALU. Registro de Estado (STATUS): Este se utiliza para indicar entre otras cosas, el resultado de una operacin en la ALU. Por ejemplo si una suma dio como resultado un nmero mayor a 8 bits, un bit dentro de este registro indica esta condicin (bit de carry), por otra parte si el resultado de cualquier operacin fue cero, otro bit indicar esta condicin (bit zero).
42
43
RA3 Tercera entrada/salida digital del puerto A AN3 Tercera entrada analgica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1
La funcionalidad de los pines presentados anteriormente es muy til puesto que permite un mejor aprovechamiento de los recursos del microcontrolador sin afectar a su funcionamiento. Estas funciones de los pines no se pueden utilizar simultneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento.
44
45
46
47
Puertos de Propsito General (PORT A, B, C, D, E): Los puertos no son ms que los pines externos del uC, estos puertos pueden ser programados para actuar como entradas de datos (ej. Observar el estado de un pulsante, dipswitch, sensores, teclados, etc.) o como salida de datos (ej. Controlar el encendido de Leds, Displays, Motores, etc.). Perifricos Especficos: Son un conjunto de circuitos especializados que realizan funciones especficas (Temporizadores, Conversor Analgico Digital, etc.), comparten pines con los puertos, es decir, cuando los pines son utilizados por los perifricos especficos no se pueden utilizar los puertos como simples entrada y salidas. Pin de Reset: Cuando se da un cero (tierra) en esta pin, el uC vuelve a cero, es decir el contador de programa regresa a la casilla cero y empieza de nuevo. Funciones Especiales del CPU: Son un conjunto de bloques que permiten mejorar el rendimiento y la utilizacin de este dispositivo. Entre los ms importantes estn: detector de baja tensin, autoreset de inicializacin, temporizador contra fallos, circuito para programacin en lnea, etc.
48
Normalmente estos dos registros siempre cuentan en forma normal, es decir, con cada ciclo de mquina aumentan uno a su conteo binario. Pero existen instrucciones u rdenes que hacen que estos registros cambien su conteo normal, y en vez de leer la siguiente casilla se dirijan a otras casillas de memoria. Adicionalmente al Contador de Programa, se encuentra la pila de programa o pila de direcciones, que es un espacio de 8 casillas independiente de la memoria del dispositivo, que el contador de programa utiliza para guardar la direccin de la ltima casilla leda ms uno, a la cual debe regresar siempre que se va a producir un salto del que se tiene que regresar (ej. Subrutinas e Interrupciones).
49
50
La memoria de datos tipo RAM al igual que la de programa tambin se encuentra dividida en bloques o bancos, especficamente se tienen 4 bancos de memoria de datos cada uno con 128 registros (00 hasta 7F). Cada banco se subdivide en dos grupos de registros denominados: Registros de Funciones Especiales y Registros de Propsito General.
Los registros especiales se utilizan entre otras cosas para: analizar el comportamiento de la ALU, seleccionar bancos de memoria, configurar interrupciones o activar/desactivar, leer/escribir o configurar un perifrico especfico. Por otro lado los registros de propsito general, son los lugares en donde se colocaran a las variables que sean utilizadas en el programa.
0 => Pin n de la puerta X acta como salida. 1 => Pin n de la puerta X acta como entrada. 51 Unidad Educativa Tcnico Salesiano
Cuando se produce un reset TRIS se pone a 1, configurando as las puertas como entradas y evitando que se active indebidamente algn dispositivo externo que estuviera conectado al PIC. La configuracin tpica para las puertas E/S se ve en la figura/
En el PIC16F88x se dispone de 6 puertos de entrada y salida de propsito general que multiplexan funciones con los perifricos internos. PORTA: Posee 8 lneas, este puerto junto con el PORTE, son las entradas del Mdulo conversor A/D y del TIMER 0. PORTB: Posee 8 lneas, este puerto es comnmente utilizado para el manejo de teclados matriciales y en general cualquier tipo de pulsante o interruptor ya que posee resistencias internas de pull-up configurables e interrupciones programables por cambio de estado. PORTC: Posee 8 lneas, este puerto es usado por el puerto de comunicaciones seriales (USART), el TIMER1 y el Mdulo de CCP. PORTD: Posee 8 lneas, este puerto es usado por el Mdulo de Comunicaciones Paralelas como bus de Datos. PORTE: Posee 4 lneas, este es utilizado para generar las seales de control para el Mdulo de Comunicaciones Paralelas.
Cada lnea de un puerto puede ser programada para operar como entrada o como salida independientemente de cmo estn programadas el resto de lneas del mismo puerto. Esto resulta de gran ayuda para evitar el desperdicio de lneas, considere como ejemplo de desperdicio el puerto paralelo de una computadora. Para permitir esta funcionalidad de los puertos, cada uno posee dos registros llamados TRISX y PORTX (X = A,B,C,D,E) cada uno de 8 bits (en el caso de puertos con menos de 8 lneas los bits sobrantes no se utilizan). El registro TRIS se utiliza para configurar una lnea como entrada (1) o como salida (0), en cambio que el registro PORT se utiliza para leer o escribir 1s o 0s en las lneas del puerto.
52