Salut,
Merci pour vos commentaires et encouragements
!
yo, tu testera le tube de sushy et tu me donnera ton retour
Oui, je suis d'accord sur le fait que ce n'est pas encore tout à fait ça. J'en ai touché un mot à Sushy
. Je ferai un test comparatif prochainement.
Oui il faut la Fixer
Applique du vernis acrylique (lavable à l'eau chaude) bombe ou flacon
et n'hésite pas a saturer de vernis au point de rendre la couche de peinture souple
(N'hésite pas a charger)
pour pouvoir plaquer ce qui s'est décollé (tamponner)
et oui tu peux en mettre un peu de vernis sous la cloque
je te conseille l'excellent article paru sur mon site au sujet de la résurrection d'une glace de flipper
WIP BACKGLASS SILVERBALL
Merci pour ces explications !
Oui, à présent je me rappelle avoir lu ce post sur ton site ! Je le relirai avant de me lancer
.
Comme expliqué juste avant, le PCB est donc en panne (quelle surprise non ??
). Mais avant d'en arriver à cette conclusion, j'ai bien sûr procédé aux vérifications d'usage :
- débrancher l'alim et le PCB
- mise sous tension
- mesure des tensions en sortie d'alim
Premières conclusions :
- à la mise sous tension le marquee s'illumine
- le tube fluorescent qui illumine le ciel et la lune s'allume lui aussi
- le cul du tube rougeoie
- les tensions continues en sorties d'alim sont bonnes
C'est déjà pas mal
. Ne reste plus qu'à rebrancher le PCB alors...
Premier essai et le verdict tombe sans appel : le PCB ne fonctionne pas. J'ai à l'écran des bandes horizontales de pixels figés (pas de photo
). Le point positif me direz-vous, c'est que l'écran fonctionne ! Yeah !! Quand on sait que certaines pièces pour ces vieux écrans noirs et blancs sont introuvables, c'est déjà une bonne chose.
Un point qui participa au fait que ce WIP a été particulièrement lent, c'est qu'au mois de mai 2015, en discutant avec aje_fr, il me dit « Ah mais j'ai un PCB Space Invaders original, et depuis que je l'ai réparé, il fonctionne ! Je peux te le prêter si tu veux
».
Wouha, quelle aubaine !! J'allais pouvoir jouer à la borne et la rendre provisoirement fonctionnelle sans rien faire
!
Si tôt proposé, si tôt fait
. Aje m'a prêté son PCB, et il fonctionnait quasi complètement !
Seuls certains bruitages étaient absents ou défaillants. Du coup, j'ai utilisé ainsi durant des mois (années...) le pcb d'aje, sans vraiment me faire violence pour réparer le mien !...
En novembre 2015, je me suis tout de même mis au chevet du malade.
Parce que je ne trouve jamais très pratique de dépanner un PCB à même la borne, j'ai bricolé un connecteur encartable pour pouvoir le dépanner dans mon petit atelier. Il me permet d'alimenter le PCB en +5V, +12V et -5V, et de récupérer le signal vidéo composite que j'envoie vers un moniteur N&B.
Je peux à présent alimenter le PCB, et voir le résultat sur le moniteur :
C'est à dire la même chose que ce que j'avais sur la borne (mais tourné de 90° puisque mon écran ici n'est pas en « tate » comme sur la borne
).
Après cette mise en place, je me souviens avoir programmé des EPROM. Avoir modifié les straps pour que le PCB accepte des EPROM 2716 (mais je crois ne l'avoir pas fait comme il faut, le schéma Midway étant confus, et je n'avais pas fait de recherches sur le net...).
Puis je pense qu'il y eu une sorte de trou d'air entre novembre 2015 et mai 2017, date à laquelle je me suis à nouveau penché sur la question !
Une particularité de la borne Space Invaders (et d'autres bornes Midway de l'époque), c'est que le circuit qui effectue le RESET du PCB à la mise sous tension n'est pas intégré au PCB comme c'est généralement le cas, mais situé sur la carte d'alim ! Pas très pratique car cela interdit le remplacement par une alim lambda (à laquelle il manquerait le fameux RESET !). Dans mon cas, j'ai fait simple : j'ai utilisé une alim arcade classique, et j'ai ajouté un bouton de RESET manuel. Ainsi, après la mise sous tension, il me suffit d'appuyer sur le bouton pour reseter le PCB. Et c'est pratique car cela me permet de reseter à la demande !
Ce signal de RESET envoyé par l'alimentation est « au repos » au niveau bas (masse ou GND) et passe au niveau haut (+5V) une fraction de seconde à la mise sous tension. En plus de mon bouton poussoir, il faut donc mette une résistance de pull-down qui va fixer le niveau à la masse en l'absence de pression sur le bouton poussoir.
Si j'appuie sur le bouton RESET, c'est absolument sans effet. Visiblement le processeur est incapable d'initialiser quoi que ce soit du PCB. Mais le CPU fonctionne-t-il seulement ?
En préambule de ce qui suit, rappelons que Space Invaders est animé par un microprocesseur 8080 de chez Intel. Ce CPU n'est pas génial en comparaison de ce qui s'est fait après : nécessité de circuits Intel annexes (pour l'horloge, les drivers de bus, ...) et a besoin de 3 tensions d'alimentation (+5, +12 et -5V !
). Mais n'oublions pas qu'il est sorti en 1975, époque où les microprocesseurs 8 bits ne couraient pas les rues
.
Autre explication préliminaire pour que vous compreniez mon exposé : un PCB de Space Invaders (et d'autres jeu Bally Midway de l'époque) est constitué de deux cartes :
- la carte mère qui contient le CPU, les RAM et ROM, gestion vidéo, etc.
- une carte fille, enfichée perpendiculairement, qui génère les sons, gère le watchdog + RESET, et dans le cas de SI, des registres à décalage
En présence d'un PCB qui ne semble pas du tout booter, je pense qu'on peut commencer par observer à l'oscilloscope les différents signaux vitaux du CPU qui sont ici :
- ses 3 alimentations
- le RESET
- les signaux d'horloge
- l'activité ou non du WR (indique si le CPU écrit en mémoire)
Ici le RESET ne fonctionnait pas.
Détaillons par conséquent le circuit RESET d'un PCB de Space Invaders qui se trouve sur la carte fille :
En 1) nous avons le signal de RESET généré à la mise sous tension par la carte d'alimentation (signal que j'ai moi remplacé par un bouton poussoir). Actif au niveau haut, il passe à travers une porte NON (7404) pour ressortir inversé : il est à présent actif au niveau bas.
En l'état, ce signal va reseter tout un tas de portes logiques de la carte fille (point 3))
Et il est également appliqué au « watchdog ».
Un watchdog (chien de garde en anglais) est un dispositif dont le but est de remettre sur ses rails un système qui aurait planté. Pour comprendre le principe d'un watchdog, on peut faire l'analogie suivante :
- on ouvre un robinet qu'on laisse couler en permanence pour remplir un seau
- le programme qui s'exécute s'engage à venir régulièrement vider le seau pour qu'il ne déborde pas
- si le seau déborde, cela signifie que le programme est planté ou bloqué quelque part et n'a pas pu remplir sa tâche de vidage de seau à temps => ce n'est pas normal, on fait donc un RESET pour relancer le système
Ici le robinet qui coule en permanence, c'est le signal 60 Hz. Il est appliqué à deux compteurs 4 bits montés en cascade : les 74161 situés en E2 et D2.
Un compteur 74161 ça a cette tête :
Les entrées A B C D servent à fixer une valeur initiale au compteur. CLK reçoit un signal carré, et à chaque front montant, le compteur va s'incrémenter d'une unité, valeur qu'on retrouve sur les sorties Qa Qb Qc Qd. La broche CLR permet elle de remettre le compteur à 0. Le comptage n'a lieu que si les 2 entrées ENT et ENP sont à 1.
Un compteur binaire 4 bits, ça compte comme ça :
0000
0001
0010
0011
0100
0101
...
1101
1110
1111
Une fois que le compteur a atteint la valeur maximale (15 ou 1111 en binaire), la broche de retenue (Carry en anglais) passe à 1 pour indiquer qu'on ne peut compter au delà.
Pour en revenir au montage qui nous intéresse, on comprend à présent que les deux compteurs sont initialisés à 15 (1111) par le RESET de l'alimentation. Les broches de Carry passent donc à 1. C'est cette retenue qui déclenche une impulsion qui va servir de RESET initial à la carte CPU, matérialisé sur le schéma par le 5).
Notons que sur un 8080 et d'autres proc Intel, le RESET est actif au niveau haut, alors que sur la majorité des autres fabricants de processeurs c'est au niveau bas (Z80, 6502, 6800, 6809, 68000, etc.).
Ce RESET initial reçu par le 8080 va provoquer le début de l'exécution du code contenu dans les EPROM à l'adresse 0000H. Et s'il veut continuer à exécuter tranquillement son code, il doit venir à intervalle régulier remettre les compteurs du watchdog à 0 (vider le seau) en accédant au CLR des compteurs via le PORT04, identifié plus haut sur mon schéma par le point 4) (port 4 qui en réalité est le port 6, c'est la conclusion à laquelle nous étions parvenus en 2013 lors du WIP de Spectro
). L'intervalle maximum dont dispose le CPU pour vider le seau est 16 * 16 * 1 60ème de seconde, soit 4,26 sec
).
Après la théorie, qu'est ce que j'observe dans la pratique ?
J'ai commencé par regarder ce qui se passait sur les 2 compteurs avec l'analyseur logique.
J'ai constaté que la sortie de la porte NON, le 7404 en F3 était toujours à 0 !
Je l'ai dessoudé,
Testé => défaillant !
Et remplacé (en le mettant sur support).
Ensuite je ne me souviens pas bien
... Il me semble que la sortie de la même porte n'était toujours pas bonne. J'avais l'impression qu'un autre des circuits auxquels elle était reliée la tirait vers un niveau intermédiaire (ni haut ni bas).
Je sais que cela m'a amené à dessouder pas mal d'autres portes TTL du voisinage sur la carte fille.
Mais je n'arrive pas à me souvenir si j'ai trouvé un coupable, ou si je m'étais simplement fourvoyé...
Toujours est-il qu'à la mi-mai 2017, le RESET était OK, me permettant de poursuivre les recherches
.
Bon, remplir 4 pages A4 pour parler simplement d'un RESET, il va falloir que je change de méthode !
La suite sera moins didactique !
Merci de m'avoir lu jusqu'au bout...
A+