[WIP 100%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Chaine Youtube de notre ami "Referent Tech" spécialisé dans la reparation des consoles NeoGeo et autres
Répondre
Avatar du membre
Kr4ken
Modérateur
Modérateur
Messages : 1189
Enregistré le : mar. 19 avr. 2022 06:20
Localisation : Istres (13)
Pays : 🇫🇷 FR

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Kr4ken »

Tu as pas encore assez fait de tour de luge 😁🤘
Allé qques descentes encore prendre l’air ! 😁
Kr4ken
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Après pas mal de bricolage du soir autour du sertissage de câbles IDE pour finir par m'apercevoir que je m'embêtais pour rien parce que ces câbles de l'enfer n'ont pas 40 fils et leurs prises ont des mises à la masses secrètes (que j'ai fini par trouver)... Tout ça alors qu'on trouve des câbles GPIO pour Raspberry PI femelle-femelle pour pas cher... Donc le reste du bricolage ne sera pas pour cette nuit, mais plutôt pour demain...

J'ai profité une fois de plus de mes trajets en voiture pour réfléchir à ces histoires d'impulsions indésirables sur la broche /OE, et j'ai émis une théorie que voici...

Pour rappel, le timing lors d'un accès à une mémoire morte (ou à de la RAM) en lecture:
- L'adresse est positionnée sur le bus d'adresse
- La ligne de lecture (/OE) est activée
- La ROM (ou la RAM) répond sur le bus de données

Maintenant, un phénomène intéressant, auquel je n'ai pas trop été confronté pour le moment... Je connais le coup des interférences dans les lignes nues sur "longue" distance, l'intérêt des lignes de transmission à impédance contrôlée, les paires différentielles...
Par contre, un phénomène avec lequel je ne suis pas familier, c'est le parasitage par les lignes juxtaposée. En gros, un signal dans une ligne vient parasiter celui des lignes proches.

En regardant mon câblage, ma ligne /OE est en bout de nappe, avec à côté d'elle la ligne A0 (celle qui bouge le plus parmi les lignes d'adresses) et la ligne D0. En gros, c'est probablement la zone la plus perturbée de la nappe.

Le signal /OE est particulier, c'est celui dont le timing est le plus important pour moi. Les adresses et les données ont un temps théorique pour l'établissement de leur signal, mais je doit absolument être synchrone avec le signal /OE et ne pas inventer des impulsiosn dessus (pour rappel, le principe de mon port repose sur le comptage de cycles de lecture).

Par chance, je n'utilise pas les 39 broches du câble IDE, et j'ai la chance qu'il y ait une zone de calme de l'autre côté de la nappe. A l'autre bout, j'ai câblé des signaux hors fonctionnement des bus:
- La ligne de RESET, qui est constante pendant le fonctionnement du slot (hors RESET, mais peu importe parce qu'on est justement en plein reset :)).
- La ligne témoin d'alimentation du slot (qui me permet de savoir si je peux écrire sur le bus de données, et d'alumer une LED sur le BricoNeo). Pareil, il ne bouge pas vraiment
- Une ligne non utilisée
- Une ligne "Custom" que j'avais réservée pour plus tard et sur laquelle je peux venir coller mon /OE
La version corrigée du câblage (et de la numérotation)
La version corrigée du câblage (et de la numérotation)
Je me dis que si je bougeais mon signal /OE en bout de ligne de ce côté-là, il serait bien plus au calme et moins perturbé. La modif est simple: souder 2 bouts de fil. Je peux même ajouter une masse sur la ligne non connectée juste à côté de lui pour qu'il soit encore plus au calme.

Voilà donc ce que je fais demain soir. Je commence à y croire un peu plus, ça fait du bien de se taper 2h de voiture! ;)

A suivre!
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Je m'y recolle ce soir, mais je ne vais pas m'éterniser dans le grenier...

Image
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 5582
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Xrider »

Bouz a écrit : mar. 22 août 2023 21:54 Je m'y recolle ce soir, mais je ne vais pas m'éterniser dans le grenier...

Image
Ah, ca ressemble a un TMP36 non ?
Delta Store - Modchip - Mods - Tools - Modification pour vos consoles de jeux video
Delta island - Jeux Vidéo - Retro-Ingénierie - Développement Hardware & Software
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Xrider a écrit : mar. 22 août 2023 22:45 Ah, ca ressemble a un TMP36 non ?
Je crois, oui. L'ESP32 lit la température et va chercher l'heure sur Internet. Il affiche en alternance l'heure (le plus longtemps(, la temperature, et mon impressionnant nombre d'abonnés (il y a largement assez de chiffres).

Et concernant le BeicoNeo, le phénomène est toujours present dans une certaine mesure après déplacement du signal sur un autre fil de la nappe.
Avant de couper ce qu'il reste de pistes sur la carte et de tuer ma nappe, j'ai décidé d'acheter un câble tout prêt de 20cm pour GPIO de Raspberry PI. Si ça ne dépasse pas 20cm, il doit y avoir une bonne raison!
La suite samedi, donc (et je suis frustré, je ne sais pas si je l'ai déjà dit).
Avatar du membre
Kr4ken
Modérateur
Modérateur
Messages : 1189
Enregistré le : mar. 19 avr. 2022 06:20
Localisation : Istres (13)
Pays : 🇫🇷 FR

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Kr4ken »

Les savants n’ont pas tout réussi du premier coup non plus mon cher Bouz 😉
Kr4ken
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

J'ai reçu mon câble "IDE" (tout pareil, de 20cm, mais 40 broches au lieu de 39 :)).
Je fais les tests demain si les températures baissent!
Si ça ne marche toujours pas, il faudra employer la manière forte pour achemnier ce signal /OE dans de bonnes conditions. Potentiellement en le poussant plus fort (en lui faisant manger plus de courant).
L'idée du pullup/pulldown était cool, mais j'ai des parasites dans les 2 sens. Il faudrait quasiment que je polarise ma ligne à 2.5V à l'arrivée avec des résistances de basses valeurs et que je pousse plus fort au départ.
La réflexion est ouverte (mais ce n'est pas le signal /OE de base qui supportera ce traitement violent).
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

J'ai de bien meilleurs résultats avec un câble plus court
Le problème, c'est que je ne veux pas quelque chose de mieux, mais quelque chose de parfait :).
Je vais voir niveau soft comment ça se comporte, mais je pense quand même que je vais devoir creuser un peu plus pour améliorer ce signal.
Fichiers joints
C'est moins pire
C'est moins pire
Avec un câble plus court
Avec un câble plus court
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Je suis en train de tester la théorie suivante, parce que je suis une bille avec tout ce qui est analogique...

- Mon signal parcourt 20cm dans une nappe.
- Il est sur un niveau de 5Vpp, sur un courant très faible.
- Il est sensible aux interférances.
- Pour régler le problème, il faudrait brancher le BricoNeo directement à la place de la ROM, sans nappe intermédiaire. Mais ce ne serait pas pratique du tout... pour brancher sur des slots avec des ROM à 90°, sur des slots avec cartouche en place, sur des multi slots (la ROM est sur la carte du dessous)... => Pas envisageable.
- Si je tirais plus de courant, mon signal serait moins sensible aux parasites (a priori, si je dis des bêtises, merci d'intervenir!)

Du coup... Si je commande un transistor NPN en sortie du connecteur de la ROM sur le slot, avec une "petite" résistance de pullup du côté du BricoNeo, je devrais tirer un bon gros courant quand je bascule en 0V et être moins sensible aux parasites.

J'adorerais tester ma théorie... Du coup, j'ai fait le test juste pour vous (et pour moi, un peu, quand même)...

J'ai trafiqué mon socket déjà bien bricolé...
Voilà le socket trafiqué avec le transistor
Voilà le socket trafiqué avec le transistor
Et le résultat était pourri: le signal d'entrée était parfait au niveau du socket, et complètement plat (0V) au collecteur du transistor. J'ai d'ailleurs joué avec un potar côté carte BricoNeo pour faire varier le pullup, et j'ai fait chauffer un peu trop le potar avant d'obtenir quelque chose qui bouge :).

Vu mon grand succès et mon incompréhension, j'ai refait le montage sur breadboard...
Vu que ça ne marchait pas, montage indépendant
Vu que ça ne marchait pas, montage indépendant
Résultat identique, mais en passant la fréquence du signal d'entrée à 3MHz (la vitesse du bus de la NeoGeo) à 3kHz (1000 fois moins rapide), le montage inverseur suiveur marche impec et la sortie est super propre.
Mais en zoomant un peu...
Ca marche super bien... à 3kHz!
Ca marche super bien... à 3kHz!
On voit pourquoi ça ne fonctionnait pas à 3MHz... le transistor répond en plus de 1 microseconde (pas loin de 1000 fois trop lentement, en gros).
Autrement dit, même si l'idée était bonne (ce que je n'ai pas pu vérifier), avec ce que j'ai sous la main, ça va être difficile à valider.
En dernier recours, il me reste la possibilité d'utiliser des puces MAXIM pour faire du transfert sur paire différentielle, mais si je peux éviter d'en arriver là, je préfère (et je ne suis pas sûr de leur temps de réponse).
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 5582
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Xrider »

Salut Bouz,

Pour améliorer le signal, je vois quelques solutions :

1 - Retravailler le PCB en 4 couches, en prenant en compte qu'il ne faut pas mettre les lignes d'alimentation trop proche des bus d'adresse + donnée.
Couche 1 : Tracing de toutes les alimentations
Couche 2 & 3 : Bus d'adresse + Donnée + discret.
Couche 4 : GND

- Il faut aussi prévoir de mettre toute la surface des couches non utilisé au GND

- Augmenter les largeurs de piste VCC (Pour le GND, pas besoin puisque les surfaces seront toute au GND, on peut pas mieux faire :merci: )

2 - Changer la liaison de socket BIOS <-> BricoNeo, et la raccourcir. Mais ça tu l'as deja anticipé :merci:
Une connexion avec des nappes plate et des connecteur FPC devrait très bien fonctionner. (Prévoir de doubler les ligne VCC et GND)

3 - Essayé de deporter certain composant directement sur le PCB qui se plug sur le Socket Bios ?

4 - Ne pas hésiter a utiliser des pull up/down pour tenir le signal entre deux IC/GAL

Dans tous les cas bravo pour ta perseverance, c'est comme ça qu'on progresse :merci:
Delta Store - Modchip - Mods - Tools - Modification pour vos consoles de jeux video
Delta island - Jeux Vidéo - Retro-Ingénierie - Développement Hardware & Software
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1578
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Eh ben merci pour tous ces conseils!
Concernant le PCB, je ne suis pas sûr qu'il soit en cause. Le seul signal qui sent le moisi, c'est le /OE, qui sert malheureusement à synchroniser les autres. En théorie, les lignes d'adresse sont positionnées AVANT que la ligne /OE soit activée, donc il n'y a pas trop d'impact si elles rebondissent un peu.
J'ai un gros plan de masse, et des pistes 5V en 1mm qui distribuent l'alimentation un peu partout avec du découplage sur toutes les puces. Pas sûr que ce soit la bonne largeur, mais pour ce que j'ai pu observer, l'alimentation est stable, y compris au niveau des GAL (découplés à coups de MLCC et d'électroythiques) que j'active/désactive et qui consomment à bloc.

Voilà ce que j'ai tenté ce soir. Ca a l'air de bien se comporter, alors je pense que je vais tenter de mettre ça en place pour de vrai pour voir ce que ça peut donner en situation rélle. Photos...

J'ai mis en place un montage push-pull avec 2 transistors complémentaires.
Je les ai fait cracher dans la nappe IDE, j'ai récupéré le signal à la sortie de la nappe, et je l'ai polarisé à 2.5V avec 2 résistances de 220 ohms histoire de tirer dessus.
Ca donne ça:
Le sac de noeuds
Le sac de noeuds
Ensuite (en fait, tu penses bien que ça s'est déroulé un poil en parallèle), j'ai injecté là-dedans un signal rectangulaire à 3MHz qui ressemble furieusement à celui injecté par la Neo.
J'en ai profité pour injecter un signal déphasé dans la nappe sur le fil d'à côté. Ce n'est pas le cas sur la photo, je l'ai déplacé plus tard :).
Le signal d'entrée
Le signal d'entrée
A la sortie, j'obtiens ça...
- En jaune, le signal d'origine
- En rose, le signal à la sortie du totem
- En bleu, le signal à l'arrivée sur la charge, à la sortie de la nappe

Je note un déphasage de l'ordre de 10ns entre l'entrée et la sortie, ce qui ne devrait pas me poser de problèmes par la suite.

Côté circuit, il va falloir que j'ajoute une petite plaque sur le connecteur côté Neo. Côté Brico, j'ai juste besoin des 2 résistances de charge.
Il me tarde de tester ça, j'espère qu'il ne va pas faire trop chaud dans les jours qui viennent ;).
Le résultat
Le résultat
Pour ce qui est de l'acharnement, je crois en ce projet, et c'est pour le moment le seul obstacle qui se dresse devant moi avant de dérouler la partie soft. J'ai arrêté de développer du soft à cause de cette instabilité. Autant dire que c'est motivant (et frustrant à la fois ;)).

Voilà, si j'ai dit trop de bêtises, et si tu as une astuce pour que les transistors ne s'activent pas en même temps (je n'ai pas l'impression que ce soit le cas ici), ça m'intéresse ;).
Avatar du membre
dadou
Contributeur Lv3
Contributeur Lv3
Messages : 342
Enregistré le : lun. 10 janv. 2022 17:26
Localisation : Israel
Pays : 🇮🇱 IL

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par dadou »

Je suis ton projet depuis le début, je trouve cela vraiment super ce que vous arrivez a faire toi, Xrider et les autres, je ne pige pas forcement tout mais j'adore lire tes logs et tes explications.
Le debugging aussi est super car cela permet de voir et de comprendre que derrière tout projet la place du debugging est énorme et qu'en général rien ne marche du premier coup.
Chapeau pour ta persévérance et ton travail :super:
Continue comme ca :)
Répondre

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