Cuando se trata de comprar dispositivos electrónicos, tengo unos hábitos francamente espantosos. Si tengo que elegir entre un PC portátil nuevo o cambiar mi Tablet actual por un iPad Pro, acabaré comprando ambas cosas y resignándome al sermón enorme que me espera en casa cuando mi prometida se entere.
Afortunadamente, tengo mejor criterio a la hora de elegir entre microcontroladores de 8 bits y de 32 bits para mis diseños de hardware. Sus costes son bastante similares, pero uno de ellos es más potente que el otro. Sin embargo, para tomar la decisión adecuada es importante entender las diferencias fundamentales entre los MCU de 8 bits vs. los de 32 bits en el diseño de PCB.
En términos estrictos, un microcontrolador de 8 bits procesa 8 bits de datos en cualquier momento dado. La cantidad de bits utilizados por un MCU (lo que se denomina "profundidad de bits" o "ancho de datos") indica el tamaño de los registros (8 bits por registro), la cantidad de direcciones de memoria (solo 2^8 = 256 direcciones) y los números más grandes que pueden procesar (de nuevo, 2^8 = 256 números enteros, o los enteros desde el 0 al 255). Un microcontrolador de 8 bits tiene una cantidad limitada de direcciones, pero algunos microcontroladores emplean paginación, donde los contenidos de un registro de página determinan qué banco de memoria integrado utilizar.
Un microcontrolador de 32 bits puede manejar, en teoría, números hasta una magnitud de 2^32. Tienen unidades aritméticas lógicas, registros y anchos de bus de 32 bits. En general, esto implica que un MCU de 32 bits puede manejar el cuádruple de datos, lo que técnicamente lo vuelve más eficiente a nivel de manejo de datos. Sin embargo, existen otras diferencias entre los microcontroladores de 8 bits y de 32 bits más allá de las operaciones aritméticas.
Una de las limitaciones más evidentes es, precisamente, la cantidad máxima de operaciones aritméticas. Un microcontrolador de 8 bits normalmente solo permitiría operaciones aritméticas cuyos números de salida estuviesen entre 0 y 255 (o entre -127 y 128), si bien es posible compartir un número mayor entre dos hilos (o "thread"). Esto introduce un poco de complejidad en la programación, puesto que el procesamiento de hilos (o "threading”) no ocurre automáticamente a nivel de hardware.
En general, el uso de un microcontrolador con un mayor ancho de datos permite hacer cómputos con números mayores. Un microcontrolador de 32 bits puede manejar números sin signo desde 0 hasta 4.294.967.295 (¡dejaré que los lectores calculen el rango para números con signo!). Si usas un lenguaje de programación de alto nivel, como C, o un IDE patentado (por ejemplo, AtmelStudio), deberías tener acceso a una librería que sea compatible con números mayores o con el uso de la notación científica.
Aunque podría parecer que un microcontrolador de 32 bits siempre será físicamente más grande que un microcontrolador de 8 bits, esto no siempre es cierto. Algunos microcontroladores de 8 bits, 16 bits y 32 bits tienen el mismo factor de forma (p. ej., Microchip ofrece una serie de microcontroladores con diferentes longitudes de bits que vienen en el mismo encapsulado TQFP-64). Los microcontroladores de 8 bits vienen en encapsulados DIP, como los que se ven en las populares placas Arduino.Dos encapsulados comunes para microcontroladores de 8 bits (izquierda) y de 32 bits (derecha)
A nivel de software, los tipos de datos que use en su código también determinarán qué tipo de microcontrolador debe utilizar. Por ejemplo, un número entero sin signo declarado en un microcontrolador de 8 bits solamente consumirá 1 byte. La misma variable en un microcontrolador de 32 bits consumirá 4 bytes de datos. Y tal vez pienses: "Un momento, si un MCU de 32 bits tiene 16 millones de veces más direcciones, ¿qué importa si usa 4 bytes?" La cantidad máxima de direcciones únicas no dice nada acerca de la cantidad real de memoria de la que dispone un microcontrolador. La memoria integrada suele estar en el orden de los KB, así que la cantidad de datos requerida por su código sí que importa.
Decidirse entre un microcontrolador de 8 bits vs. uno de 32 bits conlleva el análisis de factores más allá del ancho de datos. Evaluar las principales diferencias entre los microcontroladores de 8 bits y de 32 bits te ayudará a tomar la mejor decisión para el diseño de tu PCB.
Una de las principales ventajas de un microcontrolador de 32 bits sobre uno de 8 bits es su superior velocidad de procesamiento. Un microcontrolador de 8 bits típico suele operar a 8 MHz, mientras que un microcontrolador de 32 bits opera a cientos de MHz. Es posible que no notes la diferencia en la velocidad de procesamiento de datos integrados si estás utilizando el microcontrolador para activar un relé mecánico; sin embargo, se vuelve bastante más evidente cuando se ejecutan aplicaciones que requieren un alto volumen de procesamiento de datos. Por ejemplo, un controlador de acceso a puertas que realice miles de transacciones diarias requiere de un procesador con un microcontrolador de 32 bits.
Los microcontroladores de 8 bits son baratos y fáciles de utilizar. De hecho, siguen siendo muy populares en muchas aplicaciones desde hace cuatro décadas. Pero si estás trabajando en un producto que requiere de mucha Memoria de Acceso Aleatorio (RAM), es posible que tengas que optar por uno de 32 bits en vez de uno de 8 bits. Los microcontroladores de 32 bits suelen tener hasta 8 veces más RAM que los de 8 bits. Si necesitas un búfer muy grande para almacenar datos de sonido, un microcontrolador de 32 pines es la mejor opción.
Si la velocidad es importante para su diseño, utiliza un microcontrolador de 32 bits.
Los fundamentos del diseño de sistemas integrados conllevan la creación de una lista de los periféricos necesarios según los requisitos del proyecto. Si necesita Ethernet, Universal Serial Bus (USB), múltiples dispositivos Transmisor-Receptor Asíncrono Universal (o UARTS) y un bus de Red de Área del Controlador (BUS), entonces un microcontrolador de 8 bits resultaría insuficiente. Es posible que deba considerar el agregar chips periféricos, aunque pueden resultar más costosos que un único microcontrolador de 32 bits.
En general, los microcontroladores de 32 bits tienen muchísimas más funcionalidades que los de 8 bits. Con unas velocidades de procesamiento superiores, un microcontrolador de 32 bits puede manejar múltiples periféricos eficientemente. Sin embargo, hay que tener en cuenta que los microcontroladores de 32 bits consumen más potencia, especialmente cuando todos los sistemas integrados y periféricos están activados.
Sería justo decir que una PCB con un microcontrolador de 32 bits, que suele tener más de 100 pines, será más compleja que una que use un microcontrolador de 8 bits, que no suelen tener más de 30. En términos del montaje, soldar un encapsulado SOIC definitivamente es más fácil que soldar un Encapsulado Cuadrado Plano (en inglés, "Quad Flat Package" o QFP) o un encapsulado de Matriz de Malla de Bolas (en inglés, "Ball Grid Array" o BGA). También habrá menos problemas de calidad con mayores variedades de tonos en un encapsulado SOIC. Si un microcontrolador de 8 bits es suficiente para su proyecto de PCB, no optes por un microcontrolador de 32 pines. De lo contrario, usa los footprints predefinidos en el software de diseño de PCB para minimizar tu tiempo de diseño.
Cuando busques tutoriales de programación para microcontroladores, encontrarás que la mayoría de estos se enfoca en microcontroladores de 8 bits, como el 8051 o los Arduino, unas placas muy populares basadas en microcontroladores de 8 bits. Esto es debido a que es más fácil empezar a operar con un microcontrolador de 8 bits. Un microcontrolador de 32 bits tiene una arquitectura más compleja y requiere de más tiempo para familiarizarse con ellos. Si estás creando un simple contador de producción de código, no resulta rentable pedirle al ingeniero de firmware que se pase una semana entera explorando microcontroladores cuando podría instalar el firmware entero simplemente usando un microcontrolador de 8 bits.
Los microcontroladores de 32 bits tienen una curva de aprendizaje más pronunciadas. Créditos: goodcat / Shutterstock.com
Existe una gran cantidad de aplicaciones para los microcontroladores de 32 bits, pero lo que realmente es importante es saber cuándo NO usar un microcontrolador de 32 bits. En general, cualquier aplicación que requiera de cómputos que impliquen números grandes y que deban ser calculados más rápidamente deberás usar un microcontrolador de 16 bits o de 32 bits. Algunos ejemplos de este tipo de operaciones serían: cálculo de FFT, procesamiento de imágenes, audio o video de alta calidad y aplicaciones de edge computing. Algunas tareas de gran consumo de memoria y de capacidad de procesamiento que implican el uso de aprendizaje automático o IA se implementan mejor con algo más potente, como un MCU ARM o un ordenador de placa única.
Si necesitas recopilar medidas o señales analógicas, un microcontrolador de 32 bits no es necesariamente superior a uno de 8 bits. La profundidad de bits requerida para un microcontrolador no es la misma que la profundidad de bits del convertidor digital analógico (ADC). Los microcontroladores disponibles a nivel comercial incluyen un ADC integrado con tasas de 8, 10, 12 o 16 bits.
Para aplicaciones móviles, un microcontrolador de 32 bits proporcionará una mucho mayor capacidad de cálculo pero a costa de un mayor consumo de energía. Es posible utilizar un microcontrolador de 32 bits para realizar cálculos importantes más rápidamente y poner la CPU en modo de reposo durante más tiempo. Sin embargo, esto no significa que un microcontrolador de 32 bits sea necesariamente más eficiente desde el punto de vista energético. Un microcontrolador de 8 bits generalmente tiene una mayor duración de la batería y tendrá un mejor equilibrio entre las funcionalidades periféricas que los dispositivos de 32 bits.
Para elegir el mejor microcontrolador para el diseño de tu PCB y a la vez minimizar el tiempo y los costes, es necesario evaluar cuidadosamente las principales ventajas y desventajas de un microcontrolador de 8 bits frente a uno de 32 bits. Al tener en cuenta los requisitos de diseño de PCB tales como la velocidad, la complejidad, los periféricos y la memoria flash, podrás minimizar la parálisis en la toma de decisiones y los posibles contratiempos a la hora de elegir el mejor microcontrolador para el diseño de tu PCB.
Con una herramienta profesional de diseño de PCB como el CircuitStudio® de Altium, podrá determinar los requisitos de diseño por adelantado y a la vez optimizar la curva de aprendizaje.