RP2040: el microcontrolador de Raspberry Pi para el machine learning

RP2040

Raspberry Pi Foundation ha venido lanzando algo más que sus placas SBC, con algunos complementos interesantes de hardware. Quizás uno que no es tan conocido como la Raspberry Pi, es importante tratar el chip RP2040, un dispositivo interesante para los makers que están interesados en la IA y el machine learning.

En este artículo trataremos a fondo este complemento perfecto para la famosa SBC.

¿Qué es el RP2040?

Raspberry Pi Ltd diseñó un circuito denominado RP2040, que se presentó en enero de 2021 como parte de la nueva placa SBC Raspberry Pi Pico que esta entidad lanzó al mercado. Este chip RP2040 no es más que un chip microcontrolador de 32-bit con un doble núcleo ARM Cortex-M0+.

El ARM Cortex-M0+ es un núcleo de CPU especialmente pensado para aplicaciones en sistemas embebidos y microcontroladores. Su arquitectura de 32 bits proporciona un rendimiento mejorado en comparación con arquitecturas de 8 o 16 bits. Además, destaca por ser un procesador de bajo consumo, lo que lo hace ideal para dispositivos alimentados por baterías y otras aplicaciones que requieren eficiencia energética.

Este núcleo utiliza extensiones de instrucciones Thumb-2, una combinación de instrucciones de 16 y 32 bits que mejora la densidad de código y el rendimiento en aplicaciones con limitaciones de memoria. Con un pipeline de tres etapas, logra una ejecución eficiente de instrucciones, manteniendo un equilibrio entre rendimiento y consumo de energía.

El ARM Cortex-M0+ incorpora un controlador de interrupciones eficiente para gestionar eventos y tareas en tiempo real de manera efectiva. Diseñado para ofrecer un rendimiento razonable a un costo competitivo, este núcleo se encuentra comúnmente implementado en microcontroladores utilizados en una variedad de dispositivos embebidos, desde sistemas de control hasta electrodomésticos y dispositivos médicos.

Se transformó así en el primer microcontrolador diseñado por Raspberry Pi, aunque el núcleo IP haya sido diseñado de forma completa por Arm. Su bajo coste permitió integrarlo en la SBC Raspberry Pi Pico, con un precio de tan solo 4$ aproximadamente, ya que el CI costaba tan solo 1$.

Este chip RP2040 puede programarse para funcionar mediante varios lenguajes de programación. Uno de ellos puede ser el ensamblador ARM, otro el C, C++, Free PASCAL, Rust, Go, MicroPython, CircuitPython, Ada, etc. Además, que es aquí donde más llama la atención, es suficientemente potente como para ejecutar TensorFlow Lite para aplicaciones de IA.

TensorFlow Lite es una versión ligera y eficiente de TensorFlow, un popular marco de aprendizaje automático desarrollado por Google. Diseñado específicamente para dispositivos móviles, sistemas embebidos y entornos con recursos limitados, TensorFlow Lite permite ejecutar modelos de aprendizaje automático en plataformas con restricciones de memoria y potencia de cálculo. Proporciona herramientas para la conversión de modelos entrenados en TensorFlow estándar a un formato compatible con dispositivos móviles, facilitando la implementación de aplicaciones de inteligencia artificial en smartphones, microcontroladores y otros dispositivos con capacidades computacionales limitadas. TensorFlow Lite es una solución versátil para desplegar modelos de aprendizaje automático en dispositivos Edge e IoT, permitiendo inferencias rápidas y eficientes de manera local, sin depender de conexiones a la nube.

Siguiendo con el tema de RP2040, hay que decir que este chip ha sido integrado en varias placas SBC de diversos fabricantes, como por ejemplo Adafruit, Arduino, SparkFun, Pimoroni, etc. En la Raspberry Pi, aporta importantes características a bajo precio. Por ejemplo, ha sido usado para la Raspberry Pi Pico y Pico W, Arduino Nano RP2040, Pimoroni Tiny RP2040, Adafruit Micro, SparkFun Pro Micro, etc.

Especificaciones del RP2040

En cuanto a las especificaciones técnicas del RP2040, podemos encontrar las siguientes:

  • Chip fabricado con nodo o proceso de 40 nm en la foundry de TSMC.
  • Empaquetado de 7x7mm tipo QFN con 56 contactos y para montaje superficial o SMD.
  • CPU de doble núcleo ARM Cortex-M0+ a 133 Mhz, con soporte para overclocking. Cada núcleo tiene un divisor de enteros periférico y dos interpoladores.
  • Implementa una memoria SRAM rápida de 264 KB de capacidad, con 6 bancos independientes, cuatro de 64 KB y dos de 4 KB.
  • No posee memoria flash o EEPROM interna, por tanto, tras el reset o apagado, el boot-loader se pierde y se cargará a través del firmware externo.
  • Bus controlador QSPI, soportando hasta 16 MB de memoria flash externa.
  • Controlador DMA o de acceso directo a memoria.
  • AHB crossbar, completamente conectada.
  • LDO (Low-Dropout Regulator) integrado on-chip y programable para generar el voltaje del núcleo.
  • PLLs doble integrado en el chip para generar los clocks del núcleo y también la frecuencia del USB.
  • 30 GPIO con 4 como uso opcional de entradas analógicas.
  • Soporte de periféricos con controladores: 2x UARTs, 2x SPI, 2x I2C, 16x PWM, USB 1.1, PHY y 8 PIO o pines programables de salida para los estados de máquina.

Usos o aplicaciones

El chip RP2040, se ha convertido en la piedra angular de numerosos proyectos y productos debido a su versatilidad y capacidades destacadas. Ha encontrado aplicaciones en una variedad de dispositivos y sistemas embebidos, abriendo un abanico de posibilidades para distintos usuarios.

Uno de sus usos comunes está en el ámbito del desarrollo de proyectos de electrónica, siendo particularmente apreciado por entusiastas y profesionales para la creación de dispositivos personalizados gracias a su bajo costo y capacidad de procesamiento. Además, ha tenido un impacto significativo en la educación en informática, siendo utilizado en entornos educativos para enseñar programación y conceptos de hardware, proporcionando a los estudiantes una introducción práctica a la informática.

En el campo de la automatización y el control, el RP2040 se ha integrado en sistemas como dispositivos domésticos inteligentes y proyectos de automatización industrial, interactuando con sensores y actuadores para controlar y monitorear entornos. También ha encontrado aplicaciones en robótica, sirviendo como el cerebro de robots y vehículos autónomos, con la capacidad adicional de ejecutar TensorFlow Lite para implementaciones de aprendizaje automático.

La versatilidad del RP2040 se destaca en el desarrollo de prototipos rápidos, facilitando la creación rápida de nuevos productos y tecnologías. Su utilidad se extiende al Internet de las Cosas (IoT), donde se utiliza en dispositivos conectados a la red para recopilar datos y enviar información a la nube, gracias a su tamaño compacto y eficiencia energética.

Además, el RP2040 se integra en proyectos colaborativos y de código abierto, fomentando la comunidad de hardware abierto. Desde aplicaciones de entretenimiento hasta proyectos de arte interactivo, el RP2040 se ha convertido en una opción popular en el ámbito del hobby y el entretenimiento creativo.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.