Microcontrolador PIC16F84A-04/P

$220.00 Costo sin IVA

Microcontrolador con memoria de programa tipo FLASH.

Disponibilidad: 10 disponibles

SKU: PIC16F84A-04/P Categoría: Etiquetas: ,

El PIC16F84A es un microcontrolador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con luz ultravioleta como las versiones EPROM sino, permite reprogramarlo nuevamente sin ser borrado con anterioridad.

Pines y funciones:

El PIC16F84A es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estático, esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden.

Tiene un encapsulado DIP (Dual In-line Pin) de 18 pines, propio para usarlo en experimentación. La referencia completa es 16F84A-04/P, para el dispositivo que utiliza reloj de 4 MHz.

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.

Tiene dos puertos.

El puerto A con 5 líneas y el puerto B con 8 líneas. Cada pin se puede configurar como entrada o como salida independiente programando un par de registros diseñados para tal fin. En ese registro un “0” configura el pin del puerto correspondiente como salida y un “1” lo configura como entrada.

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 (posición de memoria RAM) llamado OPTION. La resistencia de pull-up es desconectada automáticamente en un pin si este se programa como salida. El pin RB0/INT se puede configurar por software para que funcione como interrupión externa, para configurarlo se utilizan unos bits de los registros INTCON y OPTION.

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 al aire 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.

El 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.

En el momento de programar o “quemar” el microcontrolador se debe especificar que tipo de oscilador se usa. Esto se hace a través de unos fusibles llamados “fusibles de configuración”.

Reset

En los microcontroladores se requiere un pin de reset para reiniciar el funcionamiento del sistema cuando sea necesario, ya sea por una falla que se presente o porque así se halla diseñado el sistema. El pin de reset en los PIC es llamado MCLR (master clear).

El PIC16F84A admite diferentes tipos de reset:

  • Al encendido (Power On Reset)
  • Pulso en el pin MCLR durante operación normal
  • Pulso en el pin MCLR durante el modo de bajo consumo (modo sleep)
  • El rebase del conteo del circuito de vigilancia (watchdog) durante operación normal
  • El rebase del conteo del circuito de vigilancia (watchdog) durante el modo de bajo consumo (sleep).

El reset al encendido se consigue gracias a dos temporizadores. El primero de ellos es el OST (Oscillator Start-Up Timer: Temporizador de encendido del oscilador), orientado a mantener el microcontrolador en reset hasta que el oscilador del cristal es estable.

El segundo es el PWRT (Power-Up Timer : Temporizador de encendido), que provee un retardo fijo de 72 ms (nominal) en el encendido únicamente, diseñado para mantener el dispositivo en reset mientras la fuente se estabiliza. Para utilizar estos temporizadores, sólo basta con conectar el pin MCLR a la fuente de alimentación, evitándose utilizar las tradicionales redes RC externas en el pin de reset.

Arquitectura

Este término se refiere a los bloques funcionales internos que conforman el microcontrolador y la forma en que están conectados, por ejemplo la memoria FLASH (de programa), la memoria RAM (de datos), los puertos, la lógica de control que permite que todo el conjunto funcione, etc.

En la la figura se pueden apreciar los diferentes bloques que lo componen y la forma en que se conectan. Se muestra la conexión de los puertos, las memorias de datos y de programa, los bloques especiales como el watchdog, los temporizadores de arranque, el oscilador, etc.

Todos los elementos se conectan entre sí por medio de buses. Un bus es un conjunto de líneas que transportan información entre dos o más módulos. Vale la pena destacar que el PIC16F84A tiene un bloque especial de memoria de datos de 64 bytes del tipo EEPROM, además de los dos bloques de memoria principales que son el de programa y el de datos o registros.

El PIC16F84A se basa en la arquitectura Harvard, en la cual el programa y los datos se pueden trabajar desde memorias separadas, lo que posibilita que las instrucciones y los datos posean longitudes diferentes. Esta misma estructura es la que permite la superposición de los ciclos de búsqueda y ejecución de las instrucciones, lo cual se ve reflejado en una mayor velocidad del microcontrolador.

Memoria de programa

Es una memoria de 1 Kbyte de longitud con palabras de 14 bits. Como es del tipo FLASH se puede programar y borrar eléctricamente, lo que facilita el desarrollo de los programas y la experimentación. En ella se graba, o almacena, el programa o códigos que el microcontrolador debe ejecutar. Dado que el PIC16F84A tiene un contador de programa de 13 bits, tiene una capacidad de direccionamiento de 8K x 14, pero solamente tiene implementado el primer 1K x 14 (0000h hasta 03FFh). Si se direccionan posiciones de memoria superiores a 3FFh se causará un solapamiento con el espacio del primer 1K.

Vector de reset. Cuando ocurre un reset al microcontrolador, el contador de programa se pone en ceros (000H). Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo.

Vector de interrupción. Cuando el microcontrolador recibe una señal de interrupción, el contador de programa apunta a la dirección 04H de la memoria de programa, por eso, allí se debe escribir toda la programación necesaria para atender dicha interrupción.

Registros (Memoria RAM)

El PIC16F84A puede direccionar 128 posiciones de memoria RAM, pero solo tiene implementados físicamente los primeros 80 (0-4F en hexadecimal). De estos los primeros 12 son registros que cumplen un propósito especial en el control del microcontrolador y los 68 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de la tarea que se está ejecutando.

Los registros están organizados como dos arreglos (páginas) de 128 posiciones de 8 bits cada una (128 x 8); todas las posiciones se pueden accesar directa o indirectamente (esta última a través del registro selector FSR). Para seleccionar que pagina de registros se trabaja en un momento determinado se utiliza el bit RP0 del registro STATUS.

Pila (Stack)

Estos registros no forman parte de ningún banco de memoria y no permiten el acceso por parte del usuario. Se usan para guardar el valor del contador de programa cuando se hace un llamado a una subrutina o cuando se atiende una interrupción; luego, cuando el micro regresa a seguir ejecutando su tarea normal, el contador de programa recupera su valor leyéndolo nuevamente desde la pila. El PIC16F84A tiene una pila de 8 niveles, esto significa que se pueden anidar 8 llamados a subrutina sin tener problemas.

Características especial:

Circuito de vigilancia (Watchdog Timer)

Su función es restablecer el programa cuando éste se ha perdido por fallas en la programación o por alguna razón externa. Es muy útil cuando se trabaja en ambientes con mucha interferencia o ruido electromagnético. Está conformado por un oscilador RC que se encuentra dentro del microcontrolador.

Este oscilador corre de manera independiente al oscilador principal. Cuando se habilita su funcionamiento, dicho circuito hace que el microcontrolador sufra un reset cada determinado tiempo (que se puede programar entre 18 ms y 2 segundos). Este reset lo puede evitar el usuario mediante una instrucción especial del microcontrolador (CLRWDT: borrar el conteo del watchdog), la cual se debe ejecutar antes de que termine el período nominal de dicho emporizador. De esta manera, si el programa se ha salido de su flujo normal, por algún ruido o interferencia externa, el sistema se reiniciará (cuando se acabe el tiempo programado y no se haya borrado el contador) y el programa puede restablecerse para continuar con su funcionamiento normal.

En las primeras prácticas no se utiliza el circuito de vigilancia para facilitar el trabajo; por eso, en el momento de programar el microcontrolador se debe seleccionar en los fusibles de configuración “watchdog timer OFF”. Más adelante veremos algunos ejemplos que ilustran su funcionamiento y la manera de utilizarlo.

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “Microcontrolador PIC16F84A-04/P”

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Shopping Cart
Escribenos por WhatsApp