Tarjeta entrenadora de microcontrolador PIC16F84.

Anuncio
 Tarjeta entrenadora de microcontrolador PIC16F84.
Omar Ivan Gaxiola Sánchez, Modesto Guadalupe Medina Melendrez,
Manuel de Jesús Acosta Portillo, Mijail Romero Delgado, Misael Romero Delgado.
INSTITUTO TECNOLÓGICO DE CULIACÁN
[email protected]
Resumen
Este trabajo presenta un prototipo funcional y didáctico para la enseñanza del uso del
microcontrolador PIC16F84, específicamente en prácticas desde nivel básico hasta intermedio. Una
de sus principales características es que la tarjeta cuenta con todos los periféricos de entrada y salida
necesarios para la realización de 15 prácticas con manejo de funciones, periféricos y protocolos de
comunicación con el microcontrolador. Se agregó un programador que permite cargar los códigos de
los programas a ejercitar, sin necesidad de desmontar el microcontrolador de la tarjeta.
PALABRAS CLAVE: PIC16F84, microcontrolador, tarjeta entrenadora.
1. Introducción
Una tarjeta entrenadora es una herramienta muy útil para estudiantes que se inician en el
uso de los microcontroladores. Ésta contiene todos los dispositivos necesarios para la realización
de prácticas especificas que les permite desarrollar habilidades de los microcontroladores en su
programación y modos de operación que ofrecen [2]. Una ventaja adicional que brinda este diseño
es la incorporación de un programador para el microcontrolador, de tal forma, que para cargar el
programa de la práctica que se va a implementar solo basta con entrar al modo de programación y
conectar la tarjeta a la pc, sin necesidad de desmontarlo de la tarjeta entrenadora. En los puntos 2,
3 y 4 se explican las características del microcontrolador. El punto 5 contiene la información del
diseño de la tarjeta, partes que la integran y modos de operación. Y por último, en la sección 6 se
dan los resultados y conclusiones de este artículo.
2. Microcontrolador PIC16F84.
El PIC16F84 es un microcontrolador a 8 bits de la familia PIC perteneciente a la Gama
Media (según la clasificación dada a los microcontroladores por la misma empresa
fabricante) Microchip [8].
Se trata de uno de los microcontroladores más populares del mercado actual, ideal para
principiantes, debido a su arquitectura de 8 bits, 18 pines (la distribución de pines del
microcontrolador se muestran en la figura 1), y un conjunto de 35 instrucciones RISC muy amigable
para memorizar y fácil de entender, internamente consta de [1]:

Memoria Flash de programa (1K x 14 bits).

Memoria EEPROM de datos (64 x 8 bits).

Memoria RAM (68 registros x 8 bits).

Un temporizador/contador (timer de 8 bits).

Un divisor de frecuencia.
1 
Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto
B).
Otras características son [1]:

Manejo de interrupciones (de 4 fuentes).

Perro guardián (watchdog).

Bajo consumo.

Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones). La
frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj de
20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de Instrucciones por
Segundo (5 MIPS).

Pipe-line de 2 etapas, 1 para búsqueda de instrucción y otra para la ejecución de la instrucción
(los saltos ocupan un ciclo más).

Repertorio de instrucciones reducido (RISC), con tan solo 35 instrucciones distintas.

4 tipos distintos de instrucciones: orientadas a byte, orientadas a bit, operación entre registros
y de salto.
Figura 1. Terminales del PIC16F84.
3. Puertos del microcontrolador.
Los puertos son el puente entre el microcontrolador y el mundo exterior. Son líneas digitales que
trabajan entre cero y cinco voltios, y se pueden configurar como entradas o como salidas. El
2
PIC16F84 tiene dos puertos, el puerto A con 5 líneas y el puerto B con 8 líneas. El puerto A tiene las
líneas RA0, RA1, ...., RA4 y el puerto B las líneas RB0, RB1, ...., RB6, RB7 como se muestra en la
figura 2.
Cada pin se puede configurar como entrada o como salida independiente programando los
registros TRISA y TRISB del Banco 1, para el puerto A y el puerto B respectivamente. En estos
registros un "0" configura el pin del puerto correspondiente como salida y un "1" lo configura como
entrada [1].
Figura 2. Puertos del PIC16F84.
El puerto B tiene internamente unas resistencias de pull-up conectadas a sus pines (sirven
para fijar el pin a un nivel de cinco voltios), su uso puede ser habilitado o deshabilitado bajo control
del programa. Todas las resistencias de pull-up se conectan o se desconectan a la vez, usando el bit
llamado RBPU que se encuentra en el registro OPTION. La resistencia de pull-up es desconectada
automáticamente en un pin si este se programa como salida. El pinRB0/INT se puede configurar por
software para que funcione como interrupción externa, para configurarlo se utilizan unos bits de los
registros INTCON y OPTION [2].
El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida o como
entrada del temporizador/contador. Cuando este pin se programa como entrada digital, funciona
como un disparador de Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y
llevarlas a niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como
colector abierto, por lo tanto, se debe poner una resistencia de pull-up (resistencia externa conectada
a un nivel de cinco voltios). Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega
en el pin un "1" lógico.
Además, como salida no puede manejar cargas como fuente, sólo en el modo sumidero.
Como este dispositivo es de tecnología CMOS, todos los pines deben estar conectados a alguna
parte, nunca dejarlos flotando porque se puede dañar el integrado. Los pines que no se estén usando
se deben conectar a la fuente de alimentación de +5V, como se muestra en la figura 3.
3
Figura 3. Conexión de pines no utilizados.
La capacidad máxima de corriente de cada uno de los pines de los puertos en modo sumidero
(sink) es de 25 mA y en modo fuente (source) es de 20 mA. La máxima capacidad de corriente total
de los puertos es [1]:
Modo sumidero
Modo fuente
Puerto A
80 mA
50 mA
Puerto B
150 mA
100 mA
El consumo de corriente del microcontrolador para su funcionamiento depende del voltaje de
operación, la frecuencia y de las cargas que tengan sus pines. Para un reloj de 4 MHz el consumo es
de aproximadamente 2 mA; aunque este se puede reducir a 40 microamperios cuando se está en el
modo sleep (en este modo el micro se detiene y disminuye el consumo de potencia).
4. Oscilador externo.
Todo microcontrolador requiere un circuito externo que le indique la velocidad a la que debe trabajar.
Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el
buen funcionamiento del sistema. El PIC16F84 puede utilizar cuatro tipos de oscilador diferentes.
Estos tipos son:
• RC. Oscilador con resistencia y condensador.
• XT. Cristal.
• HS. Cristal de alta velocidad.
• LP. Cristal para baja frecuencia y bajo consumo de potencia.
El tipo de oscilador que se sugiere para las prácticas es el cristal de 4 MHz, porque garantiza mayor
precisión y un buen arranque del microcontrolador. Internamente, ésta frecuencia es dividida por
cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1 MHz, por lo que cada instrucción se
ejecuta en un microsegundo. El cristal debe ir acompañado de dos condensadores de entre 15 y 33 pf
y se conecta como se muestra en la figura 4 [8].
4
Figura 4. Conexión del oscilador externo.
5. Funcionamiento de la tarjeta entrenadora.
La tarjeta entrenadora de microcontrolador PIC16F84A es un circuito impreso que contiene
los dispositivos básicos para desarrollar prácticas sencillas y didácticas, con el objetivo de que el
estudiante aprenda cómo programar e implementar diversos dispositivos periféricos que
interactúan con el microcontrolador.
El diseño involucra dispositivos de control de selección de prácticas y un programador.
Para la selección de prácticas se utiliza unza el circuito integrado 74LS154, el cual consta de 4
entradas de datos binarios que toman valores de 0 y 1, teniendo 16 salidas de datos diferentes.
Las 16 líneas de salida del demultiplexor controlan buffers triestado e interruptores electrónicos
para activar los dispositivos de entrada y salida necesarios para la realización de la práctica
seleccionada. La figura 5 muestra el diagrama de configuración del bloque de selección de
prácticas.
Entrada 1
Entrada 2
Entrada 3
Selector
de
practica
Programador
Práctica 1
Práctica 2
Práctica 3
Práctica 4
Práctica 5
Práctica 6
Práctica 7
Entrada 4
Práctica 15
Figura 5. Bloque de selección de prácticas.
En el modo de operación 0, que corresponde al de programación por medio del puerto USB,
se carga el código al PIC de la tarjeta. El programador implementado e incorporado en el diseño de
la tarjeta permite la programación del microcontrolador sin necesidad de retirarlo de la placa. El
software que se utiliza para la grabación de programas al PIC16F84A es el PICkit2 de Microchip, el
5
cual requiere de una conexión USB para envío y recepción de datos. La tabla siguiente da una
descripción de los 16 modos de funcionamiento seleccionables para la tarjeta entrenadora:
No. de
práctica
Práctica
0
Programador USB.
1
Control de 5 LED por medio de
interruptores.
2
Decodificador de BCD a 7 segmentos con
selector de tipo de display.
3
Control de niveles de líquido de un aljibe.
4
Control de 2 semáforos con retardos.
5
Utilización de la pantalla LCD.
6
Utilización de la memoria interna EEPROM
con una pantalla LCD.
7
Implementación del protocolo RS232.
8
Termómetro digital por el bus I2C.
9
Termómetro digital con comunicación por
RS-232 e interfaz programable de texto.
10
Cerradura electrónica con teclado matricial
conectado a expansor de bus I2C.
11
Reloj digital por el bus I2C.
12
Termómetro digital visualizado en 4 display
de 7 segmentos.
6
Objetivo
Cargar el programa a la
memoria de programa del
microcontrolador.
Controlar 5 LEDs comunes
a
través
de
interruptores/switch
y
pulsadores.
Comprender
el
funcionamiento
de
los
display de siete segmentos
y su utilización en un
microcontrolador.
Emplear el uso de los saltos
condicionales para diseñar
el control de llenado de un
aljibe.
Controlar los cambios de las
luces de dos semáforos
convencionales empleando
retardos [5] .
Aprender el modo de
funcionamiento
de
la
pantalla con 4 líneas de
datos.
Almacenamiento de datos
en la memoria EEPROM de
datos.
Implementación
del
protocolo
RS-232
para
comunicación con la PC.
Comprender
el
funcionamiento del bus I2C y
utilizarlo para desarrollar un
termómetro.
Obtener
el
valor
de
temperatura
del
sensorDS1624 por bus I2C y
enviarlo por RS-232 a la PC
[4].
Implementar una cerradura
controlada por un teclado
matricial [1].
Realizar un reloj digital con
el circuito DS1307 [3].
Obtener el valor de
temperatura del
sensorDS1624 por bus I2C y
13
Manejo de interrupciones.
14
Manejo del perro guardián.
15
Puertos RA y RB libres para utilizarse.
mostrar la temperatura en
display de 7 segmentos [1].
Aprender el uso y
configuración de las
interrupciones del PIC16F84
[3].
Ejercitar el uso del perro
guardián del PIC16F84 [6].
Permitir al usuario utilizar el
PIC16F84 de la tarjeta
entrenadora para cualquier
aplicación.
Para indicar al usuario el modo de funcionamiento seleccionado se incluyeron dos display de
7 segmentos y una GAL22V10D programada con la lógica combinacional necesaria para indicar el
número de la función que está realizando la tarjeta.
Una vez programado el microcontrolador con el código adecuado para realizar una práctica,
solo se debe seleccionar el número de la práctica y se podrá probar su funcionamiento.
Automáticamente se configuraran los periféricos de entrada y salida requeridas para la práctica que
fue elegida. La figura 6 muestra la tarjeta entrenadora diseñada.
Figura 6. Tarjeta entrenadora.
7
5. Resultados.
Se diseñó, implementó y probó una tarjeta entrenadora para el microcontrolador PIC16F84
que cuenta con todos los periféricos de entrada y salida necesarios para la realización de 15
prácticas con manejo de funciones, periféricos y protocolos de comunicación con el
microcontrolador.
Esta tarjeta es una herramienta muy útil para estudiantes que se instruyen sobre el uso de
los microcontroladores, permitiendo probar y desarrollar sus habilidades en la configuración y
programación del microcontrolador al contar con los periféricos necesarios para su realización en
esta tarjeta.
El diseño incluye los circuitos necesarios que permiten cargar los códigos de los programas a
ejercitar sin necesidad de desmontar el microcontrolador de la tarjeta.
6. Referencias.
1.
Palacios E. Remiro F., "Microcontrolador PIC16F84. Desarrollo de Proyectos", Ed. RAMA, 3ra edición, 2009.
2. Mandado E., "Microcontroladores PIC: sistema integrado para el autoaprendizaje", Ed.
Marcombo, 2007.
3. Lee S., David W. S., "PIC in Practice. A Project -based Approach", Ed. Newnes, 2006.
4. Ibrahim D.,"Microcontroller-based Temperature Monitoring and Control",Ed. Newnes 2002.
5. Gaspar A., Gámez J.,"Problemas resueltos para microcontroladores 8051 y PIC16F84",
Servicio de Publicaciones -Universidad de Jaén, 2009.
6. Tooley M., Tooley M.,"Electronic Circuits: Fundamentals and Applications",Ed. Routledge,
2006.
7. Ibrahim D.,"PIC BASIC: Programming and Projects: Programming and Projects",Ed.
Elsevier, 2001.
8. "PIC16F84 Datasheet", 2001 Microchip Technology Inc, www.microchip.com.
8
Descargar