🛠 HSTX : générer une sortie vidéo/parallèle haute vitesse avec les 8 broches DDR

RP2350 (genérico / placas basadas en RP2350) · avance · Schéma : IMG-rp2350-generic-avance-2-rp2350-hstx-scanvideo.svg — puce RP2350 avec bloc HSTX, 8 broches de sortie en DDR reliées à un écran RGB passif et un réseau de résistances (DAC R-2R), trame pixel horodatée, PIO et DMA alimentant le HSTX depuis la SRAM 520 Ko

Objetivos

El RP2350 no tiene ninguna GPU ni motor de visualización — pero posee un bloque único en su categoría: el HSTX (High-Speed Transmit), un transmisor digital solo de salida, de 8 pines, en DDR, citado a 300 Mb/s por pin (datasheet RP2350, §1.1 ; cifra reportada por Wikipedia RP2350). Combinado con los 520 KB de SRAM en 10 bancos y los 16 canales DMA, alimenta pantallas RGB pasivas, DACs R-2R, visualizadores paralelos — el dominio de pico-extras (scanvideo/audio, WIP) y de pico-playground. Este tutorial: comprender la cadena DMA→HSTX→pines y montar una demo scanvideo.

Material

Comandos completos

# 1) SDK + extras + playground côte à côte
git clone https://github.com/raspberrypi/pico-sdk.git
git clone https://github.com/raspberrypi/pico-extras.git
git clone https://github.com/raspberrypi/pico-playground.git
export PICO_SDK_PATH=$PWD/pico-sdk PICO_EXTRAS_PATH=$PWD/pico-extras

# 2) Les démos scanvideo du playground (dossier scanvideo)
cd pico-playground && mkdir build && cd build
cmake -DPICO_BOARD=pico2 ..
make -j$(nproc) scanvideo/hello_scanyuv   # exemple type

En cuanto a la API, la filosofía HSTX:

// Le HSTX lit la SRAM via DMA et émet en DDR sur 8 broches.
// Pseudo-squelette (API pico-extras WIP, vérifie l'en-tête hardware/hstx.h)
// - configurer le timing : front porch / sync / back porch par ligne
// - charger les pixels en SRAM (banque dédiée pour ne pas bloquer le CPU)
// - armer un DMA circulaire : buffer -> HSTX_DATA, déclenché par le timer vidéo
// - le CPU peut peindre le buffer suivant pendant la transmission : le
//   double buffering tient parce que le RP2350 a 520 Ko, pas 264 Ko.

Verificación esperada

Aparece una imagen animada en la pantalla RGB: el HSTX emite los píxeles continuamente, el DMA los reenvía desde la SRAM, y los dos núcleos (M33 o Hazard3 — el HSTX es un periférico, le da igual la arquitectura de la CPU) quedan libres para el renderizado. Mide la carga de memoria: un framebuffer de 320×240 en RGB565 = 150 KB, es decir, el 29 % de la SRAM — imposible en doble buffer en RP2040 (264 KB), cómodo en RP2350.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales