El documento describe las ventajas y características de los microcontroladores PIC. Los PIC tienen ventajas como su bajo costo, gran cantidad de información disponible, y herramientas de soporte baratas y fáciles de usar. El documento también describe las características del PIC16F84, incluyendo que usa una arquitectura Harvard, es un procesador RISC con instrucciones de 14 bits, y tiene puertos A y B para E/S. Finalmente, el documento resume las tres gamas principales de PIC que varían en memoria, recurs
2. Ventajas
Existen varias razones por las cuales conviene utilizar PIC:
• Por la cantidad de información disponible sobre estos microcontroladores,
y es que para las aplicaciones más habituales la elección de una versión
adecuada de PIC es la mejor solución.
• Por su sencillez de manejo, tienen un juego de instrucciones reducido, de
35 en la gama media.
• Por su precio, que es comparativamente inferior al de sus competidores
• Por su velocidad y promedio de parámetros en consumo, tamaño, etc.
• Porque posee gran variedad de herramientas, tanto de software como de
hardware, baratas y fáciles de utilizar.
3. Características de los
PIC
• La arquitectura del procesador sigue el modelo Harvard:
En esta arquitectura, la CPU se conecta de forma independiente y con buses
distintos con la memoria de instrucciones y con la de datos y así permitir su
acceso simultaneo.
MEMORIA DE
Bus de datos Bus de Instrucciones
DATOS CPU MEMORIA DE
INSTRUCCIONES
8 12
•Se aplica la técnica de segmentación (“pipe-line”) en la ejecución de las
instrucciones:
La segmentación permite al procesador realizar al mismo tiempo la
ejecución de una instrucción y la búsqueda del código de la siguiente. De esta
forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción
equivale a cuatro ciclos de reloj) excepto las instrucciones de salto que ocupan dos
ciclos
4. Características de los
PIC
• El formato de todas las instrucciones es de la misma longitud:
Las instrucciones de los microcontroladores de la gama baja tienen una
longitud de 12 bits. Las de la gama media tienen 14 bits y más las de la gama
alta. Esta característica es muy ventajosa en la optimización de la memoria de
instrucciones y facilita enormemente la construcción de ensambladores y
compiladores.
• Procesador RISC (Computador de Juego de instrucciones reducido):
Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35
los de la gama media y casi 60 los de la alta.
• Todas las instrucciones son ortogonales:
Cualquier instrucción puede manejar cualquier elemento de la arquitectura
como fuente o como destino.
5. Características de los
PIC
• Arquitectura basada en un banco de registros:
Esto significa que todos los objetos del sistema (puertas de E/S,
temporizadores, posiciones de memoria, etc.) están implementados físicamente
como registros.
• Diversidad de modelos de microcontroladores con prestaciones y recursos
diferentes:
La gran variedad de modelos de microcontroladores PIC permite que el usuario
pueda seleccionar el más conveniente para su proyecto.
• Herramientas de soporte potentes y económicas:
La empresa Microchip y otras que utilizan los PIC ponen a disposición de los
usuarios numerosas herramientas para desarrollar hardware y software. Son
muy abundantes los programadores, los simuladores software, los emuladores
en tiempo real, Ensambladores, Compiladores C, Intérpretes y Compiladores
BASIC, etc.
6. Las gamas de PIC
• Gama baja:
La gama baja de los PIC encuadra nueve modelos fundamentales en la actualidad.
A muchos de estos microcontroladores de gama baja se les llama “enanos”
porque solamente disponen de 8 patillas.
La memoria de programa puede contener 512, 1 k. y 2 k palabras de 12 bits, y
ser de tipo ROM, EPROM aunque también hay modelos con memoria OTP. La
memoria de datos puede tener una capacidad comprendida entre 25 y 73 bytes.
Sólo disponen de un temporizador (TMR0), un repertorio de 33 instrucciones y
un número de patitas para soportar las E/S comprendido entre 12 y 20. El
voltaje de alimentación admite un valor muy flexible comprendido entre 2 y 6,25
V, lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en
cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz ).
7. Las gamas de PIC
• Características:
• Sistema POR (POWER ON RESET): Todos los PIC tienen la facultad de
generar un auto reset al conectarles la alimentación.
• Perro guardián (Watchdog): Existe un temporizador que produce un reset
automáticamente si no es recargado antes de que pase un tiempo prefijado. Así
se evita que el sistema quede "colgado" dado en esa situación el programa no
recarga dicho temporizador y se genera un reset.
• Código de protección: Cuando se procede a realizar la grabación del programa,
puede protegerse para evitar su lectura.
• Líneas de E/S de alta corriente: Las líneas de E/S de los PIC pueden
proporcionar o absorber una corriente de salida comprendida entre 20 y 25 mA,
capaz de excitar directamente ciertos periféricos.
8. Las gamas de PIC
Características:
• Modo de reposo (bajo consumo o SLEEP): Ejecutando una instrucción
(SLEEP), la CPU y el oscilador principal se detienen y se reduce notablemente
el consumo.
Existen dos restricciones importantes de la gama baja y es que la pila solo
dispone de dos niveles, lo que supone no poder encadenar más de dos
subrutinas y además no admiten interrupciones.
Gama Media
Admiten interrupciones, poseen comparadores de magnitudes analógicas,
convertidores A/D, puertos serie y diversos temporizadores.
Disponen de una memoria de instrucciones del tipo OTP que resulta mucho
más económica en la implementación de prototipos y pequeñas series. Otros
disponen de una memoria de instrucciones tipo EEPROM, que, al ser borrables
eléctricamente, son mucho más fáciles de reprogramar que las EPROM, que
tienen que ser sometidas a rayos ultravioleta durante un tiempo determinado
para realizar dicha operación.
9. Las gamas de PIC
Gama Alta:
Los dispositivos PIC17C4X responden a microcontroladores de arquitectura abierta
pudiéndose expansionar en el exterior al poder sacar los buses de datos,
direcciones y control.
Así se pueden configurar sistemas similares a los que utilizan los
microprocesadores convencionales, siendo capaces de ampliar la configuración
interna del PIC añadiendo nuevos dispositivos de memoria y de E/S externas.
Esta facultad obliga a estos componentes a tener un elevado número de patitas
comprendido entre 40 y 44. Admiten interrupciones, poseen puerto serie, varios
temporizadores y mayores capacidades de memoria, que alcanza los 8k
palabras en la memoria de instrucciones y 454 bytes en la memoria de datos.
Microchip ha lanzado varios modelos de microcontroladores de gran potencia y
velocidad, y se destinan a aplicaciones muy avanzadas. Con un patillaje que
llega desde las 28 hasta las 84 patillas, la memoria de código alcanza las 64k
palabras y una frecuencia de 40 MHz.
11. PIC16F84
Características del PIC16F84
• Toda la información que grabamos (memoria de programa y de datos) se puede
modificar con el microcontrolador conectado a la aplicación. (ICSP = “In-Circuit
Serial Programing”).
• La arquitectura de la CPU es de tipo HARVARD.
• Filosofía tipo RISC (juego de instrucciones reducido). 35 instrucciones muy
simples y todas son ejecutadas en un ciclo, excepto las de salto que emplean
dos.
• Memoria de datos tipo EEPROM. Los ciclos de lectura/escritura se aproximan
1.000.000 de veces, manteniendo la información más de 40 años.
• Memoria de programa tipo FLASH. De iguales prestaciones que la EEPROM
pero con mejor rendimiento. Los ciclos de lectura/escritura están en torno a
1.000 veces.
12. PIC16F84
Características del PIC16F84
• Protección de programa mediante la activación de un código de protección.
• Una pila con 8 niveles, para poder controlar los saltos a interrupciones o
subrutinas.
• El TIMER 0 es un contador/temporizador de 8 bits.
• El WATCHDOG TIMER (WDT), o perro guardián, es un temporizador cuya
base de tiempos es independiente, formada por una red R – C interna que el
microcontrolador posee.
• Hay 4 posibles fuentes de interrupción internas/externas, las cuales pueden ser
habilitadas o deshabilitadas por software.
La frecuencia de trabajo máxima puede ser de 10 MHz en el 16F84 y de 20MHz en
el 16F84A.
13. PIC16F84
Características del PIC16F84
• Está fabricado en tecnología CMOS, por lo que su consumo es muy reducido:
• Menos de 2mA trabajando con una alimentación de 5 V a 4 MHz.
• 15 μA trabajando con una alimentación de 2 V a 5’5 KHz.
• Sobre 1 μA trabajando en reposo.
• Amplio margen de la tensión de alimentación, de 2 V a 5’5 V.
• Alta capacidad de corriente por terminal: 25 mA.
• Detección de falta de alimentación.
15. Patillaje PIC16F84
Patillaje del PIC16F84
• VDD y VSS: Terminales de alimentación. Puede estar entre 2 y 5’5 V.
• MCLR: Es el reset principal del PIC (Master Clear). Se produce cuando la
tensión en dicho Terminal desciende entre 1’2 y 1’7 V. El fabricante define este
reset como Power-on Reset (POR), o reset interno.
• 0SC1/CLKIN, OSC2/CLKOUT: Terminales para la conexión del oscilador
externo, proporcionando la frecuencia de trabajo o frecuencia del reloj principal.
El PIC puede funcionar de cuatro formas distintas:
RC: El oscilador está construido con una red R – C. La frecuencia de
oscilación puede ir desde algunas decenas de hercios hasta los 4 MHz. La
estabilidad de frecuencia es la menor de las cuatro opciones. En el
Terminal OSC2/CLKOUT tendremos la cuarta parte de la frecuencia del
oscilador principal.
HS: Oscilador de alta frecuencia. Puede utilizarse tanto un cristal de cuarzo
como un resonador cerámico.
XT: Trabajamos a frecuencias medias. Puede utilizarse un oscilador cerámico
como un cristal de cuarzo.
LP: Oscilador de bajo consumo. Trabaja con cristales de cuarzo.
16. Patillaje PIC16F84
Patillaje del PIC16F84
OSC FREC. C1 C2
HS 4 MHz 15-33 pF 15-33
pF
10 MHz 15-33 pF 15-33
p F XT 100 MHz 100-150 pF 100-150 pF
2 MHz 15-33 pF 15-33 pF
4 MHz 15-33 pF 15-33 pF
LP 32 MHz 68-100 pF 68-100 pF
200 MHz 15-33 pF 15-33 pF
• RA0 – RA4: Terminales de entrada/salida del puerto A. Pueden suministrar una
corriente por cada Terminal de 20 mA. Pero la suma de las cinco líneas del
puerto A no puede exceder de 50 mA.
• La corriente absorbida por cada Terminal puede ser de 25 mA, pero la suma
de las cinco líneas no puede exceder de 80 mA.
• El pin RA4 tiene una doble función, seleccionable por programa: Es la entrada
del contador/temporizador TMR0
17. Patillaje PIC16F84
Patillaje del PIC16F84
• RB0 – RB7: Terminales de entrada/salida del puerto B. Pueden suministrar una
corriente por cada Terminal de 20 mA. Pero la suma de las ocho líneas no
puede exceder de 100 mA.
• La corriente absorbida por cada línea puede ser de 25 mA. Pero la suma de
las ocho líneas no puede exceder de 150 mA.
• El pin RB0 tiene una doble función, seleccionable por programa: Es la entrada
de interrupción externa, es decir INT.
• Los pines RB4 al RB7 tienen una doble función, seleccionable por programa:
Entrada de interrupción externa por cambio de estado.
• El puerto B tiene una opción, seleccionable por programa, la cual nos permite
conectar a cada Terminal una resistencia de alto valor a positivo, esto es,
resistencia pull-up (ideal para aplicaciones en lectura de teclados).
18. Características
PIC16F84
EL PIC 16F84 SE CARACTERIZA POR DISPONER DE:
Procesador segmentado pipeline.
Procesador tipo RISC.
Disponer de arquitectura tipo HARVARD.
Formato de instrucciones ortogonal.
Una misma longitud de instrucciones (14 bits).
Arquitectura basada en banco de registros.
PROCESADOR SEGMENTADO PIPELINE
Permite realizar simultáneamente la ejecución de una instrucción y la búsqueda del
código de la siguiente instrucción.
De esta manera se puede ejecutar una instrucción en un ciclo máquina.
Cada ciclo máquina equivale a cuatro ciclos de reloj.
19. Características
PIC16F84
PROCESADOR TIPO RISC
Las CPUs dependiendo del tipo de instrucciones que utilizan pueden clasificarse
en:
CISC: (Complex Instruction Set Computer): Computadores de juego de
instrucciones complejo. Repertorio de instrucciones elevado (unas 80).
Algunas muy sofisticadas y potentes. Requieren de muchos ciclos máquina
para ejecutar las instrucciones complejas.
RISC: (Reduced Instruction Set Computer): Computadores de juego de
instrucciones reducido. Repertorio de instrucciones muy reducido (35 en
nuestro caso). Son muy simples. Suelen ejecutarse en un ciclo máquina.
Los RISC deben tener estructura pipeline y ejecutar todas las instrucciones
a la misma velocidad.
SISC: (Specific Instruction Set Computer): Computadora de juego de
instrucciones específico.
20. Características
PIC16F84
ARQUITECTURA VON NEWMAN
Dispone de una única memoria principal en la que se almacenan datos e
instrucciones.
A esta memoria se accede a través de un sistema de buses único:
Bus de datos.
Bus de direcciones.
Bus de control.
21. Características
PIC16F84
ARQUITECTURA HARVARD
Este modelo dispone de dos memorias:
Memoria de datos
Memoria de programa.
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 direcciones.
Como los buses son independientes, estos pueden tener distintas direcciones.
22. Características
PIC16F84
ARQUITECTURA ORTOGONAL
Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como
fuente o destino.
En la ALU se realizan las operaciones lógico-aritméticas con dos operandos, uno
que recibe desde el registro W, que hace las veces de acumulador y otro que
puede venir de cualquier registro interno.
El resultado de la operación se puede depositar en cualquier registro.
Esta funcional da un carácter completamente “ortogonal” a las instrucciones,
posibilitando que los operandos fuente y destino estén ubicados en cualquier
registro.
23. Características
PIC16F84
CICLOS DE INSTRUCCIÓN
Si la frecuencia máxima de reloj es de 10 MHz, lo que determina un ciclo de reloj
de 100 ns.
El ciclo de instrucción, en el que se ejecutan la mayoría de las instrucciones se
compone de 4 ciclos de reloj, que a 10 MHz supone una duración de 400 ns por
instrucción.
En realidad, cada instrucción conlleva dos ciclos de instrucción, el primero
destinado a la “fase de búsqueda o fetch” y el otro a la “fase de ejecución o
execute”.
Sin embargo, la estructura “segmentada” del procesador permite realizar
simultáneamente la fase de ejecución de una instrucción y la de búsqueda de la
siguiente, por tanto, una instrucción es ejecutada en un ciclo de instrucción, o
sea, en cuatro ciclos máquina.
25. Características
PIC16F84
CICLOS DE INSTRUCCIÓN
EJEMPLO
Si la frecuencia del reloj principal es de 4 MHz, un ciclo de instrucción tardará en
realizarse:
T oscilación del reloj principal = 1 / F del reloj principal
1 / 4 MHz = 250 ns.
Ciclos de instrucción = T oscilación del reloj principal • 4
250 ns • 4 = 1 μs.
Si en nuestro programa tenemos unas 100 instrucciones, la ejecución completa
tardará:
100 • 1μs = 100 μs
26. Características
PIC16F84
ARQUITECTURA BASADA EN BANCO DE REGISTROS
Todos los elementos del sistema, es decir, temporizadores, puertos de entrada /
salida, posiciones de memoria, etc., están implementados físicamente como
registros.
Todos los registros participan activamente en la ejecución de las instrucciones. Es
muy importante conocer su manejo al ser ortogonales.
27. Características
PIC16F84
DIAGRAMA DE BLOQUES DEL PIC 16C84 Y 16F84
• Memoria de programa: 1K x 14 bits (EEPROM en el 16C84 y FLASH en el
16F84).
• Memoria de datos dividida en dos áreas:
Área RAM formada por 22 registros de propósito específico (SFR) y 36 de
propósito general (GPR) en el 16C84 y 68 registros de propósito general (GPR)
en el 16F84.
Área EEPROM formada por 64 bytes.
• ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando
que puede ser cualquier registro, memoria, puerto de entrada/salida o el propio
código de instrucción.
• Recursos conectados al bus de datos:
PORTA de 5 bits. (RA0……..RA4)
PORTB de 8 bits. (RA0 …………….RA7)
Temporizador con Preescaler TMR0.
• Contador de programa de 13 bits: Lo que en teoría permitiría direccional 4K de
memoria, aunque sólo se dispone de 1K de memoria implementada.
29. Características
PIC16F84
ORGANIZACIÓN DE LA MEMORIA DE DATOS
La memoria de datos está dividida en dos zonas claramente diferenciadas:
Área RAM estática, compuesta por dos bancos de registros de 128 bytes cada
uno, aunque sólo los 80 primeros de cada banco se encuentran implementados
físicamente en el PIC.
El banco de registros específicos (SFR) compuesto por 24 posiciones
tamaño byte, aunque dos de ellas no son operativas.
Algunos de los registros específicos se encuentran duplicados en la misma
dirección de los dos bancos, para simplificar su acceso.
El registro STATUS o ESTADO se encuentra en la posición 03h y 83h.
30. Características
PIC16F84
ORGANIZACIÓN DE LA MEMORIA DE DATOS
El banco de registros de propósito general (GPR) formado por 68 posiciones de
memoria de las que sólo son operativas las 36 posiciones del banco 0, porque
los del banco 1 se “mapean” sobre el banco 0, es decir, cuando se apunta a un
registro general del banco 1, se accede al mismo del banco 0.
Para seleccionar el banco a acceder hay que manipular el bit 5 (RP0) del registro
STATUS. Con RP0 = 0 se accede al banco 0 y con RP0 = 1 se accede al
banco 1. Después de un Reset se selecciona automáticamente el banco 0.
Área de EEPROM que dispone de 64 bytes donde opcionalmente se pueden
almacenar datos que no se pierden al desconectar la alimentación.
31. Características
PIC16F84
BREVE DESCRIPCIÓN DE CADA UNO DE LOS REGISTROS ESPECIALES
• INDF: Utilizado en el direccionamiento indirecto, no está implementado
físicamente en el microcontrolador.
• TMR0: Registro en el que tendremos el valor del TIMER 0.
• PCL: Tendremos los 8 bits de menos peso del contador de programa.
• STATUS: Contiene información sobre es estado de la ALU y reset, y es
utilizado para seleccionar los bancos de la memoria de datos en el
direccionamiento directo e indirecto.
• FSR: Utilizado en el direccionamiento indirecto de la memoria de datos, actúa
como puntero.
• PUERTO A: utilizado para la lectura/escritura en el puerto A.
32. Características
PIC16F84
BREVE DESCRIPCIÓN DE CADA UNO DE LOS REGISTROS ESPECIALES
• PUERTO B: utilizado para la lectura/escritura en el puerto B.
• EEDATA: Contiene los datos de una posición de la memoria de datos de tipo
EEPROM.
• EEADR: Contiene la dirección de una posición de la memoria de datos de tipo
EEPROM.
• PCLATH: Tendremos los cinco bits de menos peso del contador de programa.
• INTCON: Contiene información de las interrupciones provocadas por el puerto
B, el TIMER 0, el Terminal INT y también la habilitación de dichas
interrupciones.
• OPTION: Configuración del pre-escaler, TIMER 0 y de las interrupciones del
Terminal INT y del puerto B.
33. Características
PIC16F84
BREVE DESCRIPCIÓN DE CADA UNO DE LOS REGISTROS ESPECIALES
• TRIS A: Registro para la configuración de las líneas del Puerto A como
entradas o salidas.
• TRIS B: Registro para la configuración de las líneas del Puerto B como
entradas o salidas.
• EECON1: Este registro es con el que se controlan los procesos de
lectura/escritura en la EEPROM.
• EECON2: Este registro es utilizado para la realización de la secuencia de
grabación de la EEPROM.
34. Puertos I/O PIC16F84
PUERTOS DE ENTRADA / SALIDA
Disponemos de dos puertos denominados PORTA y PORTB que se encuentran en
la posición de memoria SFR 05h y 06h respectivamente del Banco 0.
Las líneas de estos puertos se pueden programar individualmente como entrada o
como salida.
Para configurar como entrada deberemos colocar un “1” en el bit asociado del
registro de configuración del puerto.
Para configurar como salida deberemos colocar un “0” en el bit asociado del
registro de configuración del puerto.
Configuración de PORTA en registro TRISA en dirección de memoria 05h del
Banco 1.
Configuración del PORTB en registro TRISB en dirección de memoria 06h del
Banco 1.
35. Puertos I/O PIC16F84
PUERTOS DE ENTRADA / SALIDA
El PORTA: (Dirección 05h del Banco 0).
Dispone de 5 bits. (RA0 - RA4).
Su registro de configuración es el TRISA. (05h del Banco 1)
RA0 – RA3 admiten niveles TTL de entrada y CMOS de salida.
RA4 – T0CK1 proporciona una buena inmunidad al ruido. Si se configura
como salida es de colector abierto.
RA4 multiplexa su función de E/S con la entrada de impulsos externos para
TMR0.
Cada línea de salida puede suministrar una corriente máxima de 20 mA.
(Configuración como salida).
Si se configura como entrada puede absorber una corriente máxima de 25 mA.
El PORTA tiene una limitación máxima de corriente de absorción cuando está
configurado como entrada de 80 mA. en total y de una corriente de salida
total máxima de 50 mA.
Con un reset todas las líneas quedan configuradas como entradas.
36. Puertos I/O PIC16F84
EL PORTB: (Dirección 06h del Banco 0).
Formado por 8 líneas de E/S (RB0 – RB7).
Su registro de configuración es el TRISB. (06h del Banco 1).
RB0/INT tiene doble función: E/S del puerto y la de petición de interrupción
externa.
A todas las líneas de este puerto se les puede conectar una resistencia de
pull-up de un valor elevado conectadas a la tensión de alimentación.
Para esta operación hay que programar el registro OPTION en el bit RBPU
= 0, afectando a todas las líneas del puerto.
Con un reset todas las líneas quedan configuradas como entradas y se
desactivan las resistencias de pull-up.
Las líneas RB4 – RB7 cuando actúan como entradas, se les puede
programar para generar una interrupción si alguna de ellas cambia de
estado lógico. Esto es interesante en el control de teclados.
El cambio de una de las señales de entrada produce una interrupción que
se refleja en el flag RBIF del registro INTCON.
En modo de programación la línea RB6 soporta la grabación y el bit RB7 se
utiliza como entrada de datos serie.