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

RP2350 (générique / cartes basées sur le 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

Objectifs

Le RP2350 n'a aucun GPU ni moteur d'affichage — mais il possède un bloc unique dans sa catégorie : le HSTX (High-Speed Transmit), un émetteur numérique output-only sur 8 broches, en DDR, cité à 300 Mb/s par broche (datasheet RP2350, §1.1 ; chiffre rapporté par Wikipedia RP2350). Combiné aux 520 Ko de SRAM en 10 banques et aux 16 canaux DMA, il alimente des écrans RGB passifs, des DAC R-2R, des afficheurs parallèles — le domaine d'pico-extras (scanvideo/audio, WIP) et de pico-playground. Ce tuto : comprendre la chaîne DMA→HSTX→broches et monter une démo scanvideo.

Matériel

Commandes complètes

# 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

Côté API, la philosophie 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.

Vérification attendue

Une image animée apparaît sur l'écran RGB : le HSTX crache les pixels en continu, le DMA les ressert depuis la SRAM, et les deux cœurs (M33 ou Hazard3 — le HSTX est un périphérique, il se moque de l'architecture CPU) restent libres pour le rendu. Mesure l'apport mémoire : un framebuffer 320×240 en RGB565 = 150 Ko, soit 29 % de la SRAM — impossible en double buffer sur RP2040 (264 Ko), confortable sur RP2350.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels