fred_c a écrit : ↑mer. 05 01, 2022 22:51
Je ne vois pas techniquement ce qui pourrait provoquer le problème, de plus la 6116 est alimentée en permanence par la super capa.
Justement, la sRAM doit être alimentée en permanence par une pile (ou un condensateur) afin de conserver le contenu de la mémoire. Et parce qu’elle est alimenté en permanence, elle est susceptible d’être active pendant le démarrage (quand le 5V passe de 0 à 5) ou l’arrêt (quand il passe de 5V à 0).
Bally et Williams de cette génération utilisent une 5101, qui possèdent 2 chip select. Un actif bas (en pin 19) pour activer la sRAM quand la CPU veut lire ou écrire dans l’espace mémoire $200 à $2FF. Et un actif haut (en pin 17) relié au reset pour désactiver la sRAM quand le 5V n’est pas encore stable (ou quand le flipper est éteint).
Par contre une 6116 a deux chip select actif bas. Comme elle n’utilise pas le reset, à l’arrêt et quand le 5V n’est pas stabilisé, les 2 chip select sont probablement à 0V et la 6116 est active.
Le pire c’est que le « write enable » est actif bas. Cela signifique que la 6116 est active et en mode écriture. Donc quand le flipper est éteint, elle écrit en permanence la valeur 0 à l’adresse $200.
Et au démarrage, quand le 5V varie de 0 à 4,7V, la CPU est toujours en mode reset, le bus d’adresse va fluctuer entre 0 et 5V à cause des résistances pullup (R122 à R130). Et vont écrire n’importe quoi, n’importe où dans l’espace mémoire de la 6116.
Il y a 3 façons d’éviter ce problème.
La première consiste à utiliser une mémoire dotée d’un chip select actif haut relié au reset. Bally (#17 et #35) et Williams (system 3 à 7) utilisent une 5101. Et sur mes cartes j’utilise une 6264.
La deuxieme consiste à utiliser une mémoire comme la 6116. Mais dont un des chip select actif bas est relié au reset via un transistor NPN. Le transistor jouant le rôle d’inverseur. Ainsi au démarrage, le reset est à 0V, et au niveau du transistor de 3V à 5V (donc en état haut). Le chip select étant actif bas, la RAM sera donc inactive. C’est la méthode utiliser sur les Bally 6803 et Williams system 9 et 11. D’ailleurs j’ai utilisé cette méthode sur la toute première version de ma carte. Voir le sujet déterré par Lioevry
viewtopic.php?f=1&t=67790&start=30 le 25 jan 2017. Bon il faut avoir des bons yeux, mais on peut remarquer à coté du DIP switch du milieu, une SRAM 6116 avec juste en dessous un transistor 3904. Et l’année suivante, j’avais présenté la deuxième version avec une 6264. L’avantage c’est 3 composants en moins (2 résistances et une transistor), donc moins de composant pour plus de fiabilité.
La troisième solution, tout n’est pas perdu avec ta carte. Par contre tu dois absolument utiliser un nvram comme la M48Z12 (
https://www.mouser.be/ProductDetail/STM ... IjJw%3D%3D). Cette RAM est compatible avec la 6116 et dispose d’un système de protection à l’écriture quand la tension est en dessous de 4.5V
Je t’invite fortement à envoyer à tes clients cette nvRAM (ou équivalente) en remplacement de la 6116.