La elección del microcontrolador es un paso crucial en el diseño de un dispositivo IoT. En este artículo veremos qué debemos tener en cuenta para elegir el correcto en nuestro proyecto IoT.
Pero primero veamos qué diferencia hay entre un microprocesador y un microcontrolador.
En principio podemos decir que ambos dispositivos son muy similares en cuanto a tecnología, más allá de las múltiples arquitecturas que hay en cada una de estas familias. Sin embargo, para entender qué diferencia a unos de otros, es necesario comenzar por su propósito
Microprocesadores
Los microprocesadores están pensados para realizar cálculos y procesar información. Ejemplos de ellos son los chips que utilizamos en las computadoras portátiles, los teléfonos inteligentes, los TVs, etc. Los microprocesadores acceden a los datos en memoria, leyendo o escribiendo y envían datos a otros periféricos a través de dispositivos de hardware que sirven de interfaz. De este modo, el microprocesador no tiene un vínculo directo con los periféricos ni con el entorno. Esta es una diferencia sustancial con el microcontrolador.

Por otro lado, los microprocesadores, en general tienen una capacidad de cómputo mucho mayor que los microcontroladores, por lo que pueden realizar muchas más operaciones por unidad de tiempo. Ya que procesan muchos más datos por segundo, también las unidades de memoria y de almacenamiento de datos (por ejemplo: discos), son mucho más grandes en capacidad y velocidad, respecto de las que se utilizan en conjunto con microcontroladores.
Finalmente, dado que estos dispositivos están pensados para procesar la mayor cantidad de información durante el menor tiempo posible, es decir ser muy eficientes en el procesamiento, el consumo de energía es mucho más elevado, que en el caso de los microcontroladores. De hecho, a lo largo del tiempo, uno de los mayores desafíos para los fabricantes de microprocesadores ha sido bajar el consumo eléctrico manteniendo las capacidad de procesamiento.
Microcontroladores
Por otro lado, los microcontroladores están pensados para interactuar con el medio ambiente a través de sensores y actuadores y realizar tareas de control. Su capacidad de procesamiento es menor a la de los microprocesadores, al igual que los recursos de memoria y almacenamiento a los que acceden.
Los microcontroladores acceden directamente a los periféricos a través de interfaces como los conversores analógico/digital o digital/analógico, las interfaces de bus serie, o los pines de propósito general. De este modo tienen conexión directa con el entorno y los periféricos. Esto hace que se necesite mucho menos hardware y software para leer el estado de un sensor, activar una salida, o enviar un mensaje por la red WiFi, por dar algunos ejemplos.

Dado que los recursos de memoria y almacenamiento son limitados, deben usarse de la manera más eficiente posible, para que el código quepa en la memoria flash y pueda ejecutarse sin problemas con la memoria RAM disponible.
Finalmente, el consumo de energía es un factor crítico en los dispositivos basados en microcontroladores, sobre todo en aquellos que funcionarán alimentados a batería. Es por esto que la gestión de la energía es una función que viene integrada, permitiendo que el microcontrolador pueda entrar en diversos estados, que van desde la utilización plena del microntrolador y los periféricos, pasando por la desconexión de periféricos y memoria hasta estados de reposo (deep sleep) de los que el microncotrolador solo puede recuperarse mediante una interrupción específica.
Características de un microcontrolador
Los microcontroladores poseen una serie de características, que veremos resumidas a continuación.
Bits: esta es la primer característica que aparece cuando vemos la hoja de datos de un microcontrolador. Indica el tamaño de las instrucciones o datos (en bits) que puede procesar. Los bits pueden ser 8, 16 o 32.
Memoria RAM: es la memoria que el microcontrolador utilizará para guardar y acceder datos que se generen durante la ejecución del programa. Son pequeñas en tamaño y si el programa maneja muchos datos, puede que hay que prestarle atención al momento de seleccionar el chip. Tiene un impacto importante en el costo del mismo.
Memoria Flash: A diferencia de la memoria RAM, es una memoria no volátil, por lo que se utiliza para almacenar datos que deben permanecer guardados si se interrumpe la alimentación eléctrica.
GPIO: la sigla es General Porpouse Input Output, lo que en español significa que son pines de propósito general. Pueden incluir entradas o salidas digitales, conversores A/D o D/A.
Interfaces de comunicación: van desde interfaces serie como I2C, 1-Wire, SPI, hasta Ethernet, WiFi, Bluetooth, etc. Estas interfaces dependen mucho del tipo de microcontrolador seleccionado.
Consumo de energía: Como ya se dijo, el consumo y la gestión de la energía es crucial en el uso de microcontroladores y esto debe ser analizado en profundidad para cada dispositivo o proyecto.
Cómo elegir el microcontrolador
Como ya vimos, hay muchas variables a considerar en base a las características de cada chip y el uso específico.
Uno de estos aspectos es la compatibilidad con el hardware y los sistemas ya instalados. Desde el tipo de sensores, hasta las interfaces de comunicación. La elección del microconotrolador debe permitir una integración suave, que no requiera modificaciones importantes del entorno donde se va a instalar.
Respecto al chip en sí mismo, es importante prever la arquitectura más conveniente, la capacidad de procesamiento y los tamaños de memoria flash y RAM. También las interfaces disponibles en entradas/salidas digitales, ADCs, DACs, interfaces de comunicación (I2C, Bluetooth, WiFi, etc.).
Otro de los aspectos importantes es la tensión de alimentación y el consumo de energía. Esto puede estar fuertemente condicionado por las condiciones de instalación y el tipo de alimentación eléctrica disponible en el lugar. Las variantes pueden ir desde tensión alterna en 220 V, tensión continua 12 V, baterías de 3,7, etc. En cada caso se necesitarán distintos circuitos de conversión y gestión de energía para adaptar la alimentación a los requerimientos del microcontrolador y los periféricos asociados.
El costo es obviamente también un factor importante, junto con la disponibilidad del microcontrolador en tu mercado. El costo debe estar acorde a la función que desempeñará el dispositivo IoT, la escala del proyecto y las posibilidades de ampliación del mismo. También el microcontrolador debe estar disponible en las cantidades necesarias no solo en el momento inicial, sino a lo largo del tiempo.

En la etapa de desarrollo es importante contar con entornos de desarrollo, como placas, entornos de programación, etc. Cada microcontrolador tiene sus propias herramientas, algunas son gratuitas y otras no. Los prototipos generalmente se desarrollarán utilizando estas placas de desarrollo o evaluación y la selección adecuada puede ahorrar mucho tiempo.
Por último, la documentación, el soporte técnico y la comunidad online son importantes para aprender a usar el microcontrolador y ahorrar tiempo en el desarrollo. Se puede, por ejemplo, ver si hay librerías específicas para parte del software que estará corriendo en el microcontrolador. Esto ahorrará mucho tiempo de desarrollo, aunque habrá que evaluar cada caso, por ejemplo examinando si estas librerías son actualizadas frecuentemente y son usadas por muchos desarrolladores.
En fin, estas son algunas consideraciones a tener en cuenta al momento de seleccionar un microcontrolador para nuestro dispositivo IoT. Espero que te hayan servido y te invito a comentar debajo.
1 comentario
IoT y su relación con el desarrollo de software y hardware - Bambú Mobile · 24 diciembre, 2020 a las 12:04 PM
[…] desarrollo de hardware detrás del Internet de las Cosas radica en un microcontrolador o un circuito integrado que debe ser pequeño y tener muy bajo consumo. Este elemento se denomina SoC (sistema en chip, por sus siglas en inglés), y es fundamental que […]