J'utilise actuellement une version simplifiée du générateur vidéo décrit par Marcello Maggi, il permet de générer simplement 4 mires différentes en 15 kHz entrelacé : barres colorées, quadrillage, points ainsi qu'une image entièrement blanche :
Le dossier complet ou les fichiers isolés du générateur vidéo sont disponibles à partir de plusieurs sites sur le net, il suffit de faire une recherche avec les mots clef "Marcello Maggi" et "video pattern generator".
A défaut voici le dossier pdf original sauvegardé ici sur le serveur Gamoover :
http://www.gamoover.net/gc339/VidPatGen.pdf
Le générateur réalisé à partir de cette description :
Seul le pic 16F84 avec le programme original a été conservé, l'encodeur PAL inutile a été remplacé par un circuit intégré genre 26LS31 qui bufferise la synchro et les signaux RVB, ce qui me permet d'avoir deux sorties pour chaque signal : une normale (
positive ) et la deuxième inversée (
négative ).
Les deux switches Secme permettent de choisir une des 4 mires possibles.
Le problème est que ce générateur ne délivre que du 15 kHz et qu'il faudrait pouvoir générer les mêmes mires en 24 et en 31 kHz pour pouvoir tester les moniteurs multifréquences.
De plus la 4
ème mire, celle affichant un écran uniformément blanc, n'est pas d'une très grande utilité. Il serait préférable de la remplacer par une mire alternant images ou larges bandes noires et blanches pour vérifier la stabilité de la THT :
En effet, une image noire demande aucun courant au bloc THT alors qu'une image uniformément blanche lui en soutire un maximum. Si le bloc THT est sous dimensionné ou mal en point, la tension s'affaissera avec le courant délivré, les électrons seront alors moins accélérés et seront donc plus facilement déviés par les bobinages du yoke, l'image affichée augmentera de taille et les zones blanches seront moins lumineuses.
L'objet de ce wip est de réaliser un générateur vidéo capable de délivrer les 3 mires de base plus la mire alternant zones blanches et noires et ceci aux 3 fréquences utilisées en arcade, 15, 24 et 31 kHz.
Le document de départ sera ce tableau extrait du "Service Manual" du moniteur MS-2931 donnant les timings des différents signaux vidéo, les trames sont toutes identiques, pas de trames paires et impaires car il n'y a pas d'entrelacement:
Seules les trois premières lignes horizontales du tableau sont utiles car elles concernent les signaux vidéo issus de systèmes Sega, ils serviront donc de référence pour l'élaboration de ce générateur.
Les 3 dernières lignes indiquent les timings correspondant à la taille d'image maximum que ce moniteur peut afficher.
Chaque ligne comporte deux cellules dans certaines colonnes verticales :
- Les cellules du haut concerne la ligne. Elles indiquent la durée de l'impulsion de synchronisation ligne (Sync ), celle du contenu correspondant aux pixels affichés (Video ) avec son positionnement dans la ligne (B.P. pour Back Porch ), le tout exprimé en microsecondes.
- Les cellules du bas concerne la trame. Elles délivrent la durée de l'impulsion de synchronisation (Sync ), la taille de l'image affichée (Video )avec son positionnement dans la trame (B.P.), le tout exprimé en nombre de lignes.
Ainsi pour la première ligne du tableau décrivant un signal à 15 kHz :
- L'impulsion de synchronisation ligne dure 4,75 µs, suivie 6,45 µs après par 49,17 µs du contenu à afficher. La ligne dure au total 63,56 µs et il reste donc 63,56 - 4,75 - 6,45 - 49,17 soit 3,19 µs entre la fin du contenu affiché et le début de l'impulsion ligne suivante.
- L'impulsion de synchronisation trame dure 3 lignes, suivie 23 lignes vides après par 224 lignes de l'image à afficher. La trame dure au total 263 lignes et il reste donc 263 - 3 - 23 - 224 soit 13 lignes vides entre la fin de l'image affichée et le début de l'impulsion trame suivante
Les timings du signal vidéo à 15 kHz délivré par le précédent générateur étaient basés sur la durée des instructions du programme exécuté par le PIC 16F84 quitte à ajouter des instructions "nop" inopérantes pour ajuster les durées.
Ici les timings des lignes sont donnés à 0,01 µs près soit 10 ns ce qui correspondrait à une fréquence d'horloge de 100 Mhz pour un micro-contrôleur capable d'exécuter une instruction par cycle.
Le PIC16F84 du précédent générateur en est bien incapable avec sa plus grande fréquence d'horloge à 20 MHz, c'est pourquoi un SX28AC Scenix/Parallax/Ubicom lui sera substitué.
Ce micro-contrôleur SX28, en mode turbo, est capable d'exécuter une instruction par cycle d'horloge. Un SX28AC de base fonctionne parfaitement à une fréquence d'horloge de 50 MHz, certains exemplaires triés fonctionnent à 75 MHz voir même 100 MHz.
Avec un SX28AC de série cadencé à 50 MHz il sera donc possible d'exécuter une instruction toutes les 20 ns et ainsi de coller à ± 10 ns près au timing des signaux d'une ligne.
![](http://gamoovernet.pixhotel.fr/pics_gamoovernet690px/20130126213412-gc339-SX28AC.gif)
Le brochage du SX28AC avec son boîtier oscillateur externe.
20 ports d'E/S sont disponibles : 4 pour le port RA, 8 pour les ports RB et RC.
Le timing des signaux à 15 kHz sous forme graphique, page I-5 du "Service Manual" du moniteur MS-2931 :
Les quatre intervalles de temps exprimés en µs et recalculés en pas de 20 ns :
- La synchronisation horizontale : 4,75 µs soit 4750 ns donc 237,5 pas.
- Le palier de suppression arrière (back porch ): 6,45 µs donc 322,5 pas.
- Le contenu à afficher : 49,17 µs donc 2458,5 pas.
- Le palier de suppression avant (front porch ): 3,19 µs donc 159,5 pas.
Soit un total de 3178 pas de 20 ns pour une ligne complète. Un demi pas correspond en fait à 10 ns
Comme un pas correspondra à un cycle du SX28AC, chaque intervalle de temps doit être un nombre entier et il est préférable d'arrondir au nombre de pas immédiatement supérieur les intervalles de temps les plus courts , quitte à minorer les intervalles les plus longs, ainsi donc :
- De 237,5 pas la synchronisation sera arrondie à 238.
- De 322,5 pas le palier arrière sera arrondi à 323.
- De 159,5 pas le palier avant sera arrondi à 160.
- Il reste donc 3178 - (238 + 323 + 160) pas pour le contenu à afficher, soit 2457 pas.
Hors 2457 n'est pas divisible par 8, pourquoi par 8? Par ce que la mire à barre colorée comporte 8 barres. Ce qui ferait 307,125 pour chaque barre, si l'on arrondi à 307 pas par barre le total passe à 2456 pas et il faut soit augmenter d'un pas le palier avant soit le faire pour la dernière barre. En réalité cela n'a aucune importance pour cette mire car le palier avant est confondu avec la dernière barre puisque celle ci est de couleur noire :
Comme on peut le voir sur ce dessin représentant les 3 signaux RVB d'une mire à barre colorée, ces signaux ont une amplitude nulle quand la dernière barre, la noire, est affichée. Elle est donc au même niveau que celui de l'intervalle de temps séparant cette barre de l'impulsion de synchronisation, autrement dit elle est confondue avec le palier de suppression avant.
Le timing des signaux à 24 kHz, moitié supérieure de la page I-6 du "Service Manual" du moniteur MS-2931 :
Les quatre intervalles de temps exprimés en µs et recalculés en pas de 20 ns :
- La synchronisation horizontale : 3,00 µs donc 150 pas.
- Le palier de suppression arrière (back porch ): 4,44 µs donc 222 pas.
- Le contenu à afficher : 30,69 µs donc 1534,5 pas.
- Le palier de suppression avant (front porch ): 2,87 µs donc 143,5 pas.
Soit un total de 2050 pas de 20 ns pour une ligne complète.
Le nombre entier 1534 n'est pas divisible par 8, le plus proche multiple étant de 1536. En portant à 192 pas (1536
÷ 8 = 192) l'intervalle de temps correspondant à chaque barre colorée, le palier de suppression avant devra alors être raboté de 1,5 pas soit 30 ns, ce qui n'est pas un problème puisque la dernière barre est confondue avec le palier de suppression avant.
Les intervalles de temps correspondant à l'impulsion de synchronisation ligne et au palier de suppression arrière restent inchangés puisque ce sont déjà des nombres entiers de pas, ainsi donc :
- L'impulsion de synchronisation reste inchangée à 150 pas.
- Le palier arrière reste inchangé à 222.
- Le contenu à afficher est modifié à 8 × 172 soit 1536 pas.
- Le palier avant est minoré de 1,5 pas, sa nouvelle valeur est de 142 pas soit 2,84 µs au lieu de 2,87 µs, ce qui représente une erreur de 1%.
Le timing des signaux à 31 kHz, moitié inférieure de la page I-6 du "Service Manual" du moniteur MS-2931 :
Les quatre intervalles de temps exprimés en µs et recalculés en pas de 20 ns :
- La synchronisation horizontale : 3,58 µs donc 179 pas.
- Le palier de suppression arrière (back porch ): 1,75 µs donc 87,5 pas.
- Le contenu à afficher : 25,92 µs donc 1296 pas.
- Le palier de suppression avant (front porch ): 0,33 µs donc 16,5 pas.
Soit un total de 1579 pas de 20 ns pour une ligne complète.
Le nombre entier 1296 est un multiple de 8, (1296
÷ 8 = 162), il n'y a rien à retoucher. Par contre aucune durée des paliers de suppression ne correspond à un nombre entier et comme il est préférable de majorer le nombre le plus faible (
16,5 pour le palier avant ) et de minorer le plus grand (
87,5 pour le palier arrière ), cela aura pour effet négligeable de recentrer l'image affichée de 0,5 %
÷ 1296 soit 0,26
‰vers la gauche. Ainsi donc :
- L'impulsion de synchronisation reste inchangée à 179 pas.
- Le palier arrière est tronqué de 10 ns, sa nouvelle valeur est de 87 pas au lieu de 87,5.
- Le contenu à afficher est reste inchangé, 8 × 162 soit 1296 pas.
- Le palier avant est allongé de 10 ns, sa nouvelle valeur est de 17 pas au lieu de 16,5.
Le futur générateur en chantier :
Le circuit prépercé remplace le couvercle d'un boîtier de 120
× 75
× 55. Le boîtier du générateur précédent était plus petit puisqu'il ne mesurait que 90
× 60
× 40.
Pour l'instant ne sont implantés que :
- Dans le coin supérieur gauche : le jack pour connecter le bloc secteur de l'alimentation extérieure
- Au milieu toujours en haut, le régulateur 5 volts avec son radiateur.
- En dessous à gauche, le module oscillateur 50 MHz récupéré sur une épave.
- Toujours en dessous et à droite, le micro-contrôleur SX28AC Parallax.
Seront implantés par la suite :
- Une embase HD-15 femelle pour sortir les signaux vidéo vers le moniteur en test.
- Une batterie de 4 dip-switches, 2 pour choisir la mire et 2 autres pour la fréquence.
- ...