Programación de microcontroladores PIC: Los conceptos básicos para cada diseñador
La línea PIC® de microcontroladores de Microchip Technology es popular entre los ingenieros de diseño por varias razones, incluyendo precio, rendimiento y amplio soporte de diseño. También hay una amplia selección de microcontroladores PIC (MCUs) que han sido cuidadosamente diseñados para satisfacer los requisitos de diversas aplicaciones. Empezar a trabajar con los PIC es similar a comenzar con prácticamente cualquier MCU: A un nivel más básico, el diseñador debe conocer – en detalle – la lógica que será implementada en el hardware del MCU. Muchos diseños enfrentan problemas porque el diseñador no ha pensado completamente en la lógica. Además de construir una base sólida de lógica de circuitos, un conocimiento detallado de la aplicación proporciona respuestas a preguntas críticas como el número de entradas y salidas requeridas; nivel de rendimiento; y los presupuestos de costo y tiempo de desarrollo que deben cumplirse. También hay preguntas importantes más allá del diseño electrónico directo que debe gestionar el MCU: ¿Dónde se utilizará el dispositivo a nivel del sistema (condiciones ambientales y ubicación geográfica)? ¿A qué estándares de la industria debe ajustarse y con qué otros productos debe interoperar? ¿Qué regulaciones de la industria y del gobierno con respecto a requisitos de salud, seguridad y medio ambiente deben cumplirse? Figura 1 muestra un diagrama en bloques del PIC16F84 de Microchip Technology con I/O y algunos periféricos. Introducido a principios de la década de 1990, realiza funciones básicas. Los MCUs de 8 bits actuales suelen integrar múltiples periféricos, lo que genera mayor complejidad de software para el desarrollador de aplicaciones.

Figura 1. El PIC16F84 se encuentra entre los primeros MCU en incorporar un algoritmo de programación serial y memoria EEPROM. Source: Microchip Technology Inc.
Aspectos esenciales del hardware del microcontrolador PIC
Para programar un microcontrolador PIC, es necesario conocer los componentes básicos específicos del dispositivo, como los 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 facilita y acelera el proceso de iniciación. La arquitectura de memoria subyacente de muchos PIC utiliza 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. Contar con espacios de memoria separados, que pueden ser memoria Flash integrada, ROM, RAM o un chip externo, generalmente resulta en una ejecución más rápida del programa. (El término “arquitectura Harvard” se usa con frecuencia de manera flexible. Muchos MCUs que se denominan “Harvard” han sido modificados mezclando las arquitecturas de memoria Harvard y von Neumann). Antes de avanzar más, debemos ser bastante específicos sobre el MCU PIC que se elegirá para el diseño. Un PIC de 8 bits es una buena elección porque generalmente tienen un costo menor que los MCUs de 16 y 32 bits, cuentan con un conjunto adecuado de periféricos (como los convertidores A/D) y ofrecen un buen rendimiento. Microchip ofrece varias familias de PIC de 8 bits. Los PIC10F y PIC12F son los menos costosos, pero proporcionan menos memoria, menos pines y menos periféricos. Elegir el chip PIC de menor costo conlleva el riesgo de descubrir, a mitad del diseño, que el MCU no satisface completamente las necesidades de la aplicación. La serie PIC18F se encuentra en el otro extremo del espectro de rendimiento de los productos de 8 bits de Microchip. Es más sofisticada, ofrece periféricos especializados integrados y también es la familia más costosa. Para un primer diseño, la serie PIC18F probablemente sería excesiva.
Diseñe con microcontroladores 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 en lenguaje ensamblador de MCU, comúnmente conocido por los ingenieros de diseño como archivos HEX
- Un IPE (Entorno de Programación Integrado) que se utiliza finalmente para transferir el archivo HEX al PIC después de ajustar el programa
- Un depurador/programador en circuito

Figura 2. El MPLAB X IDE abarca una amplia gama de funciones auxiliares de programación de MCU. Fuente: Microchip Technology Inc.
Para los usuarios nuevos de 8-bit PIC, Microchip ha simplificado aún más el proceso de inicio al lanzar 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 de aplicación para los MCUs 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 del oscilador, el temporizador watchdog, el modo de programación y la protección de código. Estos bits deben configurarse correctamente para que el código se ejecute con éxito. Una vez que los bits de configuración han sido establecidos, el resto del proceso de creación del programa depende de la aplicación. Y una vez completado el código, los siguientes pasos implican trasladar la entidad basada en lógica al mundo real de bits. El Entorno de Programación Integrado (IPE) entra en juego para una variedad de funciones, incluyendo transferir el programa creado en su PC o estación de trabajo al 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á fuera del alcance de este artículo. Merece mención el PICkit™ 3 In-Circuit Debugger/Programmer, ya que 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 la aplicación se transfiere al MCU. PICkit 3 es controlado por una PC que ejecuta el software MPLABX IDE y es una parte integral del conjunto de herramientas. La leyenda en Figura 3 muestra las conexiones principales entre el MCU que se está programando o depurando y la PC que ejecuta el MPLABX IDE de Microchip Technology.

Figura 3. El PICkit 3 de Microchip proporciona el hardware para depurar y/o programar una amplia gama de microcontroladores. Fuente: Microchip Technology.
Ventajas de los microcontroladores PIC
Comenzar con un PIC MCU implica una comprensión exhaustiva de la aplicación, la arquitectura básica del hardware del PIC que se va a utilizar y la cadena de herramientas de software. Microchip ha hecho que el proceso de diseño sea muy accesible para ingenieros familiarizados con otros MCUs y también para diseñadores novatos. Las herramientas de software gratuitas hacen que el costo de configuración sea razonable, y hay una gran cantidad de código y consejos disponibles 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 empezar y la persistencia para llevar el proyecto hasta su finalización.
Etiquetas de artículo
