Download Manual de PIC
Document related concepts
no text concepts found
Transcript
UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica CAPITULO I INTRODUCCIÓN A LOS MICROCONTROLADORES PIC 1.1- Introducción Comúnmente, la mayoría de las aplicaciones de control incorporado están diseñados alrededor de un microcontrolador el cual integra en un solo chip la memoria de programa, la memoria de datos, varias funciones periféricas, así como temporizadores, comunicación serial, comparadores, pwm, etc. Adicionalmente estos sistemas requieren usualmente memorias seriales complementarias EEPROM, displays, teclados y elementos indicadores. Microchip Technology ha establecido asimismo como un líder en el suministro de soluciones de un campo de elementos de control incorporado. La combinación del alto rendimiento de los microcontroladores además de los productos de memorias no volátiles, ha proporcionado las bases para este liderazgo. Los microcontroladores PIC combinan un alto rendimiento y un bajo costo en un encapsulado pequeño, ofreciendo la mejor relación precio/rendimiento de la industria y satisfaciendo las necesidades de periféricos de computadoras, automatización, sistemas de control automotriz, aplicaciones en seguridad y telecomunicaciones. 1.2- Definiciones generales de Microcontroladores Inicialmente cuando no existían los microprocesadores las personas se ingeniaban en diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito lógico básico requería de muchos elementos electrónicos basados en transistores, resistencias, etc; pero en el año 1971 apareció el primer microprocesador el cual originó un cambio decisivo en las técnicas de diseño de la mayoría de los equipos. Al principio se creía que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; por lo contrario con la aparición de este circuito integrado todo sería mucho mas fácil de entender y los diseños electrónicos serían mucho mas pequeños y simplificados. Entre los microprocesadores mas conocidos tenemos el popular Z-80 y el 8085. Los diseñadores de equipos electrónicos ahora tenían equipos que podían realizar mayor cantidad de tareas en menos tiempo y su tamaño se redujo considerablemente, sin embargo, después de cierto tiempo aparece una nueva tecnología llamada microcontrolador que simplifica aun mas el diseño electrónico. 1.3- Diferencias entre un Microprocesador y un Microcontrolador Si se tuvo la oportunidad de realizar un diseño con un microprocesador pudo observar que dependiendo del circuito se requerían algunos circuitos integrados adicionales, además del microprocesador se requerían memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargaría del proceso del equipo, además de otros circuitos integrados por ejemplo el : codificador/decodificador, conversor A/D o D/A y otros. Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrónicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM, puertos de entrada, salidas y otros periféricos. 1.4- ¿Qué es un Microcontrolador? Un microcontrolador es un circuito integrado programable que contiene internamente todos los componentes de un computador. Este se utiliza para controlar el funcionamiento de una tarea determinada, Sus pines de entradas y salidas se utilizan para conectar motores, relays, actuadores, etc. Una vez que el microcontrolador esta programado, se encargará de ejecutar al pie de la letra la tarea encomendada. 1.5- ¿Porqué los microcontroladores PIC? Dedicar este curso a los microcontroladores PIC no significa que se defienda a esta familia como la "mejor", Considerando el momento actual, comparando los parámetros fundamentales con los modelos comerciales de otros fabricantes y las aplicaciones más habituales a las que se destinan los microcontroladores, si pensamos que casi en un 90 % de los casos. la elección de una versión adecuada de PIC es la mejor solución. Sin embargo, otras familias de microcontroladores son más eficaces en aplicaciones concretas, especialmente si predomina una característica especial. Pero no se quiere dejar pasar la ocasión de afirmar que en la actualidad los PIC tienen "algo" que fascina a los diseñadores. Pueden ser la velocidad, el precio, la facilidad de uso, la información, las herramientas de apoyo. Quizás Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica un poco de todo es lo que produce esa imagen de sencillez y utilidad. Es muy posible que mañana otra familia de microcontroladores le arrebate ese "algo". Es la ley del mercado y la competencia. 1.6- Características más relevantes Se comienza describiendo las características más representativas de los microcontroladores PIC. 1.6.1 Arquitectura Harvard Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, tal como se muestra en la figura siguiente, que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único: • Bus de datos • Bus de direcciones El modelo Harvard , representado en la figura siguiente, dispone de dos memorias: • Memoria de datos • Memoria de Programa MEMORIA UP MEMORIA DE INSTRUCCIONES INSTRUCCIONES + DATOS MEMORIA DE DATOS UP 1Kx14 512x8 Además cada memoria dispone de su respectivo bus, lo que permite, que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección . Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran fisicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). 1.6.2a) b) c) d) e) 1.6.3- La familia de los PIC Gama enana : PIC12C(F)XXX con instrucciones de 12 bits Gama baja : PIC16C(F)5X con instrucciones de 12 bits Gama media : PIC16C(F)XXX con instrucciones de 14 bits Gama alta: PIC17C(F)XXX con instrucciones de 16 bits Gama mejorada: PIC18C(F)XXX con instrucciones de 16 bits El Oscilador para los PIC de la Gama media Todo microprocesador o microcontrolador requiere de un circuito que le indique a que velocidad debe trabajar. Este circuito es conocido por todos como un oscilador de frecuencia. Este oscilador es como el corazón del microcontrolador por lo tanto, este pequeño circuito no debe faltar. En el caso del microcontrolador PIC16F84 el Pin No. 15 y el Pin No. 16 son utilizados para introducir la frecuencia de reloj. Existen microcontroladores que tienen su oscilador internamente y no requieren de pequeños circuitos electrónicos externos. El microcontrolador PIC16F87X requiere de un circuito externo de oscilación o generador de pulsos de reloj. La frecuencia de reloj máxima es de 20 MHz, sin embargo, se recomienda que se comience a trabajar con una frecuencia de reloj de 4 MHz. El microcontrolador PIC16F87X utiliza cuatro periodos completos de reloj por cada instrucción por lo tanto si se tuviera un cristal a 4 MHz, internamente en el microcontrolador se esta corriendo a 1 Mhz debido a que se toman 4 pulsos de reloj completos para cada instrucción. El PIC16F87X puede utilizar cuatro tipo diferentes de reloj oscilador externos. El tipo de oscilador dependerá de la precisión (ej: para las rutinas de tiempo), velocidad y potencia que usted necesite; por otro lado los costos que serían un aspecto significativo en una producción en serie de algún tipo de proyecto electrónico y la velocidad de proceso mínima requerida para su proyecto electrónico. Podemos resumir entonces los diferentes tipos de osciladores: Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica • Oscilador tipo “HS” para frecuencias mayores de 4 Mhz. en el caso del PIC16F87X oscilador hasta 20 MHz. • Oscilador tipo "XT” para frecuencias no mayores de 4 MHz. • Oscilador tipo "LP" para frecuencias entre 32 y 200 Khz. • Oscilador tipo "RC" para frecuencias no mayores de 5.5 MHz. podrá instalarse un En el momento de programar el microcontrolador se deberá especificar en los parámetros el tipo de oscilador que usted utilizara en su proyecto electrónico basado específicamente en la frecuencia de trabajo. Por ejemplo si su frecuencia de trabajo es de 10 MHz entonces la configuración del microcontrolador deberá estar en "HS"; pero si su frecuencia de trabajo es de 4 MHz entonces la configuración del microcontrolador deberá estar en "XT”. • En primer lugar tenemos un Oscilador tipo "HS" basado en un Cristal para frecuencias mayores a 4 MHz. Esta versión es la mas costosa, pero representa la forma mas practica por la cantidad de conexiones y por la precisión en la señal de reloj emitida. En la siguiente imagen se muestra como debe conectarse al microcontrolador y las características del cristal. Estos tipos de cristales están diseñados especialmente para tecnologías TTL. La frecuencia (Mhz) disponibles para esta versión de cristal son muy amplias y las mas usuales son 1 - 1.8432 - 2 - 4 - 8 - 10 ~ 11.059 - 12 - 14.31818 - 16 - 20 - 25 - 32 - 33 - 40 - 50 - 80 y 100 MHz. Se puede observar claramente que podrá adquirir este tipo de cristal con frecuencias por debajo de 4 MHz lo cual quiere decir que podrá configurar su microcontrolador en "XT" indicándole que se encuentra por debajo de 4 MHz. • En segundo lugar tenemos el oscilador tipo RC es el mas económico por que tan solo se utiliza un condensador no polarizado y una resistencia. Este tipo de oscilador proporciona una estabilidad mediocre en la frecuencia y podrá ser utilizado para aquellos proyectos que no se requiera precisión. • En tercer lugar tenemos el oscilador tipo "XT" para frecuencias no mayores de 4 MHz. CAPITULO II ARQUITECTURA DE LOS MICROCONTROLADORES PIC 2.1- Introducción La nueva generación de PIC con memoria de programa FLASH que vienen a desplazar al PIC16F84 disponen de una serie de características que los hacen muy versátiles en el desarrollo de aplicaciones en diferentes ámbitos. Específicamente se hará referencia a los modelos PIC16F873, PIC16F874, PIC16F876 y PIC16F877 cuyas características pueden ser analizadas en la siguiente tabla comparativa: 2.2- Características Principales de la Familia PIC16F8X vs. PIC16F87X: PIC16F84A Microcontrolador de 8 bits 68 bytes de RAM de usuario (2 bancos) 64 bytes de EEPROM 1K de EEPROM Flash (1024x14bits) 13 líneas de E/S (2 puertos) 1 timer de 8 bits (TMR0) --WDT Frecuencia de trabajo hasta 20MHz Alimentación de 2 a 5,5v 35 instrucciones de 14 bits 4 fuentes de interrupción Pila con 8 niveles --------- Prof. Ing. Luis Pacheco Cribillero PIC16F87X (28 pines) Microcontrolador de 8 bits 368 bytes de RAM de usuario (4 bancos) 256 bytes de EEPROM 8K de EEPROM Flash 8192x14bits) 22 líneas de E/S (3 puertos) 2 timer de 8 bits (TMR0, TMR2) 1 timer de 16 bits (TMR1) WDT Frecuencia de trabajo hasta 20MHz Alimentación de 2 a 5,5v 35 instrucciones de 14 bits 14 fuentes de interrupción Pila con 8 niveles 2 módulos de captura y comparación PWM Conversor A/D de 5 canales de entrada y 10bits 1 Puerto serie síncrono con SPI e I2C 1 USART Grabación ICSP-LV a 5v, seleccionado mediante RB3/PGM CIRCUITOS DIGITALES II UTP – FIEM 2.3- Microcontroladores de Microchip Facultad de Ingeniería Electrónica Arquitectura del PIC16F8X Los microcontroladores de la familia de la gama media dispone de una estructura organizada interiormente, conformado por bloques interconectados en donde se incluye la memoria FLASH, SRAM, EEPROM, los puertos de entrada/salida, los periféricos especializados, etc. Como se muestran en las siguientes figuras: Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM 2.4- Microcontroladores de Microchip Facultad de Ingeniería Electrónica MEMORY ORGANIZATION There are two memory blocks in the PIC16F8X. These are the program memory and the data memory. Each block has its own bus, so that access to each block can occur during the same oscillator cycle. The data memory can further be broken down into the general purpose RAM and the Special Function Registers (SFRs). The operation of the SFRs that control the “core” are described here. The SFRs used to control the peripheral modules are described in the section discussing each individual peripheral module. The data memory area also contains the data EEPROM memory. This memory is not directly mapped into the data memory, but is indirectly mapped. That is, an indirect address pointer specifies the address of the data EEPROM memory to read/write. The 64 bytes of data EEPROM memory have the address range 0h-3Fh. More details on the EEPROM memory can be found in Section 7.0. Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica 2.4.1 Program Memory Organization The PIC16FXX has a 13-bit program counter capable of addressing an 8K x 14 program memory space. For the PIC16F83 and PIC16CR83, the first 512 x 14 (0000h-01FFh) are physically implemented (Figure 4-1). For the PIC16F84 and PIC16CR84, the first 1K x 14 (0000h-03FFh) are physically implemented (Figure 4-2). Accessing a location above the physically implemented address will cause a wraparound. For example, for the PIC16F84 locations 20h, 420h, 820h, C20h, 1020h, 1420h, 1820h, and 1C20h will be the same instruction. The reset vector is at 0000h and the interrupt vector is at 0004h. 2.4.2 Data Memory Organization The data memory is partitioned into two areas. The first is the Special Function Registers (SFR) area, while the second is the General Purpose Registers (GPR) area. The SFRs control the operation of the device. Portions of data memory are banked. This is for both the SFR area and the GPR area. The GPR area is banked to allow greater than 116 bytes of general purpose RAM. The banked areas of the SFR are for the registers that control the peripheral functions. Banking requires the use of control bits for bank selection. These control bits are located in the STATUS Register. Figure 4-1 and Figure 4-2 show the data memory map organization. Instructions MOVWF and MOVF can move values from the W register to any location in the register file (“F”), and vice-versa. The entire data memory can be accessed either directly using the absolute address of each register file or indirectly through the File Select Register (FSR) (Section 4.5). Indirect addressing uses the present value of the RP1:RP0 bits for access into the banked areas of data memory. Data memory is partitioned into two banks which contain the general purpose registers and the special function registers. Bank 0 is selected by clearing the RP0 bit (STATUS<5>). Setting the RP0 bit selects Bank 1. Each Bank extends up to 7Fh (128 bytes). The first twelve locations of each Bank are reserved for the Special Function Registers. The remainder are General Purpose Registers implemented as static RAM. 2.4.2.1 GENERAL PURPOSE REGISTER FILE All devices have some amount of General Purpose Register (GPR) area. Each GPR is 8 bits wide and is accessed either directly or indirectly through the FSR (Section 4.5). The GPR addresses in bank 1 are mapped to addresses in bank 0. As an example, addressing location 0Ch or 8Ch will access the same GPR. 2.4.2.2 SPECIAL FUNCTION REGISTERS The Special Function Registers (Figure 4-1, Figure 4-2 and Table 4-1) are used by the CPU and Peripheral functions to control the device operation. These registers are static RAM. Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica The special function registers can be classified into two sets, core and peripheral. Those associated with the core functions are described in this section. Those related to the operation of the peripheral features are described in the section for that specific feature. Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Prof. Ing. Luis Pacheco Cribillero Microcontroladores de Microchip Facultad de Ingeniería Electrónica CIRCUITOS DIGITALES II UTP – FIEM Prof. Ing. Luis Pacheco Cribillero Microcontroladores de Microchip Facultad de Ingeniería Electrónica CIRCUITOS DIGITALES II UTP – FIEM Microcontroladores de Microchip Facultad de Ingeniería Electrónica CAPITULO III PROGRAMACIÓN DE LOS MICROCONTROLADORES PIC Prof. Ing. Luis Pacheco Cribillero CIRCUITOS DIGITALES II UTP – FIEM Prof. Ing. Luis Pacheco Cribillero Microcontroladores de Microchip Facultad de Ingeniería Electrónica CIRCUITOS DIGITALES II