¿No sería genial si pudiera mostrar imágenes y gráficos desde un microcontrolador directamente a un monitor o televisor HDMI? ¡Creemos que sí! Así que la gente de Adafruit diseñó este RP2040 Feather que tiene una salida de video digital (también conocida como DVI) que funcionará con cualquier monitor o pantalla HDMI. Tenga en cuenta que no hace audio, ¡solo gráficos!
Es como si hubiéramos juntado una placa Feather RP2040 y un DVI Breakout. Obtiene todos los pines para usar en Feather, el soporte de batería Lipoly, alimentación / datos USB C, NeoPixel integrado, 8 MB de FLASH para almacenar código y archivos, y luego con los 8 pines sin usar, una salida DVI que se puede usar CircuitPython o con la biblioteca PicoDVI en Arduino o Pico SDK
En Arduino, que es lo que recomendamos, usamos nuestra bifurcación de PicoDVI para crear un búfer de cuadros interno de 320x240 o 400x240 píxeles de 16 bits que luego se borra continuamente como video digital de 640x480 o 800x480 duplicado en píxeles. Cualquier cosa que 'dibuje' en el búfer de fotogramas de la memoria interna aparece instantáneamente en la pantalla digital en colores nítidos. Dado que la biblioteca es una subclase de AdafruitGFX, será familiar para las personas que hayan usado nuestras pantallas TFT u OLED anteriormente.
También hay soporte de salida DVI en CircuitPython a partir de 8.1.0b2, pero tenga en cuenta que usa mucha memoria, por lo que, en particular, si desea agregar otros accesorios y bibliotecas de hardware, es posible que deba configurarlo para que sea una pantalla monocromática de menor memoria. .
Tenga en cuenta que la generación de video DVI usa un núcleo completo, ambos PIO y 150K (320x240) o 190K (400x240) de SRAM. Está un poco agotado, así que tenga en cuenta las limitaciones de recursos restantes.
También conectamos los pines I2C de los conectores HDMI al SDA/SCL de Feather (a través de un cambiador de nivel seguro) para que pueda leer la EEPROM EDID de las pantallas, y se ha desglosado CEC y Utility. El pin de detección de conexión en caliente también está disponible en el extremo del encabezado de 16 pines. ¡Lea este pin para saber cuándo se ha conectado una pantalla!
RP2040 Cortex M0+ de 32 bits de doble núcleo funcionando a ~125 MHz a 3,3 V de lógica y potencia
264 KB RAM
Chip SPI FLASH de 8 MB para almacenar archivos y almacenar código CircuitPython/MicroPython. Sin EEPROM
21 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 las ubicaciones estándar de Feather
16 x salidas PWM - para servos, LED, etc.
Los 8 GPIO digitales 'no ADC/no periféricos' son consecutivos para lograr la máxima compatibilidad con PIO
Cargador lipoly de 200mA+ incorporado con LED indicador de estado de carga
Pin n.º 13 LED rojo para uso general parpadeando
RGB NeoPixel para indicación a todo color.
Conectores de sensores
Tanto el botón Restablecer como el botón de selección del cargador de arranque para reinicios rápidos (sin desenchufar y volver a enchufar para reiniciar el código)
Clavija de encendido/habilitación de 3,3 V
El conector USB tipo C le permite acceder al cargador de arranque USB ROM incorporado y la depuración del puerto serie
Características del chip RP2040:
Doble ARM Cortex-M0+ @ 133MHz
SRAM en chip de 264kB en seis bancos independientes
Admite hasta 16 MB de memoria Flash fuera del chip a través del bus QSPI dedicado
Controlador DMA
Travesaño AHB completamente conectado
Periféricos interpolador y divisor de enteros
LDO programable en chip para generar voltaje de núcleo
2 PLL en chip para generar relojes de núcleo y USB
30 pines GPIO, 4 de los cuales se pueden usar como entradas analógicas
Periféricos:
2 UART
2 controladores SPI
2 controladores I2C
16 canales PWM
Controlador USB 1.1 y PHY, con soporte para host y dispositivo
8 máquinas de estado PIO