"¿De qué serviría hablar de aquello? Nadie me creería". Napoleón Bonaparte.

jueves, 18 de abril de 2013

Nociones básicas de Microcontroladores: Sistema mínimo para el PIC16F84A (Parte 1 de 2).

A lo largo del aprendizaje de la electrónica, hemos escuchado alguna vez la palabra microcontrolador. Éstos pequeños circuitos integrados están incorporados en módems, no break, termómetros digitales, etc., y han venido a revolucionar el mundo de la electrónica. Ya que a ellos podemos conectar sensores de temperatura, presión, relevadores, actuadores, motores, etc.

Existen varios fabricantes de microcontroladores: Atmel, Texas Instruments, Freescale, Microchip, por citar algunos de ellos. Éste último es fabricante de los famosos PIC.

En esta entrada, he decidido utilizar el PIC16F84A de Microchip, por su facilidad para conseguirlo en las tiendas de componentes electrónicos, además por su precio, considero está al alcance de nuestro bolsillo.

Bien, el PIC16F84A posee las siguientes características:

 Parámetro Descripción
Tipo de Memoria de ProgramaFlash
Memoria de Programa (KB)1.75
Velocidad del CPU (MIPS)5
Memoria RAM (Bytes)68
Memoria EEPROM (Bytes)64
Temporizadores1 de 8-bit
Rango de Temperatura (°C)-40 a 85
Voltaje de Operación (V)2 a 6(típico 5V)
Número de pines18

El diagrama de bloques interno del PIC, se muestra a continuación (traducido al español):

Clic sobre la imagen para expandir.

Como se observa en el diagrama, el PIC16F84A contiene un pequeño microprocesador:

Clic en la imagen para expandir.

Ya que un PIC está considerado como una pequeña computadora con puertos de E/S, memoria RAM, ROM, etc. Básicamente la diferencia entre un microcontrolador y un microprocesador es:

Microcontrolador: Se utiliza para construir sistemas electrónicos que funcionan en "tiempo real".
Microprocesador: Se utiliza para procesar una enorme cantidad de datos.

Para utilizar por primera vez el PIC16F84A, se construirá un circuito denominado "sistema mínimo", con el cual se implementará un primer programa desarrollado en el compilador C, de la empresa CCS. A continuación se muestra el diagrama del sistema mínimo a implementar y la lista de materiales del mismo:

- 1 C.I. PIC16F84A.
- 1 Diodo 1N4148.
- 2 Capacitores cerámicos de 22 pF.
- 1 resistor de 10KOhms 1/2 W.
- 1 resistor de 220 Ohms 1/2 W.
- 1 Cristal de cuarzo de 4MHz.
- 1 LED color rojo (o de cualquier otro color).
- 1 Push-Button Normalmente Abierto (NA).
- 5 pines tipo espadines
- Cable
Clic en la imagen para expandir.

La mayoría de las instrucciones del microcontrolador se ejecutan en un ciclo de máquina, este ciclo está dado por el cristal de cuarzo de 4 MHz, y un divisor de frecuencia entre 4 que posee el PIC, esto quiere decir que las instrucciones en el microcontrolador estarán dadas por la fórmula:


Es por eso que, si utilizamos un cristal de 4MHz, la frecuencia real de operación será de 1MHz, por lo que cada instrucción en lenguaje ensamblador (ASM), le demorará 1 microsegundo en ser ejecutada. Aunque utilizaremos lenguaje C, para programar el microcontrolador, también el compilador CCS, nos da la opción de mezclar C y ASM.

Nota: El PIC16F84A-04 trabaja con una frecuencia máxima de 4 MHz, el PIC16F84A-20 funciona con una frecuencia máxima de 20 MHz.

Los capacitores de 22 pF, se utilizan para dar estabilidad a la frecuencia del cristal de cuarzo.

El PIC posee un pin de reset, dicho pin "resetea" el programa que se está ejecutando en el microcontrolador, para ello se ha colocado un push-button normalmente abierto en este pin, con una resistencia de 10 KOhms, denonimada resistencia pull-up.

Por otra parte, en el circuito, se ha colocado una serie de pines denominados Puerto ICSP (In Circuit Serial Programming), éstos pines nos permitirán en circuitos posteriores, programar el PIC16F84A sin la necesidad de retirarlo de la tablilla de experimentación o circuito impreso. El diodo 1N4148, ayuda para que, al programar por los pines ICSP el microcontrolador, no se energice todo el circuito y dañemos nuestro programador (cuando se conectan pantallas LCD, relevadores, sensores, actuadores, etc.).

A continuación se muestra el circuito construido en una tablilla de experimentación o protoboard:

Clic en la imagen para expandir.

Ahora, después de construir el circuito, para programar el PIC, se utilizará un "quemador" o programador de PIC's. En México se puede adquirir en Mercado Libre, el MASTER-PROG, que se muestra a continuación.
Clic en la imagen para expandir.

En la segunda parte de esta entrada del blog, se explicarán los pasos para programar el PIC, y se cargará en el circuito de prueba un programa de ejemplo, usando el compilador C CCS y el MASTER-PROG.

¡Muchas gracias por leer esta nueva entrada!

ALF

4 comentarios:

Anónimo dijo...

¿Se puede programar un pic de 20 pines en el master-prog?

ALF dijo...

Que tal, gracias por visitar éste blog, me gustaría que mencionaras una matrícula de un PIC de 20 pines y el tipo de encapsulado, para responder a tu pregunta. Un saludo cordial. Alf

Daniel Tamayo dijo...

Muchas gracias por la informacion, yo estuve un tiempo programando el 16f84a en asm. y siempre tuve la duda de como programarlo en c, gracias y excelente blog.

Anónimo dijo...

Buenas tardes, disculpa por la molestia, realizo la conexión igual que el diagrama, pero me aparece un error a la hora de leerlo con el master prog, dice de la siguiente manera: "Error en el voltaje vpp revisar las conexiones y reintentar", pero no es el pic por que lo conecto directo al master prog y si lo detecta, de antemano muchas gracias.

Resistencias o resistores (Conceptos básicos)

  H an pasado casi 4 años desde que publiqué la última entrada en este blog (diciembre 2014); cuando comencé con este blog en el 2011, lo h...