Joystick Super Nintendo -1-
Par makoto doushite le mercredi, 15 juin 2011, 14:10 - Électronique - Lien permanent
Un joystick d'arcade USB c'est bien, mais pour jouer sur d'autres consoles, comment faire ?
Suite à ma première expérience concluante de conception sur microcontrôleur (µC), je pense que je peux me lancer et tenter de réaliser un « joystick Super Nintendo » à base de µC ATmega.
Étant donné qu'ils est simple, pourquoi s'embêter à pondre un programme alors qu'il suffirait de copier le circuit électronique à base de CD4021 contenu dans la manette Super Nintendo ??
Voire même de faire le barbare comme certains font, en sacrifiant une manette pour y souder des fils et la raccorder directement aux joystick…
Et bien car je prévois de fusionner ce nouveau programme avec celui du joystick USB.
Et même avec de futurs programmes, rendant ainsi le joystick compatible : PC, Super Nintendo, PC Engine, Playstation 1,2 et 3.
Mais voyons déjà l'étude du
Protocole de communication de la manette Super Nintendo :
Une fois la manette démontée, on va regarder à l'oscilloscope les signaux qui transitent dans les fils de la manette, donc en se branchant sur le connecteur CN1.
Côté connectique avec la console, ces 5 fils se répartissent ainsi :
- L'alimentation 5 Volt,
- et la masse.
- Les signaux Clock,
- Latch,
- et Serial Data.
Pour l'occasion j'ai donc ressorti l'oscilloscope poussiéreux de son étagère… mais vu comme ça, c'est pas très parlant…
J'ai donc pris le temps de relever les chronogrammes, en respectant le code couleur :
Interprétation :
Chaque fois que le signal Lacth émis par la console est activé, l'état des boutons de la manette est chargé en mémoire pour être ensuite transmis en sortie sur le signal Serial Data, c'est à dire que l'état de chaque bouton est sérialisé sur cette sortie en suivant les impulsions l'horloge Clock.
Ceci se répète toutes les 16,8 ms, soit presque 60Hz… Compte tenu du fait que ma console fonctionne en 60Hz , sinon j'imagine que cela ce passerait en 50Hz.
La courbe SERIAL DATA représente ce qu'il se passe lorsque le bouton R est enfoncé, un état bas qui dure 12µs, situé à la 12ième impulsion d'horloge.
Les pointillés récapitulent l'emplacement sur la courbe de tous les autres boutons.
«yapluka»… établir un schéma de câblage et écrire un programme qui réalise le signal SERIAL DATA en fonction des signaux CLOCK et LATCH.
À suivre…