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