El microcontrolador de 8 bits aún es una gran opción para baja potencia y facilidad de uso

Durante la década de 1990, a la que yo llamo la edad de oro de los microcontroladores, los compiladores C recién comenzaban a ser populares, pero la programación en el ensamblaje aún era necesaria si usted quería un trabajo en programación incorporada. Los ingenieros de aplicaciones de campo (FAE) como yo solíamos hacer visitas a los clientes, parados frente a una sala de asombrados ingenieros que comían las rosquillas que yo había llevado mientras elogiaba sin respiro las virtudes de mi oferta de microcontroladores más recientes.

En aquella época, las empresas de semiconductores no inventaban nuevos microcontroladores cada mes como en la actualidad. Generalmente llevábamos uno o dos nuevos al mercado una vez cada tres meses. Pero aún así, algunas cosas nunca cambiaron. Las dos docenas de ingenieros a los que yo estaba entreteniendo ese día con mi hábil magia de PowerPoint pertenecían a un grupo que construía controladores de carrocería de automóviles. Los controladores de carrocería eran simples cajitas que funcionaban según los principios de entradas/salidas, como en el interruptor las señales "entran" a la caja y las señales del control del actuador "salen" de la caja. Cosas simples para un microcontrolador de 8 bits con muchas entradas y salidas de uso general.

Era el acto preparado estándar hasta que alguien levantó la mano al fondo de la sala.

Una voz decidida dijo: "La administración ha decidido que debemos comenzar a utilizar microcontroladores de 32 bits en los controladores de carrocería". Por los murmullos en la sala, supuse que la administración no había decidido nada de eso y que quizás esta persona tenía un plan secreto, como un proveedor preferido que, triste y trágicamente, no era yo.

"No necesita un microcontrolador de 32 bits y no le creo", dije en un universo paralelo. En este universo, lo que realmente dije fue más seguro para mi carrera: "¿Puede decirme qué características en una arquitectura de 32 bits necesita para sus controladores de última generación?".

Hubo una pausa, y él respondió de manera algo desafiante: "Solo necesitamos 32 bits". Había duda en su voz. Los demás ingenieros, sintiendo su debilidad, giraron ansiosamente hacia el frente de la sala para escuchar mi respuesta.

Expliqué minuciosamente las ventajas de una arquitectura de 32 bits sobre la de 8 bits. ¿Necesitaban una mayor velocidad de reloj? ¿El producto de última generación realizaba cálculos matemáticos más complejos? ¿El firmware tendría múltiples hilos de ejecución y necesitaba un sistema operativo en tiempo real (RTOS)? ¿El tamaño del firmware aumentaría hasta el punto en que necesitaría mayor direccionamiento de la memoria? Todos estos eran, y aún son, motivos válidos para dar el salto de un núcleo de 8 bits a uno de 32 bits (16 bits es el punto óptimo intermedio, pero esa es otra historia).

Lo que siguió fue un agradable debate lleno de rosquillas sobre las diferencias entre las arquitecturas de 8 bits y de 32 bits. La arquitectura con microcontrolador de 8 bits es más simple y tiene un modelo de programación fácil de comprender. Generalmente solo necesita un único suministro. A pesar de que el marketing asegura lo contrario, las arquitecturas modernas de 8 bits tienen menos potencia en comparación con las de 32 bits porque las partes internas alternan menos señales de bus.

Ejemplo real de 8 bits

Microchip Technology ha estado orgulloso de su oferta de microcontroladores de 8 bits durante años. El popular Microchip megaAVR con núcleo de 8 bits (también llamado ATMega) posee una arquitectura Harvard convencional que puede direccionar hasta 256 kilobytes (Kbytes) de memoria de programa. Utiliza una arquitectura simple basada en registros que es muy apta para compiladores C con 32 registros de 8 bits de uso general (Figura 1).

Figura 1: El microcontrolador megaAVR se basa en 32 registros de 8 bits designados R0 a R31. Los registros también se pueden direccionar como pares de registros para formar dieciséis registros de 16 bits. (Fuente de la imagen: Microchip Technology).

Los registros de uso general se pueden duplicar como pares de registros para formar dieciséis registros de 16 bits. Los últimos tres pares de registros opcionalmente se pueden utilizar como registros de dirección de 16 bits X, Y y Z para un direccionamiento indirecto.

Además de estos registros de uso general, el megaAVR tiene un registro de pila de 16 bits y un registro de estado de 8 bits. Eso es todo. Lo suficientemente simple para programar en el ensamblaje ("Los verdaderos programadores programan en el ensamblaje").

No, no puede acceder al contador del programa en el megaAVR. Déjelo así.

Un ejemplo típico de la familia del megaAVR es el ATMEGA1609 de 20 megahercios (MHz). Es un microcontrolador fácil de usar con 16 Kbytes de flash, 2 Kbytes de RAM y 256 bytes de memoria programable y borrable de solo lectura (EEPROM). La mayoría de las instrucciones son de un solo ciclo.

Figura 2: El ATMEGA1609 de Microchip Technology es un microcontrolador de 8 bits simple, flexible y de baja potencia que puede funcionar en una amplia gama de entornos. (Fuente de la imagen: Microchip Technology).

Posee un convertidor de analógico a digital (ADC) de 10 bits, cinco temporizadores de 16 bits, un reloj en tiempo real (RTC), varias opciones de baja potencia, y un multiplicador de hardware firmado/no firmado de 2 ciclos.

El megaAVR también incluye instrucciones de bit set y bit clear de ciclo único, así como instrucciones de bit test que necesitan de uno a tres ciclos.

La importancia de las instrucciones de bits con frecuencia es ignorada por los desarrolladores que tienen una gran pasión por el lenguaje C. La verdad es que las instrucciones de bits nativos ("No necesitamos ninguna instrucción ATÓMICA") pueden aumentar drásticamente el rendimiento, reducir el tamaño del código, mejorar la legibilidad del código y limpiar su semblante.

Las necesidades de la fuente de energía para el ATMEGA1609 son 1.8 a 5.5 voltios flexibles que puedan funcionar de -40 °C a +125 °C. La amplia fuente de energía y las temperaturas de funcionamiento sin dudas no son accidentales. Según su diseño, este microcontrolador de 8 bits puede adaptarse a una amplia gama de entornos de diseño, y debe usarse en ellos. ¡La "facilidad de uso" ataca de nuevo!

En ocasiones, un desarrollador solo debe hacer un proyecto simple rápidamente; los microcontroladores de 8 bits son fáciles de usar, flexibles y duros como una roca. Estas características son difíciles de ignorar.

Acerca de este autor

Image of Bill Giovino

Bill Giovino es ingeniero electrónico con un BSEE de la universidad de Syracuse y es uno de los pocos profesionales capaz de pasar de ingeniería en diseño a ingeniería de aplicación en campo a marketing tecnológico de forma exitosa.

Durante más de 25 años, Bill ha disfrutado promocionar las nuevas tecnologías a audiencias técnicas y no técnicas por igual en muchas empresas, entre ellas STMicroelectronics, Intel y Maxim Integrated. Mientras trabajó en STMicroelectronics, Bill ayudó a dirigir los primeros éxitos de la empresa en la industria de microcontroladores. En Infineon, Bill estuvo a cargo de que el diseño del primer controlador de la empresa tuviera éxito en la industria automotriz de EE. UU. Como consultor de marketing para CPU Technologies, Bill ha ayudado a muchas empresas a convertir sus productos con bajo rendimiento en casos de éxito.

Bill fue uno de los primeros en adoptar el Internet de las cosas, incluso colocar la primera pila de TCP/IP en un microcontrolador. Bill es un ferviente creyente de "Vender a través de la educación" y de la gran importancia de contar con comunicaciones claras y bien escritas a la hora de promocionar productos en línea. Es moderador del grupo en Linkedin denominado Semiconductor Sales & Marketing (Marketing y ventas de semiconductores) y habla sobre el concepto B2E (empresa-empleado) de manera fluida.

More posts by Bill Giovino