¡Qué bonito! O es... ¿un QT Py? Esta diminuta placa de desarrollo viene con uno de nuestros nuevos chips favoritos, el RP2040. Se ha hecho famoso en los nuevos Raspberry Pi Pico y Adafruits Feather RP2040 e ItsyBitsy RP2040, pero ¿qué pasa si queremos algo realmente pequeño?
Un nuevo chip significa un nuevo QT Py, 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 cuuuutie QT Py Treatment", ¡y así lo hicieron! Este QT Py cuenta con el RP2040, y con todas las comodidades que conoces y amas del QT Py original
PLUG-AND-PLAY STEMMA QT
La estrella del QT Py es el conector favorito de Adafruits - el STEMMA QT, un puerto I2C encadenable que se puede utilizar con cualquiera de nuestros sensores y accesorios STEMMA QT. Al disponer de este conector, no es necesario hacer ninguna soldadura para empezar.
¿Qué se puede introducir en el puerto QT? ¿Qué tal los OLED? Unidades de medición inercial Sensores en abundancia. Todo plug-and-play gracias al innovador diseño encadenable: SparkFun Conectores STEMMA QT compatibles con Qwiic para el bus I2C, por lo que ni siquiera es necesario soldar. Sólo tienes que enchufar un cable compatible y conectarlo a la MCU de tu elección, y ya estás listo para cargar algún software y medir algo de luz.
SOPORTE DE SOFTWARE
En el momento del lanzamiento, no hay soporte de núcleo Arduino para el chip de esta placa. Hay un gran soporte de C/C++, un puerto oficial de MicroPython, y un puerto de CircuitPython! Adafruit, por supuesto, recomendamos CircuitPython porque creemos 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.
QT PY RP2040 ESPECIFICACIONES
El pinout y la forma es compatible con Seeed Xiao, con almohadillas almenadas para que puedas soldarlo a una PCB con un recorte para permitir que los componentes inferiores tengan algo de espacio. Además del conector QT, Adafruit también ha añadido un NeoPixel RGB (con un pin de alimentación controlable para permitir un uso de ultra bajo consumo), y botones de modo de arranque y de reinicio (ideales para reiniciar el programa o entrar en el cargador de arranque). Este QT Py viene con cabezales sueltos de 0,1" que puedes soldar para usarlos en la protoboard
Mientras que el RP2040 tiene mucha RAM en la placa (264KB), no tiene memoria FLASH incorporada. En su lugar, eso lo proporciona el chip flash QSPI externo. En esta placa hay 8MB, 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.
Mismo tamaño, factor de forma y distribución de pines que el QT Py basado en SAMD
Conector USB Tipo C
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
USB nativo soportado por todos los sistemas operativos - puede ser usado como consola serial USB, MIDI, HID de teclado/ratón, incluso una pequeña unidad de disco para almacenar scripts de Python.
Puede utilizarse con MicroPython o CircuitPython
LED NeoPixel RGB incorporado
13 pines GPIO (11 pads de breakout y dos pads QT):
Cuatro ADC de 12 bits (uno más que Pico)
Dos puertos I2C (uno en el conector QT, otro en los pads de breakout)
Periféricos SPI y UART, en ubicaciones QT Py estándar,
Salidas PWM en cada pin IO - para servos, LEDs, etc
Hay 6 GPIO en orden consecutivo para la compatibilidad PIO
3.Regulador de 3V con 600mA de pico de salida
Cristal de 12 MHz
Tanto el botón de Reset como los botones de selección del Bootloader para reinicios rápidos (no hay que desenchufar-reenchufar para relanzar el código)
Realmente muy pequeño
ACERCA DEL RP2040
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 BOOT 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, 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.
DETALLES TÉCNICOS
Características del chip RP2040
Doble ARM Cortex-M0+ a 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 interpolador 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 se pueden utilizar como entradas analógicas (no todos los GPIO se sacan en esta placa)
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
Dimensiones del producto: 21,8mm x 17,8mm x 5,8mm / 0,9" x 0,7" x 0,2"
Peso del producto: 2,2g / 0,1oz