La línea de microcontroladores PIC® de Microchip Technology es popular entre los ingenieros de diseño por varias razones, entre ellas el precio, el rendimiento y el amplio soporte de diseño. También hay una amplia selección de microcontroladores PIC (MCU) que han sido cuidadosamente diseñados para adaptarse a los requisitos de diversas aplicaciones.
Comenzar a utilizar los PIC es similar a comenzar a utilizar prácticamente cualquier MCU: en el nivel más básico, el diseñador debe conocer, en detalle, la lógica que se implementará en el hardware del MCU. Muchos diseños encuentran problemas porque el diseñador no ha considerado completamente la lógica.
Además de construir una base sólida de lógica de circuito, un conocimiento detallado de la aplicación proporciona respuestas a preguntas críticas como el Número de entradas y salidas requeridas, el nivel de rendimiento y los presupuestos de costos y tiempos de desarrollo que se deben cumplir.
También hay preguntas importantes más allá del simple diseño electrónico que debe manejar la MCU: ¿Dónde se utilizará el dispositivo a nivel de sistema (condiciones ambientales y ubicación geográfica)? ¿A qué estándares industriales debe ajustarse y con qué otros productos debe interoperar? ¿Qué regulaciones industriales y gubernamentales en materia de salud, seguridad y medio ambiente deben cumplirse?
La Figura 1 muestra un diagrama de bloques del PIC16F84 de Microchip Technology con E/S y algunos periféricos. Introducido a principios de la década de 1990, realiza funciones básicas. Los MCU de 8 bits actuales generalmente integran múltiples periféricos, lo que crea más complejidad de software para el desarrollador de aplicaciones.

Figura 1. El PIC16F84 es uno de los primeros MCU que incorpora un algoritmo de programación en serie y memoria EEPROM. Fuente: Microchip Technology Inc.
Fundamentos del hardware del microcontrolador PIC
Para programar un microcontrolador PIC, es necesario conocer los componentes básicos del dispositivo específico, como registros de configuración, buses y tipos de memoria. Comprender el lenguaje de programación PIC es muy útil, si no esencial. Elegir el conjunto adecuado de herramientas de desarrollo de software también hace que la puesta en marcha sea más fácil y rápida.
La arquitectura de memoria subyacente de muchos PIC es la arquitectura Harvard, que se implementó ampliamente por primera vez en el MCU 8051 de Intel. Esta arquitectura tiene un espacio de memoria para almacenar comandos de programa y asigna otro espacio para datos. Tener espacios de memoria separados (que pueden ser memoria Flash en el chip, ROM, RAM o un chip externo) generalmente da como resultado una ejecución más rápida del programa. (El término "arquitectura de Harvard" se utiliza con frecuencia de manera imprecisa. Muchas MCU denominadas "Harvard" se han modificado mezclando las arquitecturas de memoria de Harvard y von Neumann.)
Antes de poder ir mucho más allá, tenemos que ser bastante específicos sobre el MCU PIC que se elegirá para el diseño. Un PIC de 8 bits es una buena opción porque generalmente tiene un costo menor que los MCU de 16 y 32 bits, tiene un conjunto adecuado de periféricos (como convertidores A/D) y ofrece un buen rendimiento.
Microchip ofrece varias familias de PIC de 8 bits. Los PIC10F y PIC12F son los menos costosos pero ofrecen menos memoria, menos pines y menos periféricos. Elegir el chip PIC de menor costo implica correr el riesgo de descubrir a mitad del diseño que el MCU no satisface completamente las necesidades de la aplicación. La serie PIC18F está en el otro extremo del espectro de rendimiento de los productos de 8 bits de Microchip. Es más sofisticado, ofrece periféricos en chip altamente especializados y también es la familia más cara. Para un primer diseño, la serie PIC18F probablemente sería exagerada.
Diseño con microcontroladores PIC
A un diseñador que recién comienza a trabajar con la arquitectura del microcontrolador PIC probablemente le convenga más un chip de la serie PIC16F, que existe desde hace más de una década y sigue siendo popular. En consecuencia, la familia tiene la biblioteca de códigos más grande disponible en Internet, lo que significa que gran parte del código básico ya ha sido escrito y se puede descargar fácilmente.
Este tesoro de recursos es invaluable. Hay, en particular, una gran cantidad de código y esquemas para PIC16F877, que ha sido utilizado en muchos proyectos "iniciales" por profesores en línea y en el aula, así como por una legión de diseñadores profesionales. Sin embargo, es un diseño de MCU antiguo y Microchip no lo recomienda para proyectos nuevos. Afortunadamente, casi todo el soporte de diseño del PIC16F877 todavía se puede utilizar con el PIC16F887, que tiene prácticamente las mismas opciones de diseño de pines y periféricos.
El PIC16F887 ejecuta el mismo código con, como máximo, modificaciones menores. También utiliza herramientas de desarrollo de software menos costosas.
El PIC16F887 cuenta con 256 bytes de memoria de datos EEPROM y un conjunto de periféricos que lo hacen adecuado para aplicaciones A/D en automotrices, industriales, de electrodomésticos o de consumo. Su hoja de datos se puede encontrar aquí.
Cómo programar un microcontrolador PIC
Para programar un microcontrolador PIC (o cualquier MCU), normalmente se requieren las siguientes herramientas de software:
- Un IDE (entorno de desarrollo integrado), que convierte la lógica simbólica escrita para la aplicación en comandos de programa.
- Un compilador, que convierte el programa al lenguaje ensamblador MCU, comúnmente conocido por los ingenieros de diseño como archivos HEX.
- Un IPE (entorno de programa integrado) que finalmente se utiliza para transferir archivos HEX al PIC después de algunos ajustes del programa.
- Un depurador/programador en circuito
Las herramientas de desarrollo de software de Microchip son muy valoradas por su rendimiento y facilidad de uso. El MPLAB®X IDE, los compiladores MPLAB®XC y el MPLAB® IPE de la empresa liberan a los diseñadores de la carga de comparar y comprar herramientas de terceros. Las herramientas básicas de Microchip se proporcionan de forma gratuita. Puede acceder a una descripción general de todas las herramientas de desarrollo de Microchip aquí.
La figura 2 muestra los productos de Microchip disponibles en cinco categorías del entorno de desarrollo integrado (IDE) MPLABX de la empresa.

Figura 2. El IDE MPLAB X cubre una amplia gama de funciones de programación de MCU auxiliares. Fuente: Microchip Technology Inc.
Para quienes utilizan por primera vez un PIC de 8 bits, Microchip ha hecho que sea aún más fácil comenzar con el lanzamiento de MPLAB® Xpress, un IDE basado en la nube que elimina el tedio de descargar, instalar, configurar y actualizar periódicamente las herramientas. MPLAB Xpress incluye MPLAB Code Configurator, que permite a los usuarios generar automáticamente código C de inicialización y aplicación para MCU PIC de 8 bits (y 16 bits) utilizando una interfaz gráfica y un mapa de pines.
Como con cualquier MCU, el primer paso es configurar los registros de configuración. Los bits programados en estos registros especifican el funcionamiento fundamental del dispositivo, como el modo oscilador, el temporizador de vigilancia, el modo de programación y la protección del código. Estos bits deben configurarse correctamente para que el código se ejecute exitosamente.
Una vez establecidos los bits de configuración, el resto del proceso de creación del programa depende de la aplicación. Y una vez que el código está completo, los siguientes pasos implican trasladar la entidad lógica al mundo real de bits.
El entorno de programación integrado (IPE) entra en juego para una variedad de funciones, incluida la transferencia del programa creado en su PC o estación de trabajo a la MCU. Como se mencionó anteriormente, los entornos de Microchip combinan estas funciones, pero tres conceptos importantes son la simulación, la depuración y la programación del PIC. Una descripción completa de las herramientas de software y cómo se utilizan está más allá del alcance de este artículo.
Sin embargo, vale la pena mencionar el depurador/programador en circuito PICkit™ 3, porque es hardware adicional y, por lo tanto, conceptualmente va un paso más allá de la configuración de software de las otras herramientas. Se utiliza después de que el programa de aplicación se transfiere a la MCU. PICkit 3 está controlado por una PC que ejecuta el software MPLABX IDE y es una parte integral del conjunto de herramientas.
La leyenda de la Figura 3 muestra las conexiones principales entre la MCU que se está programando o depurando y la PC que ejecuta el IDE MPLABX de Microchip Technology.

Figura 3. El PICkit 3 de Microchip proporciona el hardware para depurar y/o programar una amplia gama de MCU. Fuente: Microchip Technology
Ventajas del microcontrolador PIC
Comenzar a utilizar un MCU PIC implica una comprensión profunda de la aplicación, la arquitectura de hardware básica del PIC que se utilizará y la cadena de herramientas de software. Microchip ha hecho que el proceso de diseño real sea muy accesible para los ingenieros que están familiarizados con otras MCU y también para los verdaderos diseñadores novatos. Las herramientas de software libre hacen que el costo de instalación sea razonable y hay una gran cantidad de código y consejos en la web, tanto dentro del ecosistema de diseño de Microchip como en la web en general. Todo lo que se requiere del futuro diseñador de PIC es el deseo de comenzar y la persistencia para llevar el proyecto hasta su finalización.

