ButtonBox2 Interfaccia tastiera PS2

January 9th, 2015 Leave a comment Go to comments
Premessa:

Schemi e firmware sono stati tratti da : www.leien.info/buttonbox/ un sito in lingua inglese da cui ho tratto spunto per la realizzazione del mio progetto.

Lo studio e la realizzazione del pcb singola faccia sono opera mia.

Questo cirucito permette di collegare fino a 27 pulsanti in connessione diretta o fino a 128 in modalitàmatrice alla porta PS2 di un personal computer.
L’articolo descrive la realizzazione di un PCB a singola faccia che NON prevede l’utilizzo della scheda in modalità a matrice.
L’uso del microporcessore AT90S8515 opportunamente programmato permette di ovviare a problemi che si riscontrano con un normale keyboard hacking, ovvero il famoso ghosting.

Personalmente ho utilizzato questo sistema per interfacciare una XBOX con il control panel di un cabinato per videogames sulla quale XBOX sono stati installati MAME e altri emulatori. Il risultato è stato spettacolare.

 Descrizione:

Il circuito è molto semplice e composto dai seguenti componenti:

  • U1 – Micorprocessore Atmel AT90S8515
  • U2 – 74HC66 o CD4066
  • X1 – quarzo da 4 MHz
  • C1 – cond. elettrolitico da 10 microfarad
  • C2/C3 – ceramici da 10 picofarad
  • R1-R4 – 10 KOhm
  • R5 – 1 KOhm
  • R6 – 1 KOhm
  • D1 – Led 5mm Rosso
  • J1-J3 – 0 ohm o ponticelli
  • J6/J7 – 0 ohm o ponticelli
  • J4-J5 – SIP 6 poli
  • P1 – DIP 10 poli
  • Morsettiere da cs

Si interfaccia al Personal Computer mediante la porta tastiera (PS2) e dispone di una morsettiera a cui collegare i vari pulsanti (es. microswitch). La tabella di corrispondenza tra i pulsanti e il codice tastiera da inviare è programmabile tramite un semplice script da eseguire sotto msdos.

 

Realizzazione :

 

Una volta realizzato il circuito stampato con il master prelevabile da qui e montato tutti i componenti come da shema di montaggio, non rimane che programmare l’AT90S9515 con il firmware prelevabile da qui.

 

 

Il mio prototipo:

Come si vede in questa foto non ho montato P1, J6, J7 e R6 che servono solo per la programmazione in-ciruit con l’apposito cavetto e software (vedi qui). (attenzione, il cavo và leggermente modificato)

Consiglio cmq vivamente di utilizzare un programmatore eventualmente in proprio possesso o di costruirne uno.

Personalmente ho usato un vecchio programmatore costruito in passato con il software IC-Prog .

 

Collaudo (1) :

Prima di collegare il dispositivo al PC potete alimentarlo tramite una tensione di 5Vcc applicata tra +Vcc e Gnd.

Se avete fatto tutto correttamente il LED D1 lampeggiera molto velocemente.

Se invece il lampeggio di D1 è lento ed incostante fate riferimento alla tabella in fondo a questa pagina per informazioni sull’errore riscontrato dalla CPU (AT90S815).

 

Collaudo (2) :

A questo punto non vi resta che realizzare due cavetti mediante l’uso di due Mini-Din 6 (uno maschio ed uno femmina) e due connettori adatti ad essere inseriti in J4/J5 secondo lo schema sotto riportato :

J4/J5                     PS2

—–                     —

Pin 1 <----------------> Pin 1

 

Pin 3 <----------------> Pin 3

 

Pin 4 <----------------> Pin 4

 

Pin 5 <----------------> Pin 5

 

 

 

Collegate il dispositivo alla porta PS2 del vostro computer (preferibilemente spento) tramite J5, collegate la vostra tastiera al BBOX mediante il connettore J4 e accendete il PC.

Nota: se avete collegato il circuito ad una tensione di 5vcc come suggerito piu sopra, ricordatavi di scollegare tale sorgente prima del collegamento al pc in quanto l’alimentazione viene prelevata direttamente dalla porta tastiera.

Il led inizierà a lampeggiare velocemente (spero per voi) e il ButtonBox funzionerà secondo la configurazione predefinita .

Verificatelo collegando uno dei Bxx a massa e osservate se al PC viene inviato il codice giusto.

Se per esempio gollegate a massa il contatto B9, dovreste vedere comparire a schermo il carattere “R” ripetuto fino a quando non togliete il contatto.

Il circuito commuta automaticamente tra Tastiera e BBox mediante l’integrato 74HC66 per cui è possibile utilizzarlo senza il bisogno di collegare o scollegare il tutto ogni volta.

  1. February 19th, 2016 at 20:37 | #1

    Michele :

    Ho provato come hai detto, ed il led continua a lampeggiare. Dovrei collegare il circuito al pc senza usare una tastiera esterna, potresti dirmi come collegarla, specificando se sul connettore J4 o J5 e su quale pins di tale connettore collegare i segnali data e clock provenienti dalla ps2? Giusto per essere sicuro… grazie

    Per collegare il circuito al pc usa J5 e se non usi la tastiera puoi lasciare J4 libero. I pin da collegare sono 1,3,4 e 5 su entrambi i connettori, quindi 1 con 1, 3 con 3 e così via. Verifica la numerazione dei pin sul connettore.

    Michele :

    E il led adesso lampeggia lentamente per 4 volte , pausa

    Purtroppo l’AT90S8515 soffre di un problema di corruzione dei dati della eprom se si “gioca” con l’alimentazione nel senso che se stacchi e attacchi i cavi con l’alimentatore o il pc accesso rischi di dover riprogrammare il micro come in questo caso.
    Per risolvere il problema ho installato sul circuito un DS1233 posizionandolo sotto il circuito stampato.
    Se vorrai fare questa modifica sarò lieto di dirti come collegarlo anche se in realtà è molto intuitivo e banale se guardi il datasheet.

  2. Michele
    February 19th, 2016 at 08:30 | #2

    E il led adesso lampeggia lentamente per 4 volte , pausa

  3. Michele
    February 19th, 2016 at 08:20 | #3

    Ho provato come hai detto, ed il led continua a lampeggiare. Dovrei collegare il circuito al pc senza usare una tastiera esterna, potresti dirmi come collegarla, specificando se sul connettore J4 o J5 e su quale pins di tale connettore collegare i segnali data e clock provenienti dalla ps2? Giusto per essere sicuro… grazie

  4. February 18th, 2016 at 20:39 | #4

    @Michele
    Se il led lamppeggia molto velocemente significa che il micro AT90S8515 è stato programmato correttamente, quindi posso solo ipotizzare qualche errore di montaggio o collegamento.
    Per escludere errori nel cablaggio dei cavi PS2 prova ad alimentare il circuito scollegato da tutto il resto applicando una tensione di 5volt tra i pin VCC e GND. A quel punto prova a portare il pin di un qualsiasi pulsante al GND. Il led deve continuare a lampeggiare velocemente ed ininterrottamente. Se non è così devi controllare attentamente tutto il circuito.

  5. Michele
    February 18th, 2016 at 19:22 | #5

    Ciao ho terminato il montaggio, ho usato un AT90S8515, appena acceso il led lampeggia molto velocemente, ho collegato J5 al connettore PS2 del pc e una tastiera al connettore J4 ma quando provo a mettere a massa uno dei contatti il led smette di lampeggiare e rimane fisso, e a schermo non ottengo nulla. Dove ho sbagliato?

  6. February 9th, 2016 at 16:49 | #6

    @Michele
    Ai mi ero posto lo stesso problema ed avevo trovato informazioni circa la possibilità di settare l’ ATMEGA8515 in modalità compatibilità con l’ AT90S8515 tramite la programmazione di appositi fuses.
    No ho mai però provato questa strada.

  7. Michele
    February 9th, 2016 at 16:19 | #7

    E’ possibile utilizzare un ATMEGA8515 al posto dell’ AT90S8515?

  1. No trackbacks yet.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close