Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?

Connexion avec identifiant, mot de passe et durée de la session

 
avancée



Vendredi 25 Juillet 2014, 08:43:54
GamooverForums " Workshop"Video & AudioEcrans et platines[WIP 90%] Borne vectorielle : Sega Space Ship
Pages: 1 2 3 4 [5] 6 7 8 9 10 ... 14
Imprimer
Auteur Fil de discussion: [WIP 90%] Borne vectorielle : Sega Space Ship  (Lu 49862 fois)
gc339
Hardcore Gamer
*
Hors ligne Hors ligne

Messages: 1933

Localisation:
Lyon



Voir le profil
« Répondre #64 le: Samedi 09 Janvier 2010, 09:56:25 »

Bonjour.

Au passage, est-ce que quelqu'un connait un genre de "catalogue" des composants TTL 74xxx ?
Je recherche un document PDF présentant le résumé du datasheet de tous les 74xxx, à raison par exemple d'un composant par page.
Je n'ai besoin que du brochage et de la description résumée du composant (table de vérité, etc...)

Ce qu'il te faut c'est une bible imprimée par le meilleur éditeur en la matière :


C'est un document papier qui rassemble tous les TTL produits par cette marque, il y a toutes les informations dont tu as besoin.
Tu peux en trouver sur le site d'enchères mondialement connu.
Pr√©f√®res une √©dition des ann√©es 80..85 √† une √©dition plus vieille : ces derni√®res ont l'√©paisseur d'un dictionnaire car elles sont moins condens√©es et il y a moins de type de bo√ģtiers, surtout ceux num√©rot√©s √† partir de 200 comme le 74244.
Celle que j'ai prise en photo est une édition de 80 et elle pèse bien son poids ...

A+
« Dernière édition: Samedi 09 Janvier 2010, 10:12:03 par gc339 » Journalisée

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard


AsPiC
J'aime tripoter un torse velu...et le chorizo !
Admin
*****
Hors ligne Hors ligne

Messages: 5785

Localisation:
Les Herbiers (85)


Present pour Koh Lanta Retrogaming Party 2069 !


Voir le profil WWW
« Répondre #65 le: Samedi 09 Janvier 2010, 12:19:08 »

Lut' tout d'abord bravo pour ton travail Smiley

Je ne sais pas si cela peux t'aider mais je viens de voir que arcadechips propose des ROM 6331 a la vente. Voici le liens au cas ou cela pourrai te dépanner :
http://www.arcadechips.com/product_info.php?products_id=64&osCsid=5272ddcda4fc1e08d25d9555afbbcf02

 joyeux
Journalisée

Recherche tout √©l√©ment de Jeutel Galaktron      "AsPiC c'est : no WIP but just RIP" - kos71 2014ÔĽŅ
gc339
Hardcore Gamer
*
Hors ligne Hors ligne

Messages: 1933

Localisation:
Lyon



Voir le profil
« Répondre #66 le: Samedi 09 Janvier 2010, 14:50:49 »

Bonjour.

De mon point de vue, je dirais que cette PROM est malade. Je ne pense pas qu'il soit normal que des bits du bus de données bagottent sur certaines transitions du bus d'adresse, alors que ces transitions n'affectent pas les valeurs à lire d'après le contenu de la PROM.
N'ayant pas un 2e PCB qui fonctionne, je ne peux pas tester les PROM accusées d'être malades sur un PCB témoin.
N'ayant pas la spécification technique détaillée de la PROM à fusible, je ne peux pas dire si son fonctionnement est en-dehors des spécifications :
  • soit le constructeur indique qu'apr√®s une transition sur le bus d'adresse, tous les bits de donn√©es peuvent bagotter pour finalement se stabiliser √† la valeur devant √™tre lue ; dans ce cas le composant est conforme
  • soit seuls les bits de donn√©es affect√©s par la transition sur le bus d'adresse doivent changer ; dans ce cas le composant est non-conforme

Il ne faut pas oublier que tous les bus sont rebouclés à travers des latches sensibles non pas à un niveau logique mais à une transition sur leur entrée d'horloge, ce qui oblitère pas mal de phénomènes transitoires.

Prenons par exemple ce cas bien particulier :
  • Soit un compteur asynchrone en cmos standard relativement lente, genre CD4040, dont les sorties pilotent les adresses d'une PROM fusible. Il est bien √©vident qu'√† chaque front n√©gatif d'horloge sur l'entr√©e du compteur CD4040, ses sorties ne changeront pas d'√©tat toutes en m√™me temps, des "glitches" seront donc pr√©sents un court instant en sortie de la PROM fusible apr√®s chaque incr√©mentation du compteur.
  • Si l'on connecte les entr√©es d'un module octuple latches comme par exemple un LS374 ou un HCT374 sur les sorties de la PROM fusible ainsi que son entr√©e d'horloge sur la m√™me horloge que celle du compteur CD4040 : le compteur avancera sur les fronts descendants de l'horloge alors que les donn√©es de la PROM seront transf√©r√©es simultan√©ment dans les latches sur le front montant de ce m√™me signal.
Les données en sorties des latches seront certes accessibles 1/2 période d'horloge plus tard, par contre elles seront "glitches-free" car les données en sortie de PROM fusible auront eu le temps de se stabiliser bien avant le front montant du signal d'horloge.

Donc prudence, il faut bien conna√ģtre le s√©quencement interne des transferts entre tous les circuits avant de tirer une conclusion trop h√Ętive.

A+
« Dernière édition: Samedi 09 Janvier 2010, 22:53:59 par gc339 » Journalisée

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard


High_Cobra
Admin
Webmaster
*****
Hors ligne Hors ligne

Messages: 11810

Localisation:
Toulouse



Voir le profil
« Répondre #67 le: Samedi 09 Janvier 2010, 16:22:52 »

Bonjour.

Ce qu'il te faut c'est une bible imprimée par le meilleur éditeur en la matière :


C'est un document papier qui rassemble tous les TTL produits par cette marque, il y a toutes les informations dont tu as besoin.
Tu peux en trouver sur le site d'enchères mondialement connu.
Pr√©f√®res une √©dition des ann√©es 80..85 √† une √©dition plus vieille : ces derni√®res ont l'√©paisseur d'un dictionnaire car elles sont moins condens√©es et il y a moins de type de bo√ģtiers, surtout ceux num√©rot√©s √† partir de 200 comme le 74244.
Celle que j'ai prise en photo est une édition de 80 et elle pèse bien son poids ...

A+

J'ai une dizaine de docs comme ça aussi, de plusieurs fabricants, pour plusieurs types de composants, je peux jeter un oeil dedans si tu veux...

Et encore bravo pour ce topic de fou Azn Azn
Journalisée

f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #68 le: Lundi 11 Janvier 2010, 00:39:10 »

Bonsoir.

Mise à jour de ce WIP d'endoscopie du CPU Cinematronic.

Samedi et dimanche matin, j'ai fait un gros boulot sur la documentation.
Vu qu'elle est assez peu lisible par endroit, j'ai repris le schéma Cinematronics et j'ai ajouté pour la plupart des composants :
  • la r√©f√©rence du composant sur mon PCB SEGA
  • les n¬į des broches chaque fois que c'√©tait illisible
  • des annotations personnelles (d'ouske vient un signal, ouskiva, keskec√©, etc...)

Y'a pas à dire, le "CCPU" (Cinematronic CPU) est une sacrée usine à gaz.
Il a √©t√© con√ßu par le sieur Larry Rosenthal, dipl√īm√© du MIT... Quelques infos sur cette page pour les curieux.

Déjà, j'ai compris un premier truc en regardant le code de l'émulateur du CCPU dans Mame.
Pour ceux qui ont les sources de Mame, regardez dans le fichier src/emu/cpu/ccpu/ccpu.c.
Il existe une instruction assembleur appelée "CST" (opcode $7F $F7) qui reset le watchdog. Sans cette instruction exécutée périodiquement, le CCPU est automatiquement reseté.
Il suffit au développeur du jeu de placer cette instruction à la fin de la boucle principale du jeu et le tour est joué.
Si le jeu ne démarre pas ou plante, alors le watchdog fera son boulot.

J'ai décidé, dimanche après-midi, d'arrêter de me peler les glaouis dans mon sous-sol et d'avoir les extrémitées engourdies.
J'ai temporairement déplacé mon banc de test de PCB dans mon bureau, chauffé :



Je peux bosser assis confortablement, j'ai toute la doc que je veux sous la main ou à portée de clic, et j'ai chaud !

Mes investigations ont continu√© en marche arri√®re sur le watchdog du PCB, pour √™tre s√Ľr qu'il n'est pas lui-m√™me en panne et reset anormalement le PCB.
J'ai contr√īl√© √† l'oscillo toutes les portes logiques impliqu√©es dans le watchdog et je n'ai rien trouv√© d'anormal.
Je n'ai pas cherché plus loin la raison d'aboiement du watchdog, car je sais maintenant que c'est une instruction assembleur non périodiquement exécutée qui en est la raison.

J'ai ensuite décidé de jetter un coup d'oeil d'oscillo sur les 3 puces de RAM.
Je me suis rendu compte qu'elles étaient assez peu sollicitées : leur bus d'adresse ne bouge presque pas.
J'ai alors essayé de comparer les données en entrée et les données en sortie, vue que les broches sont séparées.
C'est un peu blairométrique, mais je me suis dis que si je voyais un signal en entrée toujours à 0 ou à 1 ou bagotter et que la sortie correspondante n'avait jamais la même tête, alors peut-être que je devrais gratter un peu plus là.

Finalement, j'ai découvert que 3 des bits de donnée en entrée de la RAM avaient un niveau TTL fixe.
Je trouve que c'est assez peu plausible pour être honnête.


Extrait de la page 25

En rouge, ce sont les 3 entrées des puces de RAM qui ne bagottent pas K1, K3 et K10.
C'est peut-être un hasard, mais je n'y crois pas.
Entouré en vert, on voit 2 petites inscriptions "(2)". J'ai heureusement compris depuis un moment ce qu'elles signifient.
Elles indiquent que le composant qui génère ces signaux est situé page 2 des schémas.
Croyez moi, cette modeste information est particulièrement précieuse pour s'y retrouver.

Voici IC016 ("N2" chez Cinematronics), un des 3 composants qui génère le bus "K" dont 3 bits sont louches.
Celui-là est chargé de générer K0 à K3 :


Autre extrait de la page 25

Le composant en question est un 74LS257. Grosso modo, c'est un switch qui permet soit d'avoir K=A ou K=B selon la broche SELECT (entourée en bleu).
J'ai vérifié que cette broche SELECT est en permanance à l'état haut.
A priori, il semble que ce soit normal vu le fonctionnement dégradé du PCB actuellement.
La broche 15, entourée en vert, est la broche "/OUTPUT_CONTROL".
Il faut qu'elle soit à l'état bas pour que la sortie du composant soit valide. C'est bien le cas.

D'après le datasheet du composant, dans ces conditions (SELECT=1, /OUTPUT_CONTROL=0), je devrais avoir K1 (broche 9) = PA1 (broche 10).

Or voici ce que mon oscillo renifle :


Broche 10 : PA1

Broche 9 : K1

 

Il y a plusieurs conclusions possibles, qui ne sont pas mutuellement exclusives :
  • le composant en question est en panne
  • un autre composant, qui utilise le signal K1, est en panne ; ce composant impose un niveau haut sur le signal K1 (et tant pis pour IC016 qui a mal aux transistors)

À suivre :
  • dessoudage du composant IC16 pour test individuel.
  • pendant que IC16 est absent, mise en place d'une r√©sistance de "pull-down" entre la masse et la broche 9 de l'emplacement de IC16 ; si un composant grill√© impose un niveau sur ce signal, je trouverai un √©tat haut malgr√© ma r√©sistance
« Dernière édition: Lundi 11 Janvier 2010, 19:41:17 par f4brice » Journalisée

gc339
Hardcore Gamer
*
Hors ligne Hors ligne

Messages: 1933

Localisation:
Lyon



Voir le profil
« Répondre #69 le: Lundi 11 Janvier 2010, 10:06:41 »

Bonjour.

Déjà, j'ai compris un premier truc en regardant le code de l'émulateur du CCPU dans Mame.
Pour ceux qui ont les sources de Mame, regardez dans le fichier src/emu/cpu/ccpu/ccpu.c.
Il existe une instruction assembleur appelée "CST" (opcode $7F) qui reset le watchdog. Sans cette instruction exécutée périodiquement, le CCPU est automatiquement reseté.
Il suffit au développeur du jeu de placer cette instruction à la fin de la boucle principale du jeu et le tour est joué.
Si le jeu ne démarre pas ou plante, alors le watchdog fera son boulot.

Cette information à piqué ma curiosité et j'ai donc sollicité Google avec les mots clefs suivants "ccpu mame cinematronics". Quelle ne fut pas ma surprise de voir que ce CCPU était parfaitement connu et bien doccumenté, il y a tout ce qu'il faut et dont on aurait pu rêver :
  • Un assembleur pour ceux qui voudraient cr√©er un jeu ou modifier un existant !
  • Un d√©sassembleur pour traduire en instructions intelligibles les lignes de code des ROM's
  • Un simulateur ...

Le lien miraculeux : http://zonn.com/Cinematronics/

Les liens annexes :
Pour exemple : le synoptique du CCPU

Tous ces documents devraient aider à la compréhension du fonctionnement du CCPU et permettre de faire une recherche de la ou des panne(s) qui soit un peu moins à l'aveuglette.
Un homme averti en vaut deux !

A+
« Dernière édition: Lundi 11 Janvier 2010, 10:27:17 par gc339 » Journalisée

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard


f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #70 le: Mercredi 13 Janvier 2010, 00:00:29 »

Bonsoir.

Voici une mise à jour de ce WIP.

Suite à ce message de gc339, j'ai récupéré les documents cités et je les ai parcourus.
Pour un CPU implémenté en portes TTL, les possibilités sont certes modestes, mais quand même assez puissantes.
La compréhension des possibilités du CPU a facilité celle du schéma électronique.
Ainsi je vois dans les grandes lignes à quoi servent certains signaux, la raison de l'agencement de certains composants, etc...

Depuis la dernière mise à jour, je me suis inscrit sur une liste de diffusion dédiée aux jeux d'arcade vectoriels : vectorlist.
Respectant les règles élémentaires de courtoisie, je me suis présenté et j'ai expliqué que j'étais en train de dépanner un PCB SEGA qui implémente un CPU Cinematronics.
Des gens très sympas m'ont acceuilli.
Leur compétence technique sur les CCPU est inimaginable.
L'une des personnes vend (je pense à titre privé) :
  • une copie de l'Exorciser Cinematronics ; c'est un outil d√©di√© au d√©pannage des CCPU qui fonctionne avec un appareil de mesure un peu particulier qui est un analyseur de signature ; le principe est d'injecter des signaux pr√©cis √† des endroits pr√©cis sur le PCB et de regarder le r√©sultat √† certains autres endroits avec l'analyseur de signature
  • des puces de remplacement pour les PROMs du CCPU
Une autre personne a répondu aussi à mes questions de manière extrêment précise et m'a conseillé pour la suite de mon dépannage.
Il s'agit de Mark SHOSTAK.
Cette personne travaille chez CineLabs, une société spécialisée dans... le dépannage des cartes à base de CCPU (entre autres) !

On m'a proposé de dépanner ma carte, mais j'ai décliné cette offre pour le moment, préférant le faire moi-même.
La personne de CineLabs a été très surprise de voir un CCPU sur un PCB SEGA.
J'ai donné le lien vers ce WIP, même si je pense que la langue restera un obstacle.
Il a été constaté sur les photos que mon PCB SEGA ne dispose pas des emplacements prévus par Cinematronics pour la mise en oeuvre d'un dépannage avec l'Exorciser.
On se demande donc comment les techniciens SEGA pouvaient bien faire pour dépanner ces cartes...
Les photos ont permis aussi de voir à quoi ressemble la borne SEGA.



Je reprends l'endoscopie du CCPU...

La derni√®re fois, j'avais identifi√© un probl√®me majeur au niveau du bus "K", o√Ļ 3 de ses bits √©taient mauvais.

J'ai fait l'hypothèse que c'était la puce de RAM qui imposait l'état du signal via l'une de ses broches d'entrées.
J'ai donc dessoudé ce composant :



Notez que j'ai collé sur le PCB plein de petites étiquettes afin de retrouver instantanément un composant à partir de sa référence sur le schéma Cinematronics.

Ensuite, j'ai mis un support à la place, pour pouvoir remettre et retirer le composant à ma guise.
Problème : ce composant a un écartement entre ses 2 rangées de broches de 0,4 pouces, ce qui est assez peu courant (0,3 pouces est largement plus courant) :



N'ayant que des supports de 0,3 ou 0,6 pouces de large, j'ai utilisé le système D...

Déjà, il faut 2 × 22 = 44 broches, ce que je n'ai pas.
Donc, je prends un support de 14 broches et un autre de 8 :



Puis je sépare les rangées avec une pince coupante :



Pour pouvoir tout souder tranquillement, je joue aux Légos avec d'autres supports.
Les autres supports apportent un maintient mécanique et le bon écartement :



Et voilà :



Ensuite, je refais la mesure, avec le composant absent.
Si c'était lui qui imposait le niveau haut, son absence doit permettre de retrouver un signal normal.

Finalement, le problème que j'avais observé est toujours présent.
Je décide donc de tester le composant chargé de générer les bits malades.
Il s'agit de N2, soit IC16.

Je le dessoude :



Puis je soude un support et replace le composant sur le support.
Je plie légèrement la broche de sortie que je pense être malade, de sorte à l'isoler du reste du circuit.



Apr√®s test, il appara√ģt bien que le composant est malade.
Il a 2 sorties qui restent en permanance à l'état haut alors qu'elles devraient bagoter.
J'ai 2 de ces composants sur les 3 installés qui ont un problème.
A chaque fois, j'ai vérifié en isolant la broche (méthode du pliage) et en vérifiant son niveau.
J'ai vérifié que le signal sur le PCB était à un niveau "non positionné", soit environ 2,5 V. Pour moi, aucune entrée d'un autre circuit ne "tire" ce signal anormalement vers la masse ou vers VCC.

Ce matin, le crémier m'a vendu 2 composants neufs que j'ai mis sur les supports soudés la veille :



Après mise en route et test, je constate qu'il n'y toujours pas de commande sur les bus X et Y qui communiquent avec l'écran.
Je jette un coup d'oeil sur le reset, et effectivement, le chien de garde continue d'aboyer.
Le CCPU est toujours réseté périodiquement.

Il y a donc une autre panne et je m'en doutais un peu.

Je reprends donc les investigations autour des puces de RAM L14, M14 et N14.
Cette fois, je me rends compte qu'une des sorties de L14 est complètement à l'ouest.
Elle bagotte correctement puis me fait un beau signal analogique particulièrement esthétique, mais pas du tout TTL...
Il s'agit de la broche n¬į16 qui correspond √† la sortie du 4e bit de donn√©es (signal "W3" sur le sch√©ma Cinematronics).

Malheureusement, j'ai fait une fausse manip avec la sonde de l'oscillo.
Tel le soldat Pithivier dans la 7e Compagnie, ¬ę j'ai gliss√© chef ! ¬Ľ...
La sonde a glissé et a fait contact entre la broche 16 (O3) et sa voisine la broche 17 qui est reliée à VCC.
Bilan : fini le beau signal analogique totalement anormal ; j'ai maintenant un signal TTL qui bagote comme les autres.
Le PCB ne fonctionne ni mieux ni moins bien suite à ça, mais je pense avoir quand même grillé un peu plus le composant.

Voici la scène reconstituée :




Je pense que je vais passer commande chez Arcade Chips.
Les puces de RAM en question sont disponibles pour 1,5 dollar pièce.
Je vais en profiter pour commander aussi quelques composants spécifiques pour l'écran X-Y.


À suivre...
« Dernière édition: Mercredi 24 Juillet 2013, 08:07:36 par f4brice » Journalisée

maldoror68
Dieu de l' Arcade
*
Hors ligne Hors ligne

Messages: 5470

Localisation:
Mulhouse


voui, c'est moi ki l'ai fait ^^allez voir mon blog


Voir le profil WWW
« Répondre #71 le: Mercredi 13 Janvier 2010, 09:57:18 »

je suis toujours subjugé comme tu te lance la dedans...
on dirai Gandalf qui fait du Base Jumping dans une Moria de composants, dans un abime électronique... Azn

je suis vraiment fan de ce topic, m√™me si je comprends que pouic  Shocked


il faut quand même que je pose une question:

le modèle de cinématronic est bien antérieur à celui de sega? on peu donc penser (raisonablement) que celui de sega est basé sur le modèle cinématronics. l'architecture et la présentation des composants est quasi la même, alors pourquoi CNM (j'abrège cinématronics) à laissé une porte de service sur sa carte et pas Sega ?

n'empèche que si ça continue, le plus simple serai de "ressortir" toutes les roms de mame, de remmettre TOUTES les puces à neuf avec l'aide d'un prog d'eprom, de tout ressouder et de tester. ça eviterai de t'arracher les cheveux dans cette architecture en boucle qui rend toute analyse quasi impossible... Lips Sealed

ce serai possible et pas trop on√©reux  ??  Embarrassed du coup apr√®s la panne ne pourrai venir plus que d'une piste ou d'un condo / r√©sistance... Undecided
Journalisée

f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #72 le: Jeudi 14 Janvier 2010, 00:23:13 »

le modèle de cinématronic est bien antérieur à celui de sega? on peu donc penser (raisonablement) que celui de sega est basé sur le modèle cinématronics. l'architecture et la présentation des composants est quasi la même, alors pourquoi CNM (j'abrège cinématronics) à laissé une porte de service sur sa carte et pas Sega ?

Cette carte réalise un CPU. Le terme adéquat est l'anglicisme "implémenter". Le jeu qui est dedans s'appelle Space Wars.
Ce CPU est une architecture électronique dédiée aux jeux vectoriels.
Le schéma du CPU et le jeu Space Wars ont été conçus par une personne nommée Larry Rosenthal.

Rosenthal a vendu une licence d'exploitation à Cinematronics, mais a conservé la propriété intellectuelle.
Cette carte a pris le nom de "CCPU" (Cinematronics CPU) bienque Cinematronics n'en soit pas le concepteur ni le propriétaire intellectuel.
Il y a 2 possibilités :
  • Rosenthal a vendu une license aussi √† SEGA
  • SEGA a achet√© un droit √† Cinematronics
Dans les 2 cas, SEGA a certainement récupéré l'industrialisation (production de série), donc aucune raison d'avoir une implantation différente.
Je pense que SEGA a fait une modif mineure au niveau des PROMs de jeu certainement pour adresser soit un probl√®me de co√Ľt de composants, soit un probl√®me d'approvisionnement.
SEGA n'a pas jugé utile de prévoir les emplacements pour la connection de l'Exorciser.
Peut-être n'ont ils pas acheté la licence d'utilisation de l'outil, peut-être qu'ils disposent de leur propres outils (planche à clous par exemple).

n'empèche que si ça continue, le plus simple serai de "ressortir" toutes les roms de mame, de remmettre TOUTES les puces à neuf avec l'aide d'un prog d'eprom, de tout ressouder et de tester. ça eviterai de t'arracher les cheveux dans cette architecture en boucle qui rend toute analyse quasi impossible... Lips Sealed

ce serai possible et pas trop on√©reux  ??  Embarrassed du coup apr√®s la panne ne pourrai venir plus que d'une piste ou d'un condo / r√©sistance... Undecided

Une personne ayant une très grande expérience dans le dépannage des cartes CCPU m'a indiqué que si le contenu d'une PROM était bon, alors il y avait 99,9% de chances que la PROM fonctionne.
En 15 ans de dépannage de CCPU, il n'a jamais vu une PROM déconner alors que son contenu était bon.

Pour infos, les PROMs présentes sur le PCB ne sont pas des EPROM.
Les PROMs ne sont programmables qu'une et une seule fois et ne peuvent pas être effacées.
Lorsqu'elle est vierge, elle comporte tout une structure de micros-fusibles que l'on vient détruire lors de la programmation. C'est donc irrémédiable.


Je ne m'arrache pas trop les cheveux. J'ai trouvé une méthodologie et une technique de mesure qui semblent bien fonctionner :
  • j'ai trouv√© rapidement les 2 pannes des composants IC16 et IC20
  • j'ai trouv√© rapidement la panne sur IC145

Mon problème aujourd'hui est un problème de disponibilité de composant pour remplacer IC145.
C'est un composant de RAM de la fin des années 70 / début des années 80.
Je dois le commander dans une boutique aux √Čtats-Unis.
J'attends lundi prochain pour passer commande. J'aurai peut-être des composants supplémentaires à commander pour le PCB Space Invaders de ZBP.



Je profite de ce message pour une petite mise à jour du WIP.

J'ai re-testé à l'oscillo la sortie malade de la puce de RAM IC145.
À ma grande surprise, le beau signal analogique, preuve de la panne, est réapparu.
Cette fois, j'ai pu faire 2 captures d'écrans, à des fréquences de balayage différentes :


IC145 (L14), broche 16 (Out4)

Normalement sur cette broche, je dois avoir un signal TTL, c'est a dire dont la tension est soit d'environ 0 V (conventionnellement appelé "0"), soit environ 4 à 5 V (conventionnellement appelé "1").
Or je vois un signal qui fait un peut n'imp...


J'ai fait le test de plier la broche suspecte avant de replacer le composant sur son support.
Là, j'ai un signal propre sur la broche isolée.
Du coup je me dis que c'est un autre composant qui est malade et qui vient polluer le signal.
Mais pourtant, si je mesure le signal dans ces circonstances, je le trouve à une valeur intermédiaire, signe qu'aucun circuit ne tente de lui imposer une valeur.

Je pense que lorsque le CCPU fonctionne avec la broche de RAM isol√©e, il doit planter encore plus t√īt et je n'ai pas la m√™me signature.
Journalisée

f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #73 le: Samedi 16 Janvier 2010, 14:09:31 »

Bonjour.

Voici une petite mise à jour de ce WIP, en attendant zebassprophet qui est sur la route pour arriver chez moi.

Des personnes de la liste de diffusion vectorlist m'ont demandé des photos du panel de la borne.
Voici :


Panel de la borne


Il existe un panel US dessous...


Vue de dessous, joueur de gauche


Vue de dessous, joueur de droite

On constate qu'il y a de nombreux emplacements vides dans le panel US pour tous les boutons normalement prévus pour ce jeu.
SEGA, en recouvrant le panel US par un panel FR a décidé de masquer certains emplacements pour des boutons.
Il y a donc de nombreuses options de jeu qui sont innaccessibles. 



Journalisée

f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #74 le: Samedi 16 Janvier 2010, 14:53:23 »

Bonjour encore.

Voici une mise à jour supplémentaire de ce WIP.

Merci à nicolas-le-jardinier qui m'a scanné et envoyé par mail les pages de la doc Cinematronic que je lui avais demandées.
Le scan est de qualité, ainsi j'ai accès à la doc avec la qualité d'origine.
Par endroit le sch√©ma est lisible, √† d'autres non. Mais au moins le probl√®me n'est plus d√Ľ au document num√©ris√©.
Ce scan me servira pour lire certaines parties du schéma écrites en tout petit, souvent illisibles sur le 1er document que j'ai récupéré.
Il faut savoir que le document original est souvent une photocopie de photocopie, réduite qui plus est.
Elle ne peut donc pas avoir la précision du schéma original.

J'ai décidé de tester le contenu des PROMs du PCB :
  • les 6 PROMs qui impl√©mentent le micro-ordonnanceur du CCPU
  • les 8 PROMs qui contiennent le code assembleur du jeu "Space Wars"

Pour √ßa, j'ai d√Ľ dessouder ces 14 circuits int√©gr√©s...
De plus, je voulais aussi faire quelques manip avec les puces de RAM. j'ai donc dessoudé les 2 dernières puces (sur les 3 présentes en tout).

Cette modeste photo est en fait le résultat de plusieurs heures de travail sur le PCB :


Composants dessoudés

  • √† gauche : les 2 derni√®res puces de RAM maintenant dessoud√©es
  • au centre : les 8 PROMs qui contiennent au total les 4096 octets du code assembleur du jeu
  • √† droite : 5 des 6 PROMs qui impl√©mentent les signaux internes du micro-ordonnanceur du CCPU (la 6e √©tait d√©j√† dessoud√©e)

En regardant la référence des PROM SEGA ("PR-03", etc...), je me demandais si SEGA utilisait des numéros uniques pour toute PROM/EPROM de jeu.
Par exemple, "EPR-7457" est une référence à priori unique, présente sur les PCB Quartet.
Si c'est bien √ßa, j'ai sur ce PCB la 3e r√©f√©rence de ROM SEGA. 
Pas forcément la 3e ROM de l'histoire de SEGA, mais peut-être la 3e ROM depuis que SEGA a adopté ce système de numérotation.

Voici l'emplacement des PROMs du jeu :


Il manque 2 pastilles de cuivre sur IC84. C'est sans conséquence pour l'électronique.
Je ne pense pas être le seul responsable de cet incident.
Les PROMs avaient des traces évidentes de soudure à la main.
Probablement qu'elles ont été dessoudées déjà une première fois, et que la personne ayant fait ce travail n'a pas consacré la même minutie que moi dans cette opération.
Malgré tout le soin observé durant cette intervention, 2 pastilles se sont arrachées.


Voici le PCB avec des supports, et les composants dessoudés installés respectivement à leur emplacement d'origine :


Composants sur supports


Au début, je ne voulais pas trop mettre de supports pour garder le PCB au plus près de son état d'origine.
Je l'ai fait à contre-coeur, car je dois absolument vérifier le contenu des PROMs et pouvoir en changer une facilement le cas échéant.
Mon modeste stock de supports divers a pris une claque. Il reprendra son niveau standard d√®s ma prochaine visite chez le cr√©mier ou ma prochaine commande chez √Člectronique Diffusion.

Un essai rapide avec vérifications à l'oscillo à certains point clés m'a confirmé que cette opération de dessoudage / supports / remise en place n'a pas provoqué de panne supplémentaire.


À suivre :
  • dump du contenu des PROMs, comparaison avec le dump r√©cup√©r√© chez Andy's Arcade
  • commande chez Arcade Chips ; j'attends de mettre les pattes dans le PCB de SI de zebassprophet pour compl√©ter ma commande et la transmettre
Journalisée

maldoror68
Dieu de l' Arcade
*
Hors ligne Hors ligne

Messages: 5470

Localisation:
Mulhouse


voui, c'est moi ki l'ai fait ^^allez voir mon blog


Voir le profil WWW
« Répondre #75 le: Mercredi 20 Janvier 2010, 19:30:24 »

je red√©terre ce topic que j'appr√©cie tant 

alors ? comment va la Space Ship? Cheesy
Journalisée

f4brice
Arcade Slammer
*
Hors ligne Hors ligne

Messages: 3318

Localisation:
Besançon (prononcez "B'zançon")


¬ę Mat√©riel inconnu ? Touche √† ton cul ! ¬Ľ


Voir le profil
« Répondre #76 le: Samedi 23 Janvier 2010, 12:31:27 »

Bonjour.

Le WIP de réparation de cette borne continue petit à petit.

J'ai dumpé toutes les PROMs de 32 × 8 bits :


Contenu des PROM 32 √ó 8 bits

Je n'ai scanné que le recto de mon document. Il y a un 5e dump au verso.

Je me suis rendu compte qu'un des bits d'une EPROM n'avait pas les valeurs attendues dans 16 cas sur 32 possibles.
Ma PROM sort un "0" logique (état bas) alors que d'après le dump trouvé sur le net, je devrais avoir pour ces 16 cas un "1" logique (état haut).
Les valeurs louches dans mon document ont un coin noirci.
J'ai d'abors cr√Ľ √† un probl√®me de l'EPROM.
Mais depuis hier soir cette nuit, je ne suis plus aussi s√Ľr.
Peut-être s'agit-il plutot d'une spécificité propre à mon PB SEGA, car cette différence de contenu de PROM est indirectement liée à un écart de conception électronique par rapport au schéma "de référence" qui est le schéma Cinematronic.
Voir plus bas dans ce même message quel est cet écart.

Le dump "manuel" des PROMs s'arrête là.
Pour toutes les autres, il me faudra un syst√®me "semi-automatique" o√Ļ c'est un compteur TTL qui g√©n√®re le bus d'adresse.
J'incrémenterai le compteur avec un simple montage flip-flop.
Je suis toujours en attente de mon programmateur d'EPROM acheté en Chine via un site d'enchères mondialement connu.
C'est le moment de placer une de mes contrep√©tries favorites : "il arrive √† pied par la Chine".  Cheesy


La suite du WIP, c'est un débuggage pas à pas de l'électronique du CCPU.
L'idée est la suivante :
  • tout le PCB est cadenc√© par un unique oscillateur √† environ 20 MHz
  • je d√©sactive cet oscillateur le plus proprement possible
  • je mets en place un bouton poussoir qui va permettre de manuellement g√©n√©rer le signal de CLOCK √† la place de l'oscillateur
  • pour des raisons de rebond, le signal √©lectronique du bouton poussoir serait moche et g√©nererait plusieurs CLOCK pour un unique appui
  • j'installe un syst√®me anti-rebond (flip-flop) entre le bouton poussoir et l'entr√©e CLOCK du PCB
C'est un peu comme un film qui serait en mode pause.
Mon bouton, c'est la t√©l√©commande qui me permet d'avancer image par image au rythme o√Ļ je veux.
J'ai ainsi le temps de faire toutes les investigations que je veux avant de passer à l'étape d'après.

La réalisation de l'anti-rebond est identique à ce schéma (voir "Bascule à CD4011") sauf que je dois utiliser un 74LS00 (techno TTL) qui est l'équivallent du CD4011 (techno CMOS).


Voici le 1er étage de l'oscillateur du PCB :


1er étage de l'oscillateur

Il est constitu√© d'un quartz, d'un condensateur, de 2 r√©sistances et d'un bo√ģtier 74LS04 (6 portes inverseuses).

Je pensais, tel un bourrin de base, dessouder le 74LS04, mais ce n'est pas nécessaire. Il suffit de dessouder le quartz et une résistance :


Quartz et résistance retirés

Ensuite je prépare mon 74LS00 pour une installation par-dessus un circuit déjà soudé.
C'est ce qu'on appelle dans le jargon électronique une "verrue".


J'ai mis à l'horizontale toutes les broches sauf la 7 (GND) et la 14 (VCC).
En le placant au-dessus d'un bo√ģtier TTL √† 14 broches pas trop exotique, les broches 7 et 14 vont tomber pile en face de ce que je veux.
Ensuite, il me reste à cabler le bouton poussoir et le flip-flop.




J'ai maintenant un PCB qui ne peut fonctionner qu'en pas à pas.
Dès la mise sous tension, il... ne fait rien.
Il est simplement figé, faute de signal d'horloge.
C'est mon doigt qui va remplacer les vibrations d'un cristal de quartz.


Maintenant que mon PCB ne sait faire que du pas à pas, l'idée est la suivante :
  • alimenter le PCB
  • regarder la 1√®re instruction qui est lue dans la ROM du jeu
  • regarder dans le guide de r√©f√©rence du CCPU que fait cette instruction
  • fliquer son ex√©cution par le PCB
    • si c'est par exemple le chargement de la constante 0xF4B dans l'accumulateur A, je dois voir cette valeur s'√©crire dans les 3 bo√ģtiers latch qui correspondent √† l'accumulateur (M4/IC37, P4/IC39 et S4/IC41 en l'occurence)


C'est donc là que j'ai regardé en détail l'agencement des 8 PROMs qui contiennent le code du jeu.
C'est là l'une des principales différences avec le schéma de référence :
  • Cinematronics utilise 4 bo√ģtiers EPROM 2616, chaque bo√ģtier fait 1024 √ó 8 bits
  • SEGA utilise 8 bo√ģtiers PROM MB7054 ou 7643, chaque bo√ģtier fait 1024 √ó 4 bits


Correspondance EPROMs Cinematronics / PROMs SEGA

SEGA a associ√© les boitiers 4 bits deux par deux pour faire l'√©quivallent d'un bo√ģtier 8 bits.
Le bit A11 (√† gauche sur le sch√©ma) passe bien par une porte sp√©ciale (bo√ģtier TI SN74265) qui assure 2 sorties compl√©mentaires et parfaitement synchrones. Ces 2 sorties s√©lectionnent les bo√ģtiers PROMs quatre par quatre comme sur mon sch√©ma.
Attention : cette entrée de sélection est active à l'état bas :
  • A11=0 va s√©lectionner PR-07, PR-08, PR-03 et PR-04
  • A11=1 va s√©lectionner PR-09, PR-10, PR-05 et PR-06
Par contrel la bascule JK (en bas √† droite) est absente du PCB SEGA, les 2e entr√©es /CS des 8 bo√ģtiers PROMs sont en permanance √† l'√©tat bas.

Ce qui est bizarre, c'est que d'apr√®s le sch√©ma original Cinematronic, si la bascule JK ne s√©lectionne pas la bonne paire de bo√ģtiers EPROM (U7+R7 ou bien T7+P7), alors selon la valeur du bit A11, on risque de lire "dans le vide" (aucun bo√ģtier s√©lectionn√©) :
  • hypoth√®se : la s√©lection de page (bascule JK) s√©lectionne les bo√ģtiers U7+R7
  • une adresse 0xxxxxxxxxxx (A11=0) est lue : A11 va s√©lectionner T7+P7
  • in fine, aucun bo√ģtier n'est s√©lectionn√© et la lecture se fait dans le vide...
Bizarre...
La conception du CCPU permet d'avoir plusieurs "pages" de code en ROM. Peut-être que mon schéma est incomplet ?


Pour en revenir √† mon PCB SEGA, l√† je n'ai pas de doute : la s√©lection de page de ROM n'existe pas, et c'est seul le bit A11 qui choisit la quadrette de bo√ģtiers PROM.

Gr√Ęce √† nicolas-le-jardinier qui m'a scann√© son document Cinematronic, j'ai le contenu du code du jeu (sous forme hexad√©cimale) facilement accessible :


Le jeu commence par le code machine "49 E7".
Un petit tour par le "Programmer's Reference Guide" du CCPU (voir ce message de gc339), et je sais que :
  • 49 E7 = "LDJ #7E9", soit charger la constance 0x7E9 dans le registre "J"
    (je n'ai pas r√©ussi √† trouv√© o√Ļ √©tait stock√© ce registre J sur le PCB...)

Par contre, dès la 1ère instruction, ça chie déja...
Au lieu de lire "49 E7", mon CCPU lit "09 E7".
En effet, j'ai découvert que le bit D2 de la PROM PR-08 semble malade.
Quand il veut passer à l'état haut, il se positionne à peine à 0,5 V...
Je dois investiguer si la PROM est en cause, ou si le signal est bouffé par un autre composant.

Du coup, le CCPU exécute :
  • 09 E7 = "LDA #900" suivi de "ADD [ i]"

Je flique les bo√ģtiers U11 et T11...
C'est bon, leur entr√©e SELECT est √† l'√©tat bas, ils laissent passer les bo√ģtiers "pairs". Tout va bien.

Je flique le bo√ģtier S13...
C'est bon, "on" l'active bien (/LDR passe à 0).
Je regarde sur le front montant de la CLOCK (j'appuie sur mon bouton)...
Et paf ! Sur le front montant de la clock, les sorties du latch changent, mais pas avec les données qu'on lui a présentées :
  • les 4 bit de poid faible de S13 auraient dus √™tre charg√©s avec "1001", soir "9" en hexa
  • j'ai pas "1001" en sortie du latch...

Ben ça commence fort, ce mode pas à pas...
Ce n'est pas la bonne instruction qui est lue.  
L'instruction ex√©cut√©e √† la place ne l'est m√™me pas correctement...  


A suivre :
  • diagnostic pour PR-08 : malade ou signal bouff√© par un autre composant ?
  • diagnostic pour S13 : vraiment malade ?


Merci √† gc339 pour ses conseils : j'aurais inutilement dessoud√© le composant I2, inutilement utilis√© 2 boutons poussoirs alors qu'un seul suffisait.  Smiley
« Dernière édition: Samedi 23 Janvier 2010, 12:35:36 par f4brice » Journalisée

gc339
Hardcore Gamer
*
Hors ligne Hors ligne

Messages: 1933

Localisation:
Lyon



Voir le profil
« Répondre #77 le: Samedi 23 Janvier 2010, 13:52:00 »

Bonjour.

Je me suis rendu compte qu'un des bits d'une EPROM n'avait pas les valeurs attendues dans 16 cas sur 32 possibles.
Ma PROM sort un "0" logique (état bas) alors que d'après le dump trouvé sur le net, je devrais avoir pour ces 16 cas un "1" logique (état haut).
Les valeurs louches dans mon document ont un coin noirci.
J'ai d'abord cr√Ľ √† un probl√®me de l'EPROM.
Mais depuis hier soir cette nuit, je ne suis plus aussi s√Ľr.
Peut-√™tre s'agit-il plut√īt d'une sp√©cificit√© propre √† mon PB SEGA, car cette diff√©rence de contenu de PROM est indirectement li√©e √† un √©cart de conception √©lectronique par rapport au sch√©ma "de r√©f√©rence" qui est le sch√©ma Cinematronic.
Voir plus bas dans ce même message quel est cet écart.

Comme quoi il faut toujours se méfier, le jeu cloné n'est pas toujours une copie conforme


C'est mon doigt qui va remplacer les vibrations d'un cristal de quartz.

Il ne va pas faire que remplacer la vibration du quartz, il va aussi faire osciller dangereusement cet "échafaudage" à chaque appui sur le bouton poussoir, ce n'est pas très prudent ! Il eu mieux valu fixer le bouton poussoir sur une petite équerre métallique boulonnée dans un des trous de fixation du PCB (j'en ai ai au moins distingué deux sur les photos, un dans chaque angle, sur le bord opposé au connecteur).


Journalisée

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard


gc339
Hardcore Gamer
*
Hors ligne Hors ligne

Messages: 1933

Localisation:
Lyon



Voir le profil
« Répondre #78 le: Samedi 23 Janvier 2010, 21:42:23 »

Bonsoir.

je n'ai pas r√©ussi √† trouver o√Ļ √©tait stock√© ce registre J sur le PCB...

2.3.5 The ‚ÄėJ‚Äô register

The CPU‚Äôs jump opcodes do not, in themselves, contain the destination addresses of the jumps. Instead all jumps jump to the address contained in the ‚ÄėJ‚Äô register, which must be loaded previous to the execution of a jump instruction.

Il ne faut pas faire une fixation sur la notice du "Space Wars" et ne pas h√©siter √† aller bouffer √† tous les r√Ęteliers consulter les autres notices de jeux √† base de CCPU.

Par exemple la notice du "Star Castle" est beaucoup plus prolifique à ce sujet :

  • Selon la page 6-2 de cette notice, affichant le synoptique g√©n√©ral, le registre baptis√© "J" dans le "Programmer's Reference Guide" du CCPU devrait √™tre le registre "ADDRESS REGISTER" num√©rot√© "16", le PC ou compteur ordinal devant √™tre le registre "ADDRESS COUNTER" num√©rot√© "15"


  • La page 6.6 paragraphe 16 l√®ve le doute : "This register is a latch used for temporary storage of an address which will be loaded into the program counter during a jump instruction".



CPU BOARD page 6.3
+ Page 6.4



Page 6.5


Page 6.6


Page 6.7

  • Et la page 6.7 √©num√®re l'emplacement physique de chaque bo√ģtier impliqu√© dans le bloc "16" du synoptique : P13 et R13.

Comme tous les circuits imprim√©s √† base de CCPU Cin√©matronics sont pratiquement identiques quelque soit le jeu ou leur indice de version, il n'y a plus aucune difficult√© √† rep√©rer ces bo√ģtiers sur le sch√©ma du "Space Wars" et √† retrouver leurs emplacements sur le circuit imprim√© Sega du "Space Ship".


« Dernière édition: Samedi 23 Janvier 2010, 23:32:22 par gc339 » Journalisée

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard


zebassprophet
Fuse Killer
Dieu de l' Arcade
*
Hors ligne Hors ligne

Messages: 7466

Localisation:
Metz



Voir le profil WWW
« Répondre #79 le: Samedi 23 Janvier 2010, 22:07:07 »

t'es un grand bourrin f4brice, tu es reelement impressionant niveau electronique
( de même pour gc339 , mais j'ai plus eu l'occasion de voir le travail de F4b)

bonne chance pour la suite joyeux
Journalisée

Pages: 1 2 3 4 [5] 6 7 8 9 10 ... 14
Imprimer
Aller à:  

Theme orange-lt created by panic