MCU de 8 bits vs. de 32 bits: cómo elegir el microcontrolador adecuado para el diseño de tu PCB

February 27, 2018
MCU de 8 bits vs. de 32 bits: cómo elegir el microcontrolador adecuado para el diseño de tu PCB

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 comprender las diferencias fundamentales entre los MCU de 8 bits vs. los de 32 bits.

Electronics connected throughout a home

MCU de 8 bits vs. de 32 bits: conceptos básicos para microcontroladores

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.

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.

El factor de forma en microcontroladores de 8, 16 y 32 bits

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 tarjetas Arduino.Two common packages for 8-bit vs. 32-bit microcontrollers.Dos encapsulados comunes para microcontroladores de 8 bits (izquierda) y de 32 bits (derecha)

Software integrado y uso de memoria

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 piense: "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 le ayudará a tomar la mejor decisión para el diseño.

Velocidad y memoria

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 note la diferencia en la velocidad de procesamiento de datos integrados si está usando 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á trabajando en un producto que requiere de mucha Memoria de Acceso Aleatorio (RAM), es posible que tenga 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 necesita un búfer muy grande para almacenar datos de sonido, un microcontrolador de 32 pines es la mejor opción.

Lines of light on a curving road

Si la velocidad es importante para su diseño, utilice un microcontrolador de 32 bits.

Agregar periféricos

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.

Diseño de hardware y curva de aprendizaje

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, no opte 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 busque 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 tarjetas muy populares basadas en microcontroladores de 8 bits. Esto es debido a que es más fácil comenzar 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á 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 bien podría instalar el firmware entero simplemente usando un microcontrolador de 8 bits.

Arduino board with 32-bit microcontroller

Los microcontroladores de 32 bits tienen una curva de aprendizaje más pronunciadas. Créditos: goodcat / Shutterstock.com

Aplicaciones para microcontroladores de 32 bits

Existe una gran cantidad de aplicaciones para los microcontroladores de 32 bits, pero lo que realmente es importante sería 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á 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 ofrece una mucho mayor capacidad de cómputo, pero a costa de un mayor consumo de energía. Es posible usar un microcontrolador de 32 bits para terminar cómputos importantes más rápidamente y después poner la CPU en modo "suspensión" durante un período más largo. Sin embargo, esto no significa que un microcontrolador de 32 bits sea necesariamente más eficiente a nivel de consumo de energía. Un microcontrolador de 8 bits generalmente tiene una mayor durabilidad a nivel de batería y también un mejor equilibrio entre las funcionalidades periféricas que los dispositivos de 32 bits.

Elige el mejor MCU para el diseño de tu PCB

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 los MCU de 8 bits vs. los de 32 bits. Al tener en cuenta los requisitos de diseño tales como la velocidad, la complejidad, los periféricos y la memoria flash, podrás minimizar tanto la "parálisis del análisis" como los potenciales obstáculos al elegir el mejor microcontrolador para el diseño.

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.

¿Aún no puede decidir si necesita un microcontrolador de 8 bits o uno de 32 bits? Hable con un experto en Altium Designer.

most recent articles

Back to Home