4.6.8.- PIC16F877 xl
4.6.9.- PIC 16F84 xli
xlii 4.7.- ANEXO3 4.7.1.- El Microcontrolador PIC16F84: Este microcontrolador es un Circuito Integrado Programable o PIC por sus siglas en Inglés: (Programmable Integrated Circuit), es el nombre comercial con el que la compañía Microchip ha designado a sus microcontroladores. Por sus características y costo, estos dispositivos son ideales para realizar casi cualquier proyecto de control. Su principal característica al igual que cualquier otro microcontrolador, es que todos los elementos requeridos para realizar su trabajo ya vienen incorporados dentro del propio encapsulado. De tal suerte, lo único que tenemos que hacer, es programarlo, conectar sus terminales a las entradas o la salida de la señal que deseamos. En el proyecto se utiliza como transmisor en forma serial de todas las señales a procesar en forma digital (0 y 1). La figura 4.7.1 muestra su estructura externa: Figura 4.7.1.- Circuito Integrado PIC16F84 y sus pines
xliii 4.7.1.1.- Descripción y funcionamiento de los Pines.- VSS y VDD: (pines 5 y 14) son respectivamente las patillas de masa y alimentación. Está comprendida entre 2V y 6V. OSC1/CLKIN y OSC2/CLKOUT: (pines15 y 16) son los pines de la entrada de cristal/ fuente externa de reloj y salida de oscilador a cristal respectivamente. Los distintos elementos de la familia 16X84X, dependiendo de la nomenclatura que utilizan tienen distintas características de: * Frecuencia máxima de funcionamiento * Tipo de oscilador utilizado para generar frecuencias de reloj * Margen de la tensión de alimentación. Los microcontroladores PIC, permiten cuatro tipos de osciladores externos para aplicarles la frecuencia de funcionamiento. Durante el proceso de grabación, antes de introducir el programa en memoria, debe indicarse el tipo de oscilador empleado en los bits FSOC1 y FSOC2 de la Palabra de Configuración. Los tipos de osciladores que utiliza el microcontrolador son: * Oscilador de cristal o resonador de alta velocidad "HS"(High Speed Crytal/Resonator): Es un oscilador de frecuencia comprendida entre 4MHz y 20MHz. * Oscilador o resonador cerámico "XT" (Crystal/Resonator): Se trata de un oscilador estándar que permite una frecuencia de reloj comprendidas entre 100KHz y 4 MHz.
xliv * Oscilador de cristal de cuarzo o resonador cerámico de baja potencia "LP" (Low Power Crystal): Se trata de un oscilador de bajo consumo con un cristal o resonador diseñado para trabajar con frecuencias comprendidas entre 32KHz y 200KHz. * MLCR /Vpp: (pin 4) Entrada de Reset si está a nivel bajo y entrada de la tensión de programación cuando se está programando el dispositivo. Más adelante veremos como se realiza el reset del microcontrolador y que formas hay de hacerlo. * RA0-RA4/TOCK1 : (Pines 17,18,1,2 y 3 respectivamente) Corresponden a cuatro líneas bidireccionales de E/S del PORTA. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. El pin RA4, si se programa como salida es de colector abierto. Como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0. * RB0-RB7: (Pines 6,7,8,9,10,11,12 y 13 respectivamente) Corresponden a ocho líneas bidireccionales de E/S del PORTB. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. La patilla RB6 y RB7 corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando está en modo programación.
xlv 4.7.2.- El Microcontrolador PIC16F77: Este microcontrolador es mucho más versátil que el Pic16F84 utilizado para transmitir los datos. Es usado como receptor, ya que puede manejar tablas de datos; muy eficiente cuando de procesos que no son del todo lineales se trata. Además cuenta con mas puertas E/S, que de algún modo facilitará el manejo de presentación de datos tanto en display s como encendido y apagado de leds indicadores de eventos, que son aproximadamente 16, y son totalmente independientes. Sumado a esto activación de alarma a través de un zumbador, y pulsador que es usado para desactivar dicho zumbador cuando el operador o persona que esté en frente del panel final, así lo requiera. La figura 4.7.2 presenta el circuito externo: Figura 4.7.2.- Circuito Integrado PIC16F877 y sus pines
xlvi CARACTERÍSTICAS PRINCIPALES 4.7.2.1.- Características Principales Pertenece a la familia de microcontroladores RISC de 8bits con memoria FLASH que combinan el voltaje de funcionamiento más bajo con un convertidor A/D de 10bits. Este microcontrolador dispone de 8Kx14bits de memoria FLASH mejorada, 256 bytes de memoria de datos EEPROM y el voltaje de funcionamiento más bajo de la industria desde 2,0V a 5,5V. Es ideal para aplicaciones programables o alimentadas por baterías, aplicaciones como controladores del cuerpo humano, controles de maquinas programables, mantenimiento de redes, teléfonos alta gama, dispositivos y sensores actualizables en campo. Los dispositivos también proporcionan de 5 a 8 canales de convertidores A/D de 10bits, USART para aplicaciones de adquisición de datos multipunto con detección de direccionamiento, hasta 5MIPS a 20MHz, permite la comunicación I2C o SPI para la expansión de periféricos, dos temporizadores de 8 bits y uno de 16 bits. La precisión de los temporizadores es de 16bits en captura y comparación, con 12,5ns y 200ns respectivamente y modulación de anchura de pulso de 20KHz con 10 bits de resolución. La tecnología Enhanced Flash de Microchip ofrece con 1.000.000 de ciclos de borrado escritura, la mayor durabilidad de la industria. Los microcontroladores también ofrecen la programación serie y en circuito, permitiendo la grabación después de soldarse en la placa. Se puede realizar también la depuración en circuito y tiempo real mediante el modo "Background Debugger" de los PIC16F877, con tan sólo un sencillo interfaz de 5 hilos.
xlvii RESUMEN: CPU RISC de arquitectura paralela, o lo que es lo mismo, que tiene diferente memoria para los datos y el programa. Tiene 35 instrucciones en ensamblador, que se ejecutan en un ciclo de maquina, excepto las de salto que lo hacen en 2 ciclos de máquina. Velocidad máxima de operación 20 MHz ciclo máquina 200 nseg. 8 K palabras(14 bits) de memoria flash de programas 368 bytes de memoria de datos (RAM) 256 byrtes de memoria de datos (EEPROM) 1 Watchdog 2 Timer/Contador de 8 bits 1 Timer/ Contador de 16 bits 2 canales de PWM para controlar motores 8 canales de conversión analógico-digitales de 10 bits Puerto serie síncrono con SPI Puerto paralelo esclavo PSP de 8 bits I2C USART
xlviii 4.7.2.2.- Descripción de las Puertas de entrada / salida.- Patitas de Propósito General: OSC1/CLKIN(9): Entrada de cristal de cuarzo o del oscilador externo. OSC2/CLKOUT(10): Salida del cristal de cuarzo. VSS(8-9): conexión a tierra. VDD(20): entrada de la alimentación positiva. MCLR#/VPP/THV(1): entrada de reset o entrada de voltaje de programación o voltaje alto en el modo set. Puertas: puerta A: RA0/AN0(2): puede actuar como línea digital de E/S o como entrada analógica al conversor AD(canal 0). RA1/AN1(3): igual que la RA0/AN0. RA2/AN2/VREF-(4): puede ser línea digital de E/S, entrada analógica o entrada de voltaje negativo de referencia. RA3/AN3/VREF+(5): puede ser línea digital de E/S, entrada analógica o entrada de voltaje positivo de referencia. RA4/TOCKI(6): Línea digital de E/S o entradas del reloj del Timer0. salida con colector abierto. RA5/SS#/AN4(7): Línea digital de E/S, entrada analógica o selección como esclavo de la puerta serie síncrona.
xlix puerta B: RB0/INT(21): línea digital de E/S o entrada de petición de interrupción externa. RB1(22): línea digital de E/S. RB2(23): línea digital de E/S. RB3/PGM(24): línea digital de E/S o entrada del voltaje bajo para programación. RB4(25): línea digital de E/S. RB5(26): línea digital de E/S. RB6/PGC(27): línea digital de E/S. En la programación serie recibe las señales de reloj. RB7/PGD(28): línea digital de E/S. En la programación serie actua como entrada de datos. puerta C: RC0/T1OSO/T1CKI(11): línea digital de E/S o salida del oscilador del Timer1 o como entrada de reloj del Timer1. RC1/T1OSI/CCP2(12): línea digital de E/S o entrada al oscilador del Timer1 o entrada al módulo captura2/salida comparación2/ salida de PWM2. RC2/CCP!(13): línea digital de E/S. También puede actuar como entrada captura1/salida comparación1/salida de PWM1. RC3/SCK/SCL(14): línea digital de E/S o entrada de relojserie sincronía/salida de los modos SPI e I2C.
l RC4/SDI/SDA(15): línea digital de E/S o entrada de datos SPI o I/O datos en modo SPI e I2C. RC5/SDO(16): línea digital de E/S o salida de datos en modo SPI. RC6/TX/CK(17): línea digital de E/S o patita del transmisor USART asíncrono o como reloj del síncrono. RC7/RX/DT(18): línea digital de E/S o receptor del USART asíncrono o como datos en el síncrono. puerta D: RD0/PSP0-RD7/PSP7: Pueden actuar como E/S digital o como lineas para la transferencia de información en la comunicación de la puerta paralela esclava. Sólo disponible en los PIC16F874/7. puerta E: RE0/RD#/AN5: E/S digital o señal de lectura para la puerta paralela esclava o entrada analógica(canal 5). RE1/WR#/AN6: E/S digital o señal de escritura en la puerta paralela esclava o entrada analógica al conversor A/D(canal 6). RE2/CS#/AN7: E/S digital o activación/desactivación de la puerta paralela o entrada analógica (canal 7).
li 4.7.3.- Diferencias y semejanzas entre la familia PIC16F877 y 16F84 Las diferencias son un tanto considerables, en cuanto que el pic16f877 maneja mas puertos entrada / salida y además internamente contiene un convertidor analógico / digital con características similares al ADC0808. El pic16f84 tiene memoria flash, pero con una capacidad de 1k palabras, sólo tiene un Timer y 13 líneas de entradas / salidas(e/s) digitales y el modelo normal soporta una frecuencia de 10 MHz, aunque el A llega a los 20 MHz. Es un microcontrolador pobre pero resultón, por su sencillez y precio unidos a la imaginación del proyectista. Los nuevos pic16f877 se pueden considerar como una combinación de las virtudes del pic16f84 con la inclusión de los recursos de los pic16c73 y 74. Incorporan la memoria flash, con una capacidad de 4k y 8k palabras de 14 bits, sin cambiar la estructura interna del procesador y conservando el mismo repertorio de instrucciones. Observe la tabla N 4.7.1 que detalla mejor las diferencias - semejanzas, y características relevantes entre ambos microcontroladores:
lii Tabla 4.7.1.- Características relevantes del Pic16F877 junto a las del Pic16F84A. MODELO PIC16F84A PIC16F877 MEMORIA Bytes 1792 14336 PROG.(FLASH) Palabras 1024 x 14 8192 x 14 MEMORIA Bytes EEPROM 64 256 DATOS Bytes RAM 68 368 CONVERTIDOR NO 8(10 BITS) (ADC) BOD(detección de NO SÍ baja tensión) 13 33 Líneas E/S Comunicación Serie CCP TEMPORIZADORES NO USART / MSSP NO 2 1-8 bit, 1-WDT FRECUENCIA MAX. en MHz 20 20 ICSP(Programación Serie en circuito) SÍ SÍ 18P,18SO,20SS 40P,44L,44PQ,44PT ENCAPSULADOS FUENTES DE INTERRUPCIÓN 4 14 COMUNICACIÓN PARALELO NO Sí La memoria RAM de datos de los PIC16F877 posee una capacidad de 368 bytes. Aunque superan ampliamente los 68 bytes del PIC16F84, mantienen la misma estructura, basada en 4 bancos de 128 bytes cada uno; seleccionables con los bits RP0 yrp1 del registro Estado. La memoria de datos no
liii volátil de 64 bytes tipo EEPROM que tenía el PIC16F84, en los nuevos PIC16F877 de 40 patitas sube hasta 256 bytes. En los PIC16F877 se manejan hasta 14 posibles fuentes de interrupción y 3 Timer, frente a las fuentes y 1 Timer del PIC16F84. El número de puertas también se ve aumentado sustancialmente con 5 puertas. Los PIC16F877 incorporan recursos inexistentes en los PIC16F84: Módulos CCP: Capturan y comparan impulsos. Comunicación serie: USART ( comunicación entre subsistemas o máquinas(rs-232)), y MSSP(comunicación entre circuitos integrados) Comunicación Paralelo: Protocolo PSP mas rápido que la comunicación serie, pero hipoteca muchas entradas / salidas. Conversor A/D: Conversor analógico Digital de 10 bits, con 8 canales de entradas. Tanto los PIC16F84 / 16F877 responden a una serie de instrucciones o códigos que se deben grabar en su memoria de programa. En total son 35 instrucciones ó nemónicos manejadas por estos microcontroladores. Las instrucciones se dividen en tres(3) grupos diferentes: Orientadas a los registros, orientadas a los bits, y los registros de control. Todas las instrucciones se ejecutan en un ciclo de instrucción, es decir, en un microsegundo cuando se tiene un cristal de 4 MHz, excepto las instrucciones de salto que ocupan dos(2) ciclos de instrucción. ANEXO4
liv 4.8.1.- Este circuito representa la salida del SENSOR DE CORRIENTE, como se puede observar no necesitará pasar por un convertidor analógico digital (ADC); sino que va directamente al puerto B del PIC16F84; transmisor de serial de datos. OR EXCLUSIVA: Entradas diferentes SALIDA Alto COMPARADOR: V(+) > V(-) Alto...[Vref = V(-)] Figura 4.8.1.- Digitalización directa entrada analógica del sensor de corriente (0 a 5V)
lv 4.8.2.- Circuito Monoestable del 555.- Figura N 4.8.2.- Configuración y temporización del monoestable 555