Los microcontroladores PIC son pequeños chips que controlan muchos circuitos en productos simples y avanzados. Este artículo explica su historia, arquitectura Harvard, puertos y pinout, familias de 8, 16 y 32 bits, tipos de memoria, temporizadores, interrupciones, modos de alimentación y enlaces de comunicación. También cubre en detalle herramientas, diseño de PCB, elección de dispositivos y errores.

Microcontroladores PIC Básicos
Los microcontroladores PIC son pequeños chips informáticos que pueden controlar muchos tipos de circuitos electrónicos. Empezaron como simples chips auxiliares fabricados por General Instrument. Más tarde, Microchip Technology asumió el diseño y convirtió el PIC en una familia completa de microcontroladores. PIC significa los microcontroladores de 8, 16 y 32 bits de Microchip usados en muchos productos electrónicos.
Los primeros dispositivos PIC aparecieron en los años 70 como chips periféricos programables. A principios de los años 90, se relanzaron como microcontroladores independientes que podían almacenar programas y controlar sistemas completos por sí solos. Los microcontroladores PIC modernos se centran en una programación sencilla, periféricos integrados útiles y bajo coste, lo que los convierte en una opción para muchos diseños embebidos
Arquitectura Harvard dentro de microcontroladores PIC

Los microcontroladores PIC utilizan una arquitectura Harvard, lo que significa que las instrucciones y datos del programa se almacenan en áreas de memoria separadas y viajan por diferentes rutas internas. Por ello, la CPU puede obtener la siguiente instrucción mientras lee o escribe datos. Esta acción paralela ayuda a que el PIC funcione de forma más fluida y facilita su control de temporización que en muchos diseños de bus único.
En muchas familias PIC, la memoria de instrucciones es más amplia que la memoria de datos, como palabras de instrucciones de 14 bits con datos de 8 bits. Este ancho extra permite que cada instrucción contenga información útil como números y direcciones directamente. Como resultado, los programas pueden ser más cortos, ejecutarse más rápido y aún así estar en hardware que se mantiene simple en su interior.
Puertos y pinado de los microcontroladores PIC

Los pines del microcontrolador PIC están dispuestos alrededor del paquete para agrupar funciones relacionadas, facilitando la conexión de hardware externo. Los pines de alimentación suministran voltaje de funcionamiento, mientras que los pines del oscilador gestionan la entrada de reloj para el tiempo. Varios puertos (RA, RB, RC, RD y RE) proporcionan E/S digital y soportan roles alternativos como interrupciones, entradas analógicas, funciones de captura/comparación e interfaces de comunicación. Muchos pines están multiplexados, lo que permite que características como UART, SPI e I²C compartan las mismas líneas físicas dependiendo de la configuración. Los canales analógicos dedicados soportan operaciones ADC, y pines específicos gestionan el reinicio, señales de referencia y funciones especiales de control. La flexibilidad de cada pin ayuda al dispositivo a adaptarse a una amplia gama de aplicaciones, desde tareas de control simples hasta diseños avanzados embebidos.
Familias de microcontroladores PIC de 8 a 32 bits

Los microcontroladores PIC se agrupan en varias familias, por lo que es más fácil adaptar el chip a la velocidad, memoria y características necesarias. La principal diferencia entre estas familias es cuántos bits manejan a la vez y cuánto hardware incorporan para diferentes tareas de control.
• Familias de 8 bits (PIC10, PIC12, PIC16, PIC18)
Estos microcontroladores PIC funcionan con datos de 8 bits. Encajan en paquetes muy pequeños y a menudo se eligen para tareas de control simples y proyectos de bajo coste.
• Familias de 16 bits (PIC24 y dsPIC33)
Estos dispositivos gestionan datos de 16 bits, tienen más memoria y utilizan registros más amplios. Pueden procesar operaciones más complejas e incluyen funciones de control digital de señales para una mayor velocidad matemática y tiempo.
• Familia de 32 bits (PIC32)
Estos microcontroladores PIC utilizan un núcleo MIPS de 32 bits, lo que permite un mayor rendimiento. Son compatibles con periféricos más avanzados y funciones de comunicación para trabajos embebidos exigentes.
Memoria dentro de microcontroladores PIC

Memoria de programa (Flash)
La memoria de programa es donde se almacena el código principal del PIC. Los dispositivos PIC más antiguos usaban EPROM o memoria programable de un solo uso, pero la mayoría de los microcontroladores PIC más recientes usan memoria flash. La memoria flash puede borrarse y reescribirse muchas veces, por lo que el programa puede actualizarse sin tener que reemplazar el chip.
Memoria de datos (RAM)
La memoria de datos es RAM, y solo almacena información mientras el PIC está alimentado. Almacena variables, valores temporales y la pila durante la ejecución del programa. Muchos microcontroladores PIC de 8 bits dividen la RAM en bancos o páginas, mientras que los dispositivos PIC de 16 y 32 bits suelen proporcionar un área de RAM mayor y más continua.
Memoria de datos no volátil (EEPROM o data flash)
Este tipo de memoria conserva los datos incluso cuando la alimentación está apagada. Los microcontroladores PIC utilizan EEPROM o data flash para almacenar valores de calibración, información de configuración y otros ajustes que deben mantenerse igual tras los reinicios y los ciclos de encendido.
Temporizadores, interrupciones y control de energía en microcontroladores PIC

Los microcontroladores PIC usan temporizadores para seguir eventos y, cuando un temporizador se desborda, se activa una bandera de interrupción para solicitar la atención de la CPU. La CPU pausa su trabajo actual, ejecuta la Rutina de Servicio de Interrupciones y luego reanuda la ejecución normal. Las funciones de control de energía permiten que el dispositivo entre en modo de suspensión de bajo consumo mientras los temporizadores o el temporizador watchdog continúan funcionando en segundo plano. Un evento de activación, como un reinicio o interrupción de watchdog, devuelve la CPU al modo activo. Esta interacción entre temporizadores, interrupciones y modos de energía ayuda a reducir el consumo de energía manteniendo una sincronización precisa y respuestas fiables del sistema.
Interfaces de comunicación en microcontroladores PIC

Los microcontroladores PIC se conectan a una amplia gama de dispositivos externos a través de múltiples interfaces de comunicación. Los sensores analógicos, como la entrada de temperatura o luz, pasan sus señales a través del ADC, mientras que los sensores digitales comparten datos a través del bus I²C. Actuadores como motores, LEDs y relés reciben señales de control a través de salidas GPIO o PWM. La comunicación con un PC se realiza a través de USB o UART, permitiendo el intercambio o depuración de datos. Otros microcontroladores y periféricos se conectan usando SPI, URT o I²C, permitiendo la operación coordinada en sistemas embebidos de mayor tamaño. Estas conexiones permiten un diseño flexible del sistema y permiten al microcontrolador interactuar eficientemente con sensores, elementos de control y procesadores externos.
Herramientas de desarrollo para microcontroladores PIC
MPLAB X IDE
MPLAB X es un programa gratuito utilizado para crear y probar código para microcontroladores PIC. Funciona en Windows, macOS y Linux. En una ventana, te permite crear proyectos, escribir código, construir el programa y depurar cómo se ejecuta en el PIC.
Compiladores MPLAB XC
Los compiladores MPLAB XC convierten código C o C++ en código máquina para microcontroladores PIC. Están diseñados para adaptarse bien a los dispositivos PIC, por lo que el código se ejecuta correctamente y de forma eficiente. Hay versiones gratuitas y de pago con funciones extra.
Depuración y Hardware de Programación
Herramientas como PICkit, MPLAB ICD y MPLAB REAL ICE se utilizan para cargar programas en microcontroladores PIC y depurarlos en la placa de circuito. Te permiten programar el chip, pausar el código, repasarlo línea por línea y observar cómo cambian los valores mientras el PIC está en marcha.
Aplicaciones de los microcontroladores PIC
Electrónica de consumo con microcontroladores PIC
Los microcontroladores PIC suelen estar integrados en productos electrónicos cotidianos. Pueden controlar pequeños electrodomésticos, mandos a distancia, iluminación LED, cargadores de baterías y juguetes manejando lógica sencilla, sincronización y control de encendido/apagado dentro del dispositivo.
Control automovilístico e industrial con PIC
En coches y máquinas industriales, los microcontroladores PIC ayudan a gestionar motores, fuentes de alimentación, sensores y sistemas HVAC. Leen señales, toman decisiones y ajustan las salidas para que el sistema funcione de forma segura y fiable.
PIC en dispositivos IoT y edge
Los microcontroladores PIC se utilizan en muchos nodos IoT y edge cuando se requiere bajo consumo. Utilizan sensores alimentados por batería, pasarelas sencillas y monitores ambientales que recopilan datos básicos y los envían a otros sistemas.
Herramientas médicas y de medición usando PIC
Algunos instrumentos médicos y de laboratorio también dependen de microcontroladores PIC. Pueden controlar herramientas de diagnóstico portátiles, bombas y pequeños dispositivos de medición leyendo datos de sensores y gestionando rutinas de control sencillas.
Elección de un microcontrolador PIC
• Elegir ancho y velocidad de bit - Utilizar PIC10/12/16/18 de 8 bits para un control simple y de bajo coste. Elige PIC24/dsPIC33 de 16 bits para más memoria y matemáticas. Pasar a PIC32 de 32 bits para código más grande y procesamiento más pesado.
• Comprobar memoria y periféricos - Estimar el tamaño necesario del programa y la RAM y luego añadir un margen. Haz una lista de los canales ADC requeridos, UARTs, puertos SPI/I²C, temporizadores, salidas PWM y cualquier extra como CAN, USB o crypto, y emparejalos con un PIC que los tenga.
• Confirmar alimentación y paquete - Revisar la corriente activa y de reposo para diseños alimentados por batería. Elige un tamaño de paquete y un número de pines que se adapten a tu PCB. Asegúrate de que el PIC cumple con la temperatura y la fiabilidad adecuadas.
Errores comunes con microcontroladores PIC
| Consejo | ¿Qué hacer y por qué? |
|---|---|
| Inicializar la configuración al inicio | Configura todos los pines de E/S, desactiva los periféricos no usados y pon el reloj y el watchdog al inicio de main() para evitar comportamientos aleatorios. |
| Mantén las interrupciones simples | Haz que las rutinas de interrupción sean cortas, evita trabajos pesados dentro de ellas y protege los datos compartidos para que los valores no cambien de forma insegura. |
| Reutilizar ejemplos probados de PIC | Utiliza librerías de Microchip, ejemplos de código y notas de aplicaciones para UART, SPI, ADC y otros bloques para seguir configuraciones correctas de registros. |
| Permitir actualizaciones dentro del sistema | Planifica hardware y código para que el PIC pueda reprogramarse mediante un bootloader o enlace de actualización en lugar de cambiar el chip. |
| Revisa la potencia y el tiempo con antelación | Mide la corriente y el tiempo real en la placa, especialmente para diseños de bajo consumo o de ajuste, en lugar de fiarte solo de las estimaciones. |
Conclusión
Los microcontroladores PIC reúnen bloques de hardware simples, rutas separadas para programas y datos, puertos flexibles, varios tipos de memoria y numerosos temporizadores e interfaces. Con las herramientas adecuadas y la disposición de la PCB, y ajustando correctamente los bits, modos de alimentación e interrupciones, un diseño basado en PIC puede mantenerse claro, fiable y más fácil de mantener con el tiempo.
Preguntas frecuentes [FAQ]
¿Qué son los bits de configuración en un microcontrolador PIC?
Los bits de configuración son configuraciones no volátiles que definen cómo se inicia y ejecuta el PIC, como la fuente del reloj, el temporizador watchdog, el reinicio de brown-out y la protección del código.
¿Cómo puedo actualizar el firmware PIC sin un programador de hardware cada vez?
Utiliza un bootloader que reciba el nuevo firmware a través de UART, USB, CAN u otra interfaz y lo escriba en la memoria flash del PIC.
¿Qué debería comprobar si mi PIC no se ejecuta después de programar?
Comprueba la alimentación y la tierra, reinicia el nivel MCLR y la fuente del reloj, luego verifica los bits de configuración y confirma que el código llega.
¿Cuándo debería usar un dsPIC en lugar de un PIC16 o PIC18?
Utiliza un dsPIC cuando necesites tareas rápidas de matemáticas y procesamiento de señal, como control motor, conversión digital de potencia o filtrado.
¿Cómo puedo proteger el firmware PIC para que no se copie?
Activa la protección de código y los bits de protección de memoria para que herramientas externas no puedan leer ni clonar el programa y los datos almacenados.
¿Cómo puedo reducir el consumo de energía en un diseño basado en PIC?
Reducir la velocidad de reloj, desactivar periféricos no utilizados, usar modos de suspensión o inactividad, y minimizar la actividad innecesaria de los pines y las corrientes de carga.