Réparation d'un PCB Revolution X (erreur CMOS U49)

Chaine Youtube de notre ami "Referent Tech" spécialisé dans la reparation des consoles NeoGeo et autres
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »





On m'a confié pour réparation 3 cartes du jeu d'arcade Revolution X.
Il s'agit de trois cartes identiques. Elles tournent normalement avec des pistolets et une carte additionnelle pour le son. Je ne pourrai donc pas les tester complètement.

Pour ceux qui ne connaîtraient pas Revolution X, c'est un jeu Midway de 1994, avec une grosse licence Aerosmith (j'adore), et donc avec une bande son qui envoie du bois!

Image

On apprend plein de choses dans ce jeu toujours de bon goût. Notamment qu'Helga n'aime pas les tatouages...

Image

A noter que si vous le souhaitez, vous pouvez essayer d'acheter le CD de la BO du jeu ou le poster 30 ans après sa sortie. Ca vaut certainement une petite fortune aujourd'hui, alors tentez le coup!

Image

Côté jeu, c'est du rail shooter avec du sang qui gicle et des lancers de CD tueurs. C'est sympa, mais ça a visuellementson âge. Avec de l'usage massif de sprite scaling qui pique. Ca rend sûrement mieux sur un CRT que sur un écran HD avec MAME :).
Aerosmith oblige, on a doit à des guitares et à des stripteaseuses.

Image

Et c'est un festival de belles couleurs qui pètent de de sprites zoomés.

Image

Bref, on verra tout ça quand ça marchera pour de vrai!
En attendant, voilà la tête d'un PCB du jeu:

Image

On note la place massive prise par les données (en bas à droite)! La première rangée en haut contient le programme, et le reste sont des données graphiques. Les musiques sont sur une autre carte, que je n'ai pas.
Malgré les différentes cartes, la présence de pistolets et la borne dédiée, cette carte dispose d'un connecteur JAMMA classique, ce qui va bien me faciliter la tâche!

Sur la carte qui nous intéresse pour le moment, on trouve un post it "CMOS U49". Il s'agit de l'erreur affichée au démarrage de la carte. On va voir ça..

Image

U49, c'est cette petite puce. Il s'agit d'un buffer bi-directionnel, et il y en a un sacré paquet sur la carte. Il s'agit, avec les bascules flip-flop, des puces les plus présentes.

Image

Quand on branche le PCB sur un écran LCD avec le scan converter du pauvre que j'ai intégré dans mon banc de test (une GBS8200), on a un souci de synchro parce que le PCB sort une fréquence improbable de 54Hz, qui n'est pas supportée.
Par contre, quand on la branche sur un écran CRT, on a bien une image.
En plus de moi qui prends la photo, on voit à l'écran les problèmes en rouge. A droite, on voit 2 puces en erreur. Il s'agit de 2 RAMs de palette. Les couleurs semblent pourtant correctes, on verra ça plus tard, ce n'est pas bloquant....

Image

Le reste des puces n'est pas testé, et on saute automatiquement sur l'écran d'après, avec la fameuse erreur CMOS U49. Oui, c'est pénible à lire parce que c'est écrit à l'envers, et il y a un beau reflet dans l'écran. Voilà ce qui arrive quand on travaille sur un PCB de jour. C'est pour ça que je ne le fais quasiment jamais (et aussi parce qu'en général, en journée, je bosse).

Image

Pour le reflet, on ne peut pas faire grand chose dans l'immédiat. Pour l'écran à l'envers, le problème vient du fait que le jeu se joue très probablement avec un miroir intercalé entre l'écan et la vitre de la borne. Heureusement, il y a un DIP switch pour activer ça!

Image

Hop, ça, c'est fait.

Image

Ca ne marche toujours pas, mais au moins, c'est à l'endroit.

Image

Je retire le U49 en question, sait-on jamais, des fois que le diagnostic soit utile...

Image

Je soude la puce sur un support CMS=>DIP pour la tester dans mon MiniPro...

Image

Le test ne passe pas. Soit la puce est morte, soit mes soudures sont mauvaises. La plaque est un peu trop petite pour souder de manière fiable, alors pas de panique.

Image

De toute manière, j'ai acheté une dizaine de puces de rechange, parce que j'ai eu une série de pannes sur l'une des deux autres cartes, et j'ai dû en remplacer quelques unes (buffers et bascules). On sait qu'elles sont mortes parce qu'elles ne bougent plus.

Image

Je soude élégamment une puce de remplacement. Oui, tant qu'on n'a pas nettoyé, on dirait du travail de cochon, mais c'est surtout que j'utilise du flux qui caramélise.

Image

Après remise sous tension, pas d'amélioration, si ce n'est peut-être le reflet de la fenêtre qui s'est un peu assombri.

Image

Maintenant que j'ai éliminé la piste proposée par le diagnostic, je commence à réfléchir un peu et à lister des pistes...
Vu qu'il semble y avoir un souci avec la SRAM de backup, je commence par... la trouver :).
C'est certainement une puce de RAM avec une pile pas loin, et il n'y en a qu'une!
Je sonde toutes les broches des bus à la recherche d'anomalies, mais je ne vois rien de spécial.

Je sonde ensuite les broches par deux. En rouge, la broche d'activation de la puce et en bleu, la broche d'écriture.

Image

Les signaux sont actifs à l'état bas (0V). On voit que la puce est activée 2 fois (en rouge) et qu'on a 2 écritures correspondantes (en bleu). Et quand je dis 2 fois, c'est que je n'en vois pas d'autres. La RAM est accédée uniquement au moment du test, soit une dizaines de secondes après la mise sous tension. C'est super pratique pour debugger!

Image

Je fais pareil entre la broche d'activation et la broche de lecture...

Image

Et j'observe qu'il n'y a aucune lecture de faite. La courbe d'activation étant la même que pour les écritures, il n'y a pas de grosse surprise. Si j'avais 3 sondes d'oscillo, on verrait qu'on a 2 écritures, et pas de lecture.

Image

Il pourrait y avoir un souci avec la partie qui contrôle les lectures et écritures, donc l'un des gros CPLD ou l'un des deux GAL présents sur la carte. Je préférerais que ce ne soit pas le cas.

Je vais étudier d'autres pistes et je garde ce souci dans un coin de ma tête.

Il est temps de sortir mon outil de conception préféré et de dresser un plan de la section qui nous intéresse => Paint.net.

Je vois que la puce custom pilote le bus d'adresses notamment via 2 bascules (latch) et 2 buffers, qui alimentent à leur tout 2 jeux de bascules / buffers avant d'arriver sur la palette RAM (en bas à gauche), elle-même alimentée pour une partie de ses lignes d'adresses par deux autres bascules.
Les deux bascules alimentent également en adesses la RAM de backup (BRAM, en haut à gauche).
La partie données, en orange, provient d'un autre buffer.
La grosse banque de DRAM ne nous intéresse pas ici. Il s'agit de la RAM vidéo.

Image

on a quand même un bon tronc commun entre la RAM de backup et les deux RAM de palette, qui remontent également en erreur lors du diagnostic.
Statistiquement, je dirais qu'il y a peut de chance que les 3 puces de RAM soient mortes.

Je commence donc à analyser les bascules en début de bus, et je trouve que les entrées en les sorties sont reliées entre elles. Du le coup, ça me semble idiot, et je ne pense pas à aller vérifier si c'est le cas sur l'une des deux autres cartes à ma disposition (luxe auquel je ne suis pas habitué :)). Il est peu probable que les 2 bascules aient cramé en même temps, mais sait-on jamais...

Image

J'entreprends donc de dessouder ces puces pour les tester. La photo est floue, mais je n'ai bu que de l'eau. A noter que ces cartes ont été produites à l'ère de la soudure sans plomb, avec une température de fusion proche de 230°C, là où l'étain plombé fond à 180°C. J'ajoute donc du flux et de l'étain avec plomb sur les pattes pour mélanger les alliages et baisser la température de fusion.

Image

Le MiniPro, pour son test, ne propose que 3 scenarios. Etant donné que je veux un peu plus de détails dans les tests, je me lance dans la mise en place du test de chacune des broches indépendamment.
Il faut à nouveau que je soude les puces retirées sur un support pour les tester. Résultat: les puces fonctionnent!

Image

Hop, j'en profite pour enlever aussi les buffers et tout tester. Tant que le fer est chaud...
On voit quand même que quelques pistes ont souffert. Le vernis est décoloré et certaines pistes ont préfité de mon nettoyage des pads à la tresse pour se revêtir d'une couche d'étain bienvenu.

Image

En y réfléchissant, le fait de relier les entrées et les sorties d'une bascule est plutôt malin. En jouant avec le broche d'activation des sorties (/CE), on peut placer ces puces sur un bus et leur faire retenir une valeur, puis l'exprimer ou basculer en haite impédence, le tout en utilisant ledit bus.
J'aime beaucoup (mais ça ne m'a pas fait gagner du temps).
Le beau flux que voilà...

Image

En remontant le bus, les prochains suspects sont les 2 bascules, ici:

Image

Je commence par sonder la broche d'horloge, qui commande les bascules.

Image

Je trouve un signal régulier et bien carré, mais un niveau de tension que je trouve un peu bas (2.8V, c'est écrit en haut).
Je ne suis pas certain qu'il soit suffisant pour piloter les bascules dans de bonnes conditions.

Image

Je consulte la doc des bascules en question, et il est indiqué une tension minimale nécessaire pour un niveau logique haut (VIH) de 2V. Pas de souci pour piloter ces bascules, donc. Et on reste bien dans la norme TTL, accessoirement.
Fausse alerte.

Image

Voilà les 2 bascules retirées non sans mal. Ici encore, j'ai mis de l'étain plombé sur les broches. Et s'agissant de composants traversants avec trous métallisés, l'ancien étain est présent sur les 2 faces de la carte (et dans le trou). C'est l'enfer à enlever. Je commence à la pompe, et je finis à l'air chaud.
Le résultat est sale, mais aucun pad n'a été arraché.
Un détail à peine perceptible est présent sur cette photo. On y reviendra plus loin ;).

Image

Une fois les bascules retirées, je les nettoie longuement des restes d'étain, je le teste dans le MiniPro, et elles fonctionnent!
Je mets donc en place des supports...

Image

Pour rigoler, je fais un test de la carte avec une bascule en moins..

Image

J'ai les mêmes erreurs, avec en plus une moitié de la banque de DRAM vidéo qui flanche.

Image

On dirait bien qu'elles fournissent aussi des adresses à ces puces de RAM!
Ce sont les 4 du haut. Ca ne se voit pas, là, mais je bouge mon doigt.

Image

Je commence à manquer d'options, alors je rebascule sur mes histoires de signaux de lecture et d'écriture sur la puce de BRAM. Et je tombe sur cette chouette puce MAX691.
Il s'agit d'une puce de supervision. Elle gère l'alimentation de la BRAM par la pile ou l'alim de la carte, la désactivation des accès à la BRAM en cas de coupure d'alimentation (j'ai couvert ce sujet avec un mixeur dans une vidéo de réparation de slot MVS), le watchdog, le reset initial, et l'alimentation.
En l'occurrence, le signal d'activation que je lisais plus haut provient de cette puce. Je vais comparer le signal entrant au signal sortant. Puisque la carte est alimentée, les deux signaux devraient être identiques.

Image

Et j'observe encore une fois mes deux activations. Et les deux signaux sont bien identiques (sur le plan, les broches 12 et 13).

Image

Ayant un éclair de génie (!) et la flemment de brancher laborieusement mon analyseur logique, je me dis que les signaux de lecture suivent potentiellement les signaux d'écriture...
- trop tard pour que je les voie à l'oscillo
- trop tôt pour que l'oscillo ait le temps de capturer l'événement
J'augmente donc bêtement la durée d'acquisition de l'oscillo et je refais la mesure de lecture potentielle sur activation de la puce...

Image

(j'ai pris le signal d'activation sur le MAX691 parce que c'est moins petit)

Et boom, on a bien des lectures qui se cachaient plus loin!
Pour bien faire, il faudrait coller un analyseur logique sur les broches de contrôle, d'adresse et de données de la puce pour voir ce qui est différent entre ce qu'on écrit dessus et ce qu'on lit.
Mais on analyseur à 8€ n'a que 8 lignes, donc on oublie (et pour en avoir 32, c'est plus de 32€, ce n'est pas 1€ la ligne).

Image

Bon, ça commence à sentir mauvais pour la puce de RAM, j'envisage de la remplacer (je ne sais pas par quoi).

Image

Une fois de plus, je commence par étamer les broches avec le l'étain plombé.
J'en profite pour refaire un test, au cas où j'aurais juste un problème de soudures cassées... mais non.

Image

Puis je retire la puce à l'air chaud. Il protège une barre de résistances qui traine pas loin avec du ruban Kapton qui n'en est probablement pas.

Image

Il était difficile de souder les buffers et bascules sur ce support, mais pour la RAM, c'est un enfer.

Image

Je fais un test avec un modèle générique 6164, et la RAM est en erreur. Bon, vu l'état de mes soudures, je ne me formalise pas.

Image

D'ailleus, si j'insiste un peu, j'obtiens ça:

Image

Dans les faits, j'ai eu un succès, et que deserreurs. Soit mes soudures sont incorrectes (ce dont je ne doute pas), soit la RAM a un fonctionnement imprévisible (ce dont je ne doute pas non plus au point où j'en suis rendu).

Je décide donc de remplacer la puce. Il me faut de la RAM de 64kb en 28 broches. Ca tombe bien, j'ai de la RAM 256kb en 28 broches que j'utilise pour les slots MVS!

Image

Quand on compare les brochages, on voit que les 2 modèles sont potentiellement compatibles:
- La RAM 256kb a 2 broches d'adresse en plus, A13 et A14.
- La broche NC n'est pas utilisée et correspond à la broche A14. Dans les faits, cette broche est reliée au reste du bus d'adresses, et seul le plan d'adressage interdit potentiellement d'utiliser une RAM de backup plus importante.
- La broche CE2 est reliée au VCC (du MAX691), et donc bloquée constamment à l'état haut. Elle correspond à la broche A13.

Image

Voilà la nouvelle puce de RAM en place...

Image

Et contre toute attente...
Ca ne marche toujours pas.

Image

Je vais m'attaquer au dernier suspect... Après m'être acharné sur le bus d'adresses, j'ai laissé de côté le bus de données. Celui-ci passe par le buffer U17 ci-dessous, qui a une sale tête avec de l'oxysation sur les pattes, et un condo qui a manifestement coulé sur la piste d'alimentation à côté de lui.

Image

On protèhge le plastique, et on vire la puce U17. Il reste des amas d'étain parce que j'ai ajouté de l'étain avec plomb (je cois que j'en ai parlé plus haut).

Image

Je sais que les broches du bas du buffer sont reliées aux broches de données la puce de BRAM. Les broches du haut sont donc pilotées par la carte.
Je profite du fait qu'il n'y ait plus de puce pour sonder ces broches du haut. Je devrais voir transiter les données en provenance de la RAM ou du CPU, et quasiment aucun état "haute impédence" imprévisible.

Image

Voilà ce que je peux observer sur chacune des 7 premières lignes: des données.

Image

Mais si je parle des 7 premières, c'est que sur le dernier pad..

Image

J'obtiens un magnifique n'importe quoi qui oscille n'importe comment. J'ai un état de haute impédence! Et haute impédence, ça veut dire au choix:
- qu'une puce est morte en amont (un CPLD ou le CPU, mais les chances pour que rien ne marche dans ce cas sont importantes)
- qu'une piste est coupée quelque part (et ça, pour le coup, c'est très probable!)

Image

La ligne en question est particulièrement moche.

Image

Ca parait cruel, mais près, difficile de dire le contraire (d'aileurs, il y a aussi un beau trou dans le PCB. Curieux, parce qu'on est SOUS une puce):

Image

"Un détail à peine perceptible est présent sur cette photo" => il est temps de retourner voir. En fait, j'ai suivi la ligne au multimètre sans trouver de coupure. Elle se situe au niveau du pad de l'une des bascules que j'ai retirées tout à l'heure. J'ai dû repasser les vidéos pour distinguer quelque chose, mais c'est franchement discret.
Ne sachant pas si c'est moi qui avait arraché un truc en enlevant la puce, j'ai mis un patch vite fait entre la broche du buffer et celle de la bascule. Au passage, on a un mélange des genres entre le bus d'adresses et le bus de données que je ne m'explique pas.

Image

Et comme par magie, les 2 puces de RAM de palette (U67 et U77) sont maintenant correctes, et les test de toutes les ROM s'enchaînent.
On dirait que ce n'est pas moi qui avait arraché un pad!

Image

On n'a plus le message d'erreur de sécurité, ni celui de la BRAM.
Enfin si, mais un autre :).

Image
Cette erreur, je la veux bien. Elle est dûe au fait que les données de calibration est pistolets ne sont pas présentes dans la BRAM. Etant donné qu'on vient de la changer et qu'il n'y a pas de pile, ce n'est pas une surprise.

On enchaîne ensuite sur l'écran de calibration des pistolets. Et là, je ne peux plus faire grand chose (encore que j'ai envie de tenter des trucs).

Image

La suite, c'est:
- De dessouder à nouveau U17 pour revernir les pistes (mais pour ça, il faut que je reçoive le vernis que j'ai commandé).
- De remplacer tous les condensateurs électrolytiques de la carte avant qu'ils aient bouffé toutes les pistes. (mais pour ça, il faut que j'en commande. Et vu les frais de port, je vais attendre de voir si j'ai autre chose à acheter chez Farnell).
Modifié en dernier par Bouz le jeu. 6 oct. 2022 21:38, modifié 1 fois.
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3625
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Xrider »

Salut bouz,

Excellent diag, et surtout excellente logique pour arriver a localiser le problème !

Pour en revenir a cette photo :

Image

Ce n'est pas la première fois que je découvre aussi des pistes HS du a de la corrosion (leack de capa, pcb de mauvaise qualité...)
Mais sous un composant, c'est assez rare, le pcb a eu de la chance de te trouver :super:
Probablement un leack du C16


Félicitations bouz :merci:
Avatar du membre
dadou
Contributeur Lv1
Contributeur Lv1
Messages : 255
Enregistré le : lun. 10 janv. 2022 17:26
Localisation : Israel

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par dadou »

Excellent! j'adore lire ce genre de sujet avec les explications, on est en plein suspens!

Bravo pour la réparation :winner:
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

Merci :). Il reste du boulot pour mettre le PCB un peu plus en sécurité.
Pour le remplacement des condensateurs, j'aimerais utiliser un modèle identique, CMS alu, mais je n'ai jamais essayé d'en souder.
Des conseils? Ca se fait au fer à souder? J'étame le PCB et j'y vais à l'air chaud? Pour moi, air chaud et condensateurs électrolytiques, ça ne va pas bien ensemble!
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

S'il y a des curieux, en attendant de recevoir la suite: un indice sur ce que je suis en train de bricoler...

Image
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

Vu que le trackball de mon Atari ST est vraissemblablement à moitié mort, et que la souris l'est complètement, je me suis rabattu sur un joystick... qui ne marchait pas non plus. Du moins jusqu'à ce que je lui change un microswitch.

Image

Une meilleure idée de ce que je bricole (quel suspense...)

Image
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3625
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Xrider »

Humm… une adaptation de stick, mais pourquoi ?
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

Xrider a écrit : mar. 23 août 2022 12:35 Humm… une adaptation de stick, mais pourquoi ?
Alors à la base, l'idée était de pouvoir tester le jeu pour de vrai. Parce que devoir se contenter du menu de calibration au démarrage est un peu limitant pour s'assurer que tout fonctionne ;). Accessoirement, l'un des PCB a un problème pendant le jeu.

Il s'agit de guns fixés au meuble d'arcade, avec des potentiomètres sur les 2 axes. J'ai fait des tests avec des potentiomètres branchés sur la carte, et ça fonctionnait.
L'étape suivante, vu que je nevais de récupérer mon Atari ST, a été de faire marcher son trackball (codage à quadrature) en remplacement des guns. Ca marchait, mais le trackball est super vieux et il y a des soucis d'ajustement des roues codeuses. La souris ne fonctionnant carrément plus, je suis passé au joystick (principalement parce que j'avais déjà fait un connecteur DB9 pour ma carte, autant en profiter).

L'étape finale (et on en est là), a été de câbler mon montage directement sur le JAMMA pour diriger les viseurs avec les sticks et tirer avec les boutons du panel de la borne. Et là, je pense que je suis au top pour faire mes tests. Je vous montrerai ça!
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3625
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Xrider »

Ah, c’est une super idée !
Impatient de voir la suite !

Ça va donner des idées pour tous les jeux de guns !
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

En tout cas, ça marche avec les guns à potar. On doit pouvoir faire un truc ppur les guns optiques sans trop de mal, mais ça n'a rien à voir :).
Voilà le kit de conversion à l'oeuvre. Sachant que je n'ai pas la sound board du jeu...

Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3625
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Xrider »

C'est TOP !!!
Une idée de génie !

Felicitations Aurélien
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1034
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Réparation d'un PCB Revolution X (erreur CMOS U49)

Message par Bouz »

Merci! En tout cas, ça m'aide pour tester les PCB.
Pour une raison qui m'échappe, mon téléphone a filmé en miroir, d'où les sticks du mauvais côté!
Répondre

Retourner vers « Aurélien / Bouz "Technique" »