RP2040 – Desglose del microcontrolador de Raspberry Pi

Si te has adentrado en el mundo de los sistemas embebidos o la electrónica DIY, probablemente hayas oído hablar del RP2040. Pero ¿qué hace que este diminuto chip de Raspberry Pi destaque entre la multitud de microcontroladores? Lanzado en 2021 como el cerebro detrás del icónico Raspberry Pi Pico, el RP2040 se ha convertido silenciosamente en uno de los favoritos entre aficionados, educadores e incluso ingenieros profesionales. En este análisis a fondo, exploraremos por qué esta maravilla de doble núcleo está redefiniendo lo que un microcontrolador económico puede lograr y cómo puedes empezar a experimentar con él hoy mismo.

¿Qué es RP2040?

El RP2040 es una unidad de microcontrolador (MCU) presentada por la Fundación Raspberry Pi. Sirve como componente principal para Raspberry Pi Pico y otras placas de desarrollo. Actualmente se vende por $10 en el sitio web oficial.

An image showing the RP2040 microchip for sale priced at 10.00
RP2040 Microchip - Available for Purchase at $10.00

Especificación del RP2040

El chip RP2040 viene en un paquete QFN-56 de 7×7 mm, con las siguientes especificaciones específicas:

  • Procesador Arm Cortex-M0+ de doble núcleo a 133 MHz
  • 264 KB de SRAM en chip y 2 MB de memoria flash integrada
  • Admite hasta 16 MB de memoria flash fuera del chip a través de un bus QSPI dedicado
  • Equipado con un controlador DMA
  • Cuenta con 30 pines GPIO, 4 de los cuales se pueden utilizar como entradas analógicas
  • Tiene 2 UART, 2 controladores SPI y 2 controladores I2C
  • Ofrece 16 canales PWM
  • Proporciona compatibilidad con dispositivos y host USB 1.1
  • Incorpora 8 máquinas de estado de E/S programables (PIO) Raspberry Pi para compatibilidad con periféricos personalizados
  • Admite el modo de arranque de almacenamiento masivo USB habilitado para UF2 para programación mediante arrastrar y soltar
A dimension diagram of the RP2040 chip, showing various measurements in millimeters.
RP2040 Chip Dimension Diagram (in mm)

Explicación del nombre del RP2040

El nombre del RP2040 refleja sus especificaciones principales:

  • RP: significa Frambuesa Pi, el desarrollador.
  • 2: Indica doble núcleo Procesadores Arm Cortex – M0+.
  • 0: Representa el tipo de núcleo (M0+ en este caso).
  • 4: Calculado como piso(log2(SRAM/16k)), donde 264 KB de SRAM → ~4.
  • 0:Derivado de piso(log2(no volátil/16k)), con 2 MB de flash → ~7, pero simplificado a 0 en el nombre.
An illustration explaining the naming convention of the RP2040 microchip with arrows and descriptions for each part of the name
RP2040 Microchip Naming Convention Explanation

Distribución de pines del RP2040

El RP2040 incluye 30 pines GPIO, muy versátiles para diversos usos. Pueden leer entradas digitales de dispositivos como botones y sensores, y proporcionar salidas digitales para controlar LED y relés.

Cabe destacar que su subsistema de Entrada/Salida Programable (PIO) cuenta con dos máquinas de estados. Esto permite crear protocolos de comunicación personalizados, como controlar fácilmente tiras LED WS2812 o crear una interfaz VGA personalizada, lo que reduce la carga de trabajo de la CPU.
A top view pinout diagram of the RP2040 microchip labeling various pins such as GPIO power and communication pins
RP2040 Microchip Pinout Diagram (Top View)

Diagrama de bloques RP2040

El chip RP2040 presenta:

  • 2 UART: Comunicaciones seriales para dispositivos/módulos/computadoras.
  • 2 SPI:Transferencia de datos maestro-esclavo de alta velocidad (por ejemplo, tarjetas flash/SD).
  • 2 I2C:Bus multidispositivo para sensores/EEPROM a través de líneas SDA/SCL.
  • 16 PWM:Control de velocidad del motor/brillo del LED mediante modulación del ciclo de trabajo.
Block diagram of the RP2040 microchips internal architecture showing components like processors peripherals and memory
RP2040 Microchip Internal Architecture Block Diagram

Soporte de desarrollo para RP2040

Junta Oficial de Desarrollo - Raspberry Pi Pico

La Raspberry Pi Pico es la placa de desarrollo oficial del RP2040 y una fantástica opción para desarrolladores. Con tan solo 65 mm x 17 mm, esta placa compacta es increíblemente asequible (solo $4), lo que la hace accesible para una amplia gama de usuarios, desde aficionados con presupuesto limitado hasta estudiantes que exploran el mundo de los microcontroladores.

Images of four Raspberry Pi Pico series development boards (Pi Pico, Pi Pico H, Pi Pico W, Pi Pico WH) based on the RP2040 microcontroller, showcasing their board layouts and component differences.
A lineup of Raspberry Pi Pico series boards powered by the RP2040 MCU

Una de las grandes ventajas de la Raspberry Pi Pico es su facilidad de uso. Su diseño simple incluye una fila de pines GPIO a cada lado, claramente etiquetados para facilitar su identificación. Esta disposición facilita la conexión de componentes externos como sensores, actuadores o pantallas. Por ejemplo, conectar un sensor de temperatura como el DHT11 a la Pico es tan sencillo como conectar el pin de datos del sensor a uno de los pines GPIO de la Pico, junto con las conexiones de alimentación y tierra.

El Pico también cuenta con un conector USB integrado, que se utiliza tanto para alimentar la placa como para programarla. Al conectarlo a una computadora, actúa como un dispositivo de almacenamiento masivo, lo que facilita la programación mediante la función de arrastrar y soltar. Por ejemplo, si ha escrito un script de MicroPython o un binario compilado de C/C++, simplemente copie el archivo en la unidad virtual del Pico y este comenzará a ejecutar el programa.

Además de las características básicas del hardware, la Raspberry Pi Pico incluye abundante documentación oficial y código de ejemplo. El sitio web oficial de Raspberry Pi ofrece guías detalladas sobre todo, desde cómo empezar a usar la placa hasta el uso avanzado de sus funciones. Estos recursos son extremadamente útiles tanto para principiantes que se inician en la programación de microcontroladores como para desarrolladores experimentados que desean familiarizarse rápidamente con las capacidades del RP2040.

Lenguajes y marcos de programación

El RP2040 admite varios lenguajes y marcos de programación, lo que proporciona a los desarrolladores flexibilidad para elegir la opción más adecuada para sus proyectos.

MicroPythonMicroPython es una excelente opción, especialmente para principiantes o quienes desean prototipar sus ideas rápidamente. Es una implementación sencilla y eficiente del lenguaje de programación Python 3, diseñada específicamente para microcontroladores. Con MicroPython, se puede escribir código con una sintaxis de alto nivel y fácil de entender. Por ejemplo, controlar un LED conectado a un pin GPIO en el RP2040 se puede lograr con solo unas pocas líneas de código:
				
					from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

				
			
Esta simplicidad permite a los desarrolladores centrarse en la funcionalidad de su proyecto en lugar de enredarse en detalles de programación de bajo nivel. MicroPython también cuenta con un amplio conjunto de bibliotecas que permiten interactuar con diversos componentes de hardware, como sensores, módulos de comunicación y pantallas.

C/C++Para quienes requieren mayor control del hardware y un mejor rendimiento, C/C++ es una excelente opción. El RP2040 cuenta con un SDK (Kit de Desarrollo de Software) oficial para C/C++ que proporciona un conjunto completo de bibliotecas y herramientas para el desarrollo de aplicaciones. El SDK incluye controladores para todos los periféricos del RP2040, como las interfaces GPIO, PIO, UART, SPI e I²C. Con C/C++, los desarrolladores pueden escribir código altamente optimizado que aprovecha al máximo la arquitectura de doble núcleo del RP2040. Por ejemplo, al implementar un sistema de adquisición de datos de alta velocidad, C/C++ permite escribir código que lea eficientemente los datos de múltiples sensores conectados a los pines GPIO del RP2040 y los procese en tiempo real.

Herramientas e IDE

Hay varias herramientas y entornos de desarrollo integrados (IDE) disponibles para desarrollar aplicaciones para el RP2040.

Thonny

Thonny es una opción popular, especialmente para el desarrollo en MicroPython. Cuenta con una interfaz intuitiva y fácil de navegar, incluso para principiantes. Thonny incluye un intérprete de Python integrado que permite a los desarrolladores probar su código de forma interactiva. Puedes escribir comandos de Python y ver los resultados al instante, lo que lo convierte en una excelente herramienta para depurar y explorar las capacidades del RP2040. Para usar Thonny con el RP2040, primero debes conectar Pico a tu ordenador mediante USB. Después, en Thonny, puedes seleccionar el intérprete de Python adecuado (MicroPython para RP2040). Una vez configurado, puedes escribir, ejecutar y depurar tu código de MicroPython directamente en Thonny.

Código VS

Visual Studio Code es un potente editor de código multiplataforma que ha ganado gran popularidad entre los desarrolladores. Ofrece una amplia gama de extensiones, lo que lo hace ideal para el desarrollo con RP2040. Para el desarrollo con C/C++, la extensión «C/C++» de Microsoft ofrece funciones como resaltado de código, IntelliSense (autocompletado de código) y compatibilidad con la depuración. Para MicroPython, la extensión «MicroPython» ofrece una funcionalidad similar. Para configurar VS Code para el desarrollo con RP2040, debe instalar las extensiones pertinentes y configurar los ajustes de compilación y depuración según los requisitos de su proyecto. Por ejemplo, si trabaja en un proyecto con C/C++, deberá configurar la ruta del SDK de Pico y el depurador para que funcione con RP2040.

Chips RP2040 vs. RP2350

El RP2040 y el RP2350 son microcontroladores desarrollados por Raspberry Pi. El RP2040 fue una de las primeras versiones, mientras que el RP2350 es un sucesor más avanzado con funciones mejoradas. Aquí se presenta una comparación entre ambos:

A side by side comparison image of RP2040 and RP2350 microchips labeled with their respective names
RP2040 and RP2350 Microchips Comparison
FeatureRP2040RP2350
Core ArchitectureDual Arm Cortex-M0+Dual Arm Cortex-M33 or Dual RISC-V Hazard3
Clock Speed133MHz150MHz
On-chip SRAM264KB520KB
Security FeaturesBasic security featuresArm TrustZone, Signed Boot, SHA-256, TRNG, Fault Detectors
Peripheral Interfaces2×UART, 2×SPI, 2×I2C, ADC, PWM, USB 1.1Enhanced peripherals, additional PIO state machines, more GPIO pins, higher power efficiency
PackagingSingle 7×7mm QFN56 option7×7mm QFN60 (RP2350A) with 30 GPIOs or 10×10mm QFN80 (RP2350B) with 48 GPIOs; both with 2MB stacked QSPI flash (RP2354A and RP2354B)

Conclusión

En conclusión, el RP2040 es un microcontrolador extraordinario que ha tenido un impacto significativo en el mundo de los sistemas embebidos y el desarrollo electrónico. ¡Le invitamos a compartir sus opiniones y experiencias!

Compartir en:

Scroll al inicio

Cotización