Un nuevo chip significa un nuevo Feather, 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 Feather" y así lo hicieron. Este Feather cuenta con el RP2040, y todas las sutilezas que conoces y amas de Feather
Mide 2.0" x 0.9" x 0.28" (50.8mm x 22.8mm x 7mm) sin cabeceras soldadas en
Ligero como una (¿grande?) pluma - 5 gramos
¡Nueva PCB rosa!
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 almacenamiento de código CircuitPython/MicroPython. Sin EEPROM
¡Toneladas de GPIO! 21 x pines GPIO con las siguientes capacidades:
Cuatro ADC de 12 bits (uno más que Pico)
Dos periféricos I2C, dos SPI y dos UART, etiquetamos uno para la interfaz "principal" en ubicaciones estándar de Feather
16 x salidas PWM - para servos, LEDs, etc
Los 8 GPIO digitales "no ADC/no periféricos" son consecutivos para una máxima compatibilidad PIO
Cargador lipoly incorporado de 200mA+ con LED indicador de estado de carga
Pin #13 LED rojo para parpadeo de propósito general
NeoPixel RGB para indicación a todo color.
Conector STEMMA QT integrado que permite conectar rápidamente cualquier dispositivo Qwiic, STEMMA QT o Grove I2C sin necesidad de soldar.
Botón de reinicio y botón de selección del gestor de arranque para reinicios rápidos (sin necesidad de desenchufar y volver a enchufar para relanzar el código)
Pin de alimentación/activación de 3,3 V
El puerto de depuración SWD opcional se puede soldar para acceder a la depuración
4 orificios de montaje
Cristal de 12 MHz para una sincronización perfecta.
Regulador de 3,3V con salida de corriente de pico de 500mA
El conector USB Tipo C permite acceder al bootloader USB de la ROM integrada y a la depuración del puerto serie
Dentro 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. La gente que ha estado usando productos de Adafruit encontrará esto muy familiar - ellos usan la técnica en todas sus placas nativas-USB. 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, los NeoPixels - a menudo bitbang el protocolo específico de temporización para estos LEDs. Para el RP2040, en cambio, utilizamos 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.
Hay un gran soporte de C/C++, soporte no oficial (pero realmente bueno) de Arduino, 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.
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.
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
Viene completamente ensamblado y probado, con el bootloader USB UF2. También incluimos unos conectores para que puedas soldarlos y conectarlos a una placa de circuito impreso sin soldaduras.
Detalles técnicos
Historial de revisiones:
A partir del 23 de febrero de 2022 - ¡el PCB es ahora rosa! Por lo demás, el diseño es idéntico en cuanto a esquema, disposición y uso.
Dimensiones del producto: 51,0 mm x 23,0 mm x 7,5 mm / 2,0" x 0,9" x 0,3"