¿Qué es más pequeño que una pluma pero más grande que una baratija? ¡Es un Adafruit ItsyBitsy RP2040 con el Raspberry Pi RP2040!
Un nuevo chip significa un nuevo ItsyBitsy, y el Raspberry Pi RP2040 no es una excepción. Cuando Adafruit vio este chip pensó "este chip va a ser increíble cuando le demos el tratamiento ItsyBitsy teensy-weensy" y así lo hicieron. Itsy' cuenta con el RP2040, y todas las ventajas que conoces y adoras de la familia ItsyBitsy
Pequeña, potente, con un procesador dual Cortex M0+ ultrarrápido que funciona a 125 MHz - esta placa de microcontrolador es perfecta cuando quieres algo muy compacto, con mucha potencia y un montón de pines. Este Itsy tiene la velocidad de un coche deportivo, pero la amplitud de un SUV con 8 MB de FLASH y 264KB de SRAM.
El ItsyBitsy RP2040 sólo mide 1,4" de largo por 0,7" de ancho, pero tiene 6 pines de alimentación, 23 pines GPIO digitales (4 de los cuales pueden ser de entrada analógica y 16 de salida PWM). Es el mismo chip que el Feather RP2040 y Raspberry Pi Pico, pero realmente muy pequeño. Por lo tanto, es genial cuando se ha terminado un prototipo y se quiere hacer el proyecto mucho más pequeño. Incluso viene con 8 MB de SPI Flash incorporados, para el registro de datos, almacenamiento de archivos o código CircuitPython/MicroPython
Mismo tamaño y factor de forma que el resto de la familia ItsyBitsy y pinout casi idéntico
Medidas 1.4" x 0.7" x 0.2" (36mm x 18mm x 4mm) sin cabeceras soldadas en
RP2040 32-bit Cortex M0+ dual core corriendo a ~125 MHz @ 3.3V lógica y energía
264 KB RAM
8 MB SPI FLASH chip para almacenar archivos y código CircuitPython/MicroPython. Sin EEPROM
¡Toneladas de GPIO! 23 x pines GPIO con las siguientes capacidades:
Cuatro ADCs de 12 bits (uno más que Pico)
Dos periféricos I2C, dos SPI y dos UART, Adafruit etiquetan uno para la interfaz "principal" en ubicaciones estándar de ItsyBitsy
16 x salidas PWM - para servos, LEDs, etc
Los 10 GPIOs digitales "no-ADC/no-periféricos" son consecutivos para una máxima compatibilidad PIO
Pin #13 LED rojo para parpadeo de propósito general
NeoPixel RGB con pin de alimentación en GPIO para poder despotenciarlo para usos de baja potencia.
Botón de reinicio y botón de selección del gestor de arranque para reiniciar rápidamente (sin necesidad de desenchufar y volver a enchufar para relanzar el código)
Regulador de 3,3 V con salida de corriente de pico de 500 mA
Clavija de alimentación/activación de 3,3 V
Alimentación con USB o salida externa (como una batería) - cambiará automáticamente
Clavijas SWD extraídas para acceso a la depuración
Cristal de 12 MHz para una sincronización perfecta.
El pin de salida especial Vhigh le proporciona el voltaje más alto de VBAT o VUSB, para conducir NeoPixels, servos y otros dispositivos lógicos de 5V. Salida digital 5 con desplazamiento de nivel para una salida de nivel lógico de alto voltaje.
El conector USB Micro B permite acceder al bootloader USB de la ROM integrada y a la depuración del puerto serie
En el interior del RP2040 hay un bootloader USB UF2 de "ROM permanente". Lo que esto significa es que cuando quieras programar un nuevo firmware, puedes mantener pulsado el botón BOOTSEL mientras lo conectas al USB (o tirando del pin RUN/Reset a tierra) y aparecerá como una unidad de disco USB a la que puedes arrastrar el firmware. Los usuarios de los productos de Adafruit lo encontrarán muy familiar, ya que utilizan esta técnica en todas sus placas USB nativas. Sólo ten en cuenta que no debes hacer doble clic en el reinicio, sino que debes mantener pulsado BOOTSEL durante el arranque para entrar en el cargador de arranque.
El RP2040 es un potente chip que tiene la velocidad de reloj del M4 (SAMD51) y dos núcleos equivalentes al M0 (SAMD21). Como es un chip M0, no tiene una unidad de punto flotante ni soporte de hardware DSP, así que si haces algo con matemáticas de punto flotante pesadas, se hará por software y, por tanto, no será tan rápido como un M4. Para muchas otras tareas computacionales, obtendrá velocidades cercanas al M4.
Para los periféricos, hay dos controladores I2C, dos controladores SPI, y dos UARTs que están multiplexados a través de los GPIO - comprueba el pinout para saber qué pines pueden ser configurados para cada uno. Hay 16 canales PWM, cada pin tiene un canal al que se puede ajustar (lo mismo en el pinout).
Notarás que no hay periférico I2S, ni SDIO, ni cámara, ¿qué pasa con eso? Pues bien, en lugar de tener un soporte de hardware específico para periféricos tipo datos en serie como estos, el RP2040 viene con el sistema de máquinas de estado PIO, que es una forma única y potente de crear bloques de lógica de hardware y procesamiento de datos personalizados que se ejecutan por sí mismos sin ocupar una CPU. Por ejemplo, NeoPixels - a menudo Adafruit bitbang el protocolo específico de temporización para estos LEDs. Para el RP2040, en cambio, utilizan un objeto PIO que lee el búfer de datos y envía el flujo de bits correcto con una precisión perfecta. Lo mismo ocurre con la entrada o salida de audio I2S, las pantallas matriciales de LED, los TFT de 8 bits o basados en SPI, ¡incluso VGA! En MicroPython y CircuitPython se pueden crear comandos de control PIO para programar el periférico y cargarlo en tiempo de ejecución. Hay 2 periféricos PIO con 4 máquinas de estado cada uno.
En el momento del lanzamiento, no hay soporte de núcleo Arduino para esta placa. Hay un gran soporte de C/C++, un puerto oficial de MicroPython, y un puerto de CircuitPython! Adafruit, por supuesto, recomiendan CircuitPython porque piensan que es la forma más fácil de empezar y tiene soporte con la mayoría de sus controladores, pantallas, sensores, y más, soportados fuera de la caja para que pueda seguir con su CircuitPython projects y tutoriales.
Este Itsy viene con cabezales sueltos de 0,1" que puedes soldar para utilizarlo en la protoboard.
Aunque el RP2040 tiene mucha memoria RAM integrada (264KB), no tiene memoria FLASH integrada. En su lugar, eso lo proporciona el chip flash QSPI externo. En esta placa hay 8 MB, que se comparten entre el programa que está ejecutando y cualquier almacenamiento de archivos utilizado por MicroPython o CircuitPython. Si usas C/C++ tendrás toda la memoria flash, si usas Python te quedarán unos 7 MB para código, archivos, imágenes, fuentes, etc.
DETALLES TÉCNICOS
RP2040 Ficha técnica: https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf
Características del chip RP2040:
Doble ARM Cortex-M0+ @ 133MHz
264kB de SRAM en el chip en seis bancos independientes
Soporte para hasta 16MB de memoria Flash fuera del chip a través de un bus QSPI dedicado
Controlador DMA
Barra transversal AHB totalmente conectada
Periféricos de interpolación y divisor de enteros
LDO programable en el chip para generar el voltaje del núcleo
2 PLLs en el chip para generar los relojes del USB y del núcleo
30 pines GPIO, 4 de los cuales pueden utilizarse como entradas analógicas
Periféricos
2 UARTs
2 controladores SPI
2 controladores I2C
16 canales PWM
USB 1.1 controlador y PHY, con soporte de host y dispositivo
8 máquinas de estado PIO
APRENDE
Una introducción a RP2040 PIO con CircuitPython - Aprende a utilizar el potente coprocesador de E/S dentro del RP2040