[index] [Informatica] [Elettronica] [PIC16F84] [Wifi] [Links]
Appunti di Gianluca Ghettini
Collegare il joypad del Super Nintendo al PC
Un vecchio joypad per Super Nintendo puo' essere riesumato e riportato in vita con qualche piccola modifica per essere usato con un normale PC. Essenzialmente si tratta di costruire una piccola interfaccia per poterlo collegare alla porta parallela, e poi usarlo come normale joypad per PC tramite programmi che sono liberamente scaricabili su internet (piu' sotto trovate i link).
Dato che trovo il joypad dello SNES molto comodo da usare, ho deciso di modificarlo ed adattarlo al mio computer per usarlo con emulatori (dello SNES e non) e videogiochi vari.

Quello che occore

- saldatore a punta fine da almeno 25W

- stagno di quello fino, meglio se con anima all'acido disossidante

- un connettore DB25 maschio (puo' esser recuperato da un vecchio cavo per stampante)
Assicurarsi che sia apribile e non pressofuso, altrimenti non si potra' inserire la nuova circuiteria all'interno

- un connettore a scelta tra: un connettore maschio USB, un connettore maschio per alimentatori per PC, un conettore maschio per porte joystick per PC; questo connettore servita' per alimentare il joypad e bisognera' scegliere il tipo in base alle proprie esigenze: se avete una porta USB sempre libera vi conviene il primo, se non ne avete ma possedete una porta joystick potrete optare per il terzo etc... io ho deciso di adottare il connettore maschio da collegare direttamente all'alimentatore del PC, perche' bene o male sono sempre presenti in tutti i tipi di PC (tranne i portatili ovviamente). Tutte e tre le porte forniscono una tensione stabilizzata di 5volt, in grado di erogare una corrente piu' che sufficiente per il joypad.

- solita roba tra forbici e nastro isolante da elettricista.


Un po' di teoria sul funzionamento

Il connettore originale del joypad si presenta cosi':

Data l'asimmetria della forma del connettore e' impossibile sbagliarsi con la numerazione.
Questa e' la descrizione dei sette pin:













I pin 5 e 6 non sono usati (non esistono nemmeno i fili corrispondenti all'interno del cavo del joypad). Il pin 1 serve all'alimentazione, mentre il 2,3 e 4 servono allo scambio dei dati, infine il pin 7 provvede a dare un riferimento di massa al joypad. Tutti i segnali ricevuti e inviati da o verso il joypad sono compatibili TTL (quindi 0volt per lo 0 logico e +5volt per l'1 logico). Ogni 1/60 di secondo la console invia al joypad sul pin 3 una pulsazione quadra di 12 microsecondi; questa pulsazione istruisce il joypad a "congelare in memoria" lo stato dei suoi pulsanti per una imminente lettura che avviene appunto 6 microsecondi dopo, quando la console invia sul pin 2 un'onda quadra al 50% di duty-cycle formata da 16 pulsazioni alla quale il joypad risponde simultaneamente inviando sul pin 4 i dati relativi allo stato dei suoi pulsanti. La risposta va considerata come 16 bit ognuno dei quali riflette lo stato (premuto/non premuto) di un pulsante (in effetti i pulsanti sono solo 12, percui le ultime 4 pulsazioni non vengono considerate).
Tutto quello che va fatto e presentare tali segnali al PC tramite la parallela, anch'essa conforme allo standard TTL, ed usare un apposito driver per interfacciarsi con il sistema DirectInput di Windows, a sua volta interfaccia di comunicazione per qualsiasi gioco esistente che supporti i joypad come input.

Schema dell' interfaccia

L'intefaccia, cosi' come era stata pensata, prevedeva l'utilizzo di cinque diodi 1N4148 da collegare alle uscite della porta parallela, i catodi dei quali erano collegati tutti al pin 1 del joypad (cavetto bianco); Questo lo schema originario:





















Essezialmente i pin 5,6,7,8 e 9, attraverso i diodi, fornivano la potenza (tensione da 5volt e qualche mA in uscita) necessaria al joypad per poter funzionare correttamente. Ho sperimentato comunque che questo approccio non funziona sempre, ma solo su schede madri in grado di erogare sufficiente corrente dai pin della porta parallela, con le altre il joypad puo' non funzionare del tutto. Il problema mi si e' presentato notando che cambiando computer il joypad "misteriosamente" smetteva di funzionare.
Quindi, per rendere il joypad utilizzabile un po' dappertutto ho modificato lo schema in questo modo:






















I diodi sono stati eliminiati del tutto (il che rende l'interfaccia ancora piu' semplice da costruire) e l'alimentazione viene ora fornita tramite i fili A (+5 volt) e B (massa comune). Tale tensione puo' essere prelevata o da una porta USB libera tramite apposito connettore, o dalla porta joystick oppure direttamente da un connettore dell'alimentatore interno del PC.

Costruzione dell'interfaccia

Per realizzare l'interfaccia si puo' procedere tagliando via con le forbici il vecchio connettore grigio del joypad, spellare i cinque fili avendo cura di verificare che i colori corrispondano alla numerazione dei pin data nella tabella precedente (alcune versioni dello SNES hanno colori differenti); nel caso non coincidessero e' bene prenderne nota e riscrivere per bene le associazioni su un foglio di carta.
Bagnare con un po' di stagno le terminazioni in rame dei fili.
Fatto cio' aprite il connettore della parallela con un cacciavite piatto (svitando oppure facendo leva se e' chiuso a pressione) ed iniziate a saldare i fili del joypad sui pin corrispondenti. I cavetti 2,3 e 4 del joypad vanno saldati rispettivamente ai pin 2,3 e 10 della parallela, mentre il pin 7 va collegato ai 18 e 19.



Porta parallela




Passiamo all'alimentazione:
Realizzate un cavetto di circa 30 cm che presenti ad un capo un connettore a scelta tra USB (maschio), joystick (mascho) o d'alimentazione (maschio); spellate i fili all'altro capo ed individuate i fili dei +5v e di massa.

NOTA: La numerazione dei pin e' effettuata mettendo di fronte il connettore.

USB
pin 1 +5volt
pin 4 gnd

Joystick
pin 1 +5volt
pin 4 gnd

Alimentatore
pin 1 (rosso) +5volt
pin 2 o 3 (nero) gnd


Il filo dei +5v andra' sadato al pin 1 del joypad, mentre quello di massa con il pin 7 (e quindi anche con i 18 e 19 della parallela). Fate in modo che i due cavetti (quello del joypad e quello di alimentazione passino per il buco del connettore della parallela e chiudete il tutto assicurando con qualche giro di nastro isolante.

Non rimane che scaricare i driver per poter usare il joypad:

driver per Windows 95/98  dpadpr50.zip (86 kB)
driver per Windows XP      pad_driver.zip (694 kB)


Foto del mio joypad modificato:



























Particolare dei connettori.





RSS Feed
RSS Feed
 
pin funzione colore
1 VCC +5V bianco
2 clock giallo
3 latch arancione
4 dati rosso
5 - -
6 - -
7 GND marrone