Los PIC son una familia de microcontroladores tipo RISC que son fabricados por la compañía Microchip Technology Inc. Y son derivados del PIC1650, que se desarrolló originalmente por la división de microelectrónica de General Instrument.
El nombre de PIC no es un acrónimo, en realidad, el nombre completo es PICmicro, pero se utiliza PIC como Peripheal Interface Controller (Controlador de Interfaz Periférico).
El PIC original fue diseñado para ser utilizado con la nueva CPU de 16 bits CP16000. El PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de entrada/salida al CPU.
El PIC utilizaba microcódigo simple que era almacenado en ROM para realizar tareas, se trata de un diseño RISC que ejecutaba una instrucción cada cuatro ciclos del oscilador.
En la actualidad existe una gran variedad de microcontroladores PIC, para este artículo, se tomará el PIC16F84 como ejemplo, siendo este un microcontrolador de los más utilizados y que funciona a 8 bits, pertenece a la gama media (según la clasificación dada a los microcontroladores por la misma empresa, Microchip).
Este microcontrolador cuenta con memoria tipo FLASH, lo que otorga al usuario una gran facilidad para el desarrollo de prototipos y poder utilizarlo varias veces, ya que no requiere ser borrado con luz ultravioleta como las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser borrado con anterioridad.
Este PIC es fabricado en tecnología CMOS, consume poca potencia y es completamente estático, lo que quiere decir que el reloj puede detenerse y los datos de memoria no se pierden.
Utiliza un encapsulado DIP (Dual In-Line Pin) de 18 pines. Su referencia completa es 16F84-04/P, para el dispositivo que utiliza un reloj de 4 MHz. Sin embargo, existen otros tipos de encapsulado que se pueden utilizar según el diseño y la aplicación que se desee realizar.
Puertos del PIC
Los puertos pueden considerarse como un puente entre el microcontrolador y el mundo exterior. Se trata de líneas digitales que trabajan entre cero y cinco voltios y se pueden configurar como entradas o salidas.
El PIC16F84 cuenta con dos puertos. El puerto A que tiene 5 líneas y el puerto B que tiene 8 líneas. Cada pin puede ser configurado como entrada o como salida independiente mediante la programación de un par de registros diseñados para este fin. Un 0 configura el pin del puerto correspondiente como salida, mientras que un 1 lo configura como entrada.
El puerto B cuenta con resistencias de pull-up internas conectadas a sus pines, que sirven para fijar el pin a un nivel de cinco voltios. El uso de este puerto puede ser habilitado o deshabilitado bajo control del programa.
Todas las resistencias de pull-up se conectan o desconectan a la vez, utilizando el bit llamado RBPU que se encuentra en el registro llamado OPTION. Cabe mencionar que la resistencia de pull-up es desconectada automáticamente en un pin cuando este se programa como salida.
El pin RB0/INT puede ser configurado por software para que funcione como externa, para esta configuración se utilizan bits de los registros INTCOIN y OPTION.
El pin RA4/TOCKI del puerto A se puede configurar como un pin de entrada/salida o como entrada del temporizador/contador. Si este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger) y puede reconocer señales aunque estén distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios).
Cuando se usa como salida digital, se comporta como un colector abierto, por lo que se debe poner una resistencia de pull-up. Como salida, la lógica funciona inversamente, un cero escrito al pin del puerto entrega en el pin un uno lógico. Aparte de que como salida no puede manejar cargas como fuente, sólo en modo sumidero.
Debido a que este dispositivo es de tecnología CMOS, todos los pines deben conectarse aunque sea a la fuente, ya que si se dejan sin conexión, puede dañarse el CI.
La máxima capacidad de corriente que tiene cada uno de los pines de los puertos en modo sumidero es de 25 mA y en modo fuente es de 20 mA.
La máxima capacidad de corriente total de los puertos es:
80 mA para el puerto A y 150 mA para el puerto B, en modo sumidero.
En modo fuente, se tienen 50 mA en el puerto A y 100 mA en el puerto B.
El consumo de corriente del microcontrolador para su funcionamiento depende del voltaje de operación, la frecuencia y las cargas que tengan sus pines. Cuando se tiene un reloj de 4 MHz, el consumo es de aproximadamente 2 mA.
OSCILADOR EXTERNO
Cualquier microcontrolador requiere un circuito externo que le indique la velocidad a la que debe trabajar. Tal circuito se conoce como oscilador o reloj y es muy importante para el correcto funcionamiento del sistema.
En el caso del PIC16F84 y de muchos otros, se pueden utilizar cuatro tipos de oscilador.
? RC – Oscilador con resistencia y condensador.
? XT – Cristal.
? HS – Cristal de alta velocidad.
? LP – Cristal para baja frecuencia y bajo consumo de potencia.
Aparte de armar el circuito del oscilador para el PIC, se debe establecer el tipo de oscilador al momento de programar, esto se hace mediante los llamados “fusibles de programación”.
Comúnmente se utiliza el oscilador de tipo cristal, para proyectos básicos. Su diagrama de conexión es como el de la figura 3.
RESET
Otro elemento imprescindible para el uso de un microcontrolador es el reset, para el cual existe un pin específico. Este reinicia el funcionamiento del sistema en caso de ser necesario, ya sea por fallas o por diseño.
El pin de reset en los PIC es nombrado MCLR (master clear).