Raspberry Pi 5 prend désormais en charge la vidéo entrelacée
Le Raspberry Pi 5 est une grande étape de la puissance de traitement, mais il manquait de prise en charge du mode de sortie vidéo entrelacé présent sur les modèles antérieurs. Heureusement, cela a maintenant été corrigé.
À l'origine, l'interface parallèle d'affichage (DPI) du Raspberry PI 5 n'a pas pu gérer ce type de vidéo. Il n'a donc pas pu envoyer des signaux RVB pleine résolution aux TV CRT, ce qui est important pour les personnes qui souhaitent les utiliser pour les jeux ou les médias rétro. Cependant, une récente mise à jour logicielle a résolu ce problème, permettant au Raspberry Pi 5 de produire maintenant une vidéo entrelacée.
La partie principale de la solution impliquée à l'aide du bloc d'entrée / sortie programmable de Raspberry Pi (PIO), qui se trouve également dans les microcontrôleurs RP2040 et RP2350. La capacité du PIO à créer des signaux en temps réel a été essentielle pour surmonter les problèmes liés à la production de vidéos interlacées.
Étant donné que la vidéo entrelacée n'était pas prise en charge, l'équipe Raspberry Pi a dû apporter trois changements de logiciels importants. Tout d'abord, l'équipe a ajusté le DPI pour sortir des données de champ (soit les lignes uniques ou impairs d'un cadre) au lieu de cadres complets. L'équipe l'a fait en modifiant une adresse et en doublant la foulée de ligne dans les paramètres DPI. Une interruption pour alterner entre les champs pair et impairs à une vitesse de 50 ou 60 fois par seconde a également été mis en place.
Kit de démarrage de Canakit Raspberry Pi 5
L'équipe Raspberry Pi devait effectuer certains ajustements de synchronisation pour s'assurer que les champs ont été organisés correctement. Ils l'ont fait en modifiant les paramètres du périphérique DPI au besoin, en ajoutant une ligne vide supplémentaire après chaque champ supérieur et avant chaque champ inférieur. Ce réglage minutieux de la synchronisation était essentiel pour afficher correctement le signal entrelacé.
Le troisième et le plus difficile défi a été de créer les bonnes impulsions de synchronisation. Le DPI du RP1 ne peut pas produire des impulsions de synchronisation verticale (VSYNC) qui commencent au milieu d'une ligne, ce qui est nécessaire pour la vidéo entrelacée. Pour y aborder, l'équipe a utilisé pleinement les fonctionnalités du PIO. Le PIO garde un œil sur les signaux de synchronisation horizontale du DPI (HSYNC) et de données (DE).
L'équipe a consacré deux des quatre machines d'État du PIO à cette tâche. On fonctionne comme une minuterie qui génère des interruptions au début et au milieu de chaque ligne, tandis que l'autre détecte lorsque l'intervalle de bloking vertical démarre, compte les demi-lignes pour établir le moment où l'impulsion VSYNC devrait être et vérifie que la phase de champ correcte est utilisée avec le signal DE.
Bien que la solution fonctionne bien, il y a certaines limites à penser. Le signal DE nécessite une sortie sur GPIO1, peu importe comment il est utilisé. De plus, le PIO ne fonctionne pas en synchronisation avec l'horloge DPI, ce qui peut entraîner une variation de synchronisation jusqu'à environ cinq nanosecondes dans la sortie VSYNC. Cela semble petit et ne serait pas un problème pour une télévision standard, mais sans surprise, ce serait un problème à des résolutions plus élevées. Le correctif de synchronisation prend également beaucoup de mémoire d'instructions, il empêche donc le PIO d'être utilisé pour d'autres tâches en même temps.
Pour que cela fonctionne, vous aurez besoin de certaines configurations matérielles et logicielles. Vous aurez besoin d'un Raspberry Pi 5, d'un chapeau et d'un moniteur VGA qui fonctionne à un taux de rafraîchissement de 50 Hz. Côté logiciel, assurez-vous de mettre à jour la dernière version de Raspberry Pi OS. Par défaut, la configuration utilise GPIO0 pour DPICLK et GPIO1 pour DE, ce qui affecte l'utilisation de I2C / DDC sur ces broches. Si vous avez d'autres chapeaux, vous devrez peut-être créer des superpositions personnalisées pour utiliser la sortie de GPIO1 en toute sécurité.
Le Raspberry Pi 5 a ajouté la prise en charge de la synchronisation composite, et la plupart des chapeaux de SCART existants ont déjà les circuits nécessaires pour générer une synchronisation composite, mais le PIO de Raspberry Pi peut également créer ce signal. Pour garder le logiciel simple, cette fonctionnalité n'est pas incluse dans le pilote principal; Au lieu de cela, il nécessite un programme PIO distinct et éventuellement des modifications matérielles.