What's new
iamretro

Wow! It seems you have yet to create an account with us! Needless to say, you have to register in order to get the full "iamretro" experience! You will then be able to create your own topics, reply to posts and be an active member of the MOST prolific community in Greece (even further than that, but we're being modest for now). So don't delay! REGISTER!

ΣΩΣΤΗ προσθήκη 5volt σε joystick port του Amstrad CPC, για λειτουργία autofire και μετατροπέων

ikonsgr

Retro Starter
Joined
Dec 8, 2016
Messages
17
Συνεχίζοντας την παρουσίαση των Project για τα αγαπημένα μας Home Micro's, αυτή τη φορά θα ασχοληθούμε με κάτι που αφορά τους κατόχους Amstrad CPC (464/664/6128/6128 Plus)
Όπως φαντάζομαι θα γνωρίζετε οι περισσότεροι, τα Joystick port των CPC δεν διέθεταν 5volt τροφοδοσία, όπως συνέβαινε σχεδόν με όλους τους άλλους Home micros της εποχής (Amiga, Atari ST, 8bit, Atari, C64, Vic 20 κτλ)
Ο λόγος βασικά ήταν, ο περίεργος τρόπος με τον οποίο λειτουργούσε η θύρα Joystick στους Amstrad, όπου αντί να υπάρχει ξεχωριστό I/O port , τα σήματα του Joystick χρησιμοποιούσαν γραμμές από το Ι/O του πληκτρολογίου. Για να μην υπάρχει μπέρδεμα ανάμεσα στα δύο λοιπόν, γινόταν ένα είδος πολύπλεξης, όπου κάθε 0.02sec το Common/Ground pin 6 του joystick port άλλαζε στάθμη από 5volt(High) σε 0volt (Low), και μόνον τότε ο amstrad διάβαζε τα σήματα του Joystick. Επιπλέον, όσο το Common pin ήταν στα 5Volt (High), όλα τα άλλα σήματα του Joystick (Πάνω,κάτω,αριστερά,δεξιά, fire) θα έπρεπε να είναι απομονωμένα (isolated) από την θύρα Joystick ,γιατί διαφορετικά παρεμβάλλονταν στην λειτουργία του πληκτρολογίου, με αποτέλεσμα κάποια πλήκτρα να μην λειτουργούν ή το πάτημα κάποιων άλλων να φέρνει και "σκουπίδια" (δηλαδή άσχετους χαρακτήρες, όπως και control χαρακτήρες).
Όπως καταλαβαίνετε, το γεγονός ότι το Pin 6 της θύρας Joystick, αντί να έχει το Common/Ground (δηλ. την τάση αναφοράς 0volt) είχε ένα παλμικό σήμα, συν το γεγονός της περιοδικής ανάγκης απομόνωσης των σημάτων του Joystick, απέτρεψε την προσθήκη τροφοδοσίας των 5Volt η οποία εκείνη την εποχή ήταν απαραίτητη μόνον για την λειτουργία του autofire, σε όσα Joystick διέθεταν κάτι τέτοιο βέβαια.
Ερχόμενοι στο σήμερα όμως, εκτός από το autofire, η έλλειψη αυτή, αποτρέπει και την λειτουργία οποιουδήποτε adapter/μετατροπέα σχεδιασμένου για το 9Pin Joystick port στον οποίο υπάρχει εσωτερικά κάποιο κύκλωμα που απαιτεί την τροφοδοσία των 5Volt. Χαρακτηριστικό παράδειγμα οι 2 μετατροπείς για 15Pin Pc Joysticks όπως και για Usb Joysticks/Gamepads, που τυχαίνει να φτιάχνω ο ίδιος ! :D
Για τον λόγο αυτό (συν το ότι ο Amstrad cpc 6128 ήταν η "πρώτη μου αγάπη" ;) ) αποφάσισα να βρω έναν τρόπο, ώστε να παρέχω τα πολυπόθητα 5Volt στο Joystick port, χωρίς όμως να επηρεάζει την λειτουργία του πληκτρολογίου. Δυστυχώς κάτι τέτοιο δεν γίνεται απλά με την προσθήκη των 5Volt στο Pin 7 και των 0Volt στο Pin 8, γιατί όπως είπαμε παραπάνω, αυτό, αφενός θα μπλοκάρει την σωστή λειτουργία του πληκτρολογίου, και αφετέρου τα σήματα από το Joystick θα φέρνουν και πολλά "σκουπίδια", και ιδίως οι control χαρακτήρες, δημιουργούν προβλήματα με την λειτουργία του Joystick σε πολλά παιχνίδια (κομπλαρίσματα, παγώματα κτλ).
Να μην σας τα πολυλογώ άλλο, η λύση βρέθηκε σε μία πολύ γνωστή ηλεκτρονική διάταξη που λέγεται τρισταθής απομονωτής 3 State Buffer. Τι είναι τώρα αυτό θα μου πείτε. Πρακτικά δεν είναι τίποτα άλλαο, παρά ένας ηλεκτρονικός διακόπτης, ο οποίος ελέγχεται από κάποιο σήμα "enable", όπου ανάλογα με το αν αυτό το σήμα είναι High ή Low ανοίγει ή κλείνει τον διακόπτη. Στην περίπτωσή μας, χρειαζόμαστε 5 τέτοιους διακόπτες (έναν για κάθε κίνηση + το fire) οι οποίοι θα ενργοποιούνται μόνον όταν το σήμα enable θα είναι Low. Ευτυχώς ύπαρχει έτοιμο τέτοιο ολοκληρωμένο, και συγκεκριμένα το 74LS367 ένας Hex 3 State Buffer, όπου διαθέτει 6 τέτοιους διακόπτες "πακέτο". Παρακάτω σας δίνω το σχηματικό διάγραμμα του απαιτούμενου κυκλώματος:

Όπως θα διαπιστώσετε, το όλο κύκλωμα είναι πολύ απλό, στη πράξη παρεμβάλλουμε το τσιπάκι ανάμεσα στο Joystick και την θύρα του amstrad, βάζοντας και την απαραίτητη τάση τροφοδοσίας. Να σημειώσω ότι η ύπαρξη της αντίστασης 220Ω σε σειρά με την τροφοδοσία των 5volt , μπήκε ώστε να προστατευτούμε από τυχόν βραχυκύκλωμα το οποίο μπορεί να συμβεί αν το Joystick που θα συνδέσουμε, υποστηρίζει και 2ο Fire για τον Amstrad CPC (συνήθως αυτά είχαν ένα διακόπτη όπου έγραφε "CPC 464", π.χ. το Quick Joy II Turbo). Η Amstrad, μιας και το Pin 7 οπου κανονικά έμπαινε η τροφοδοσία, ήταν άχρηστο, σκέφτηκε να το χρησιμοποιήσει ως 2ο fire button. Αν όμως σε αυτό το Pin επαναφέρουμε με τον ανωτέρω μετατροπέα, την τροφοδοσία των 5Volt, πατώντας το 2ο Fire θα είχε ως αποτέλεσμα να βραχυκυκλώνουμε τα 5Volt με το Ground/0Volt. Η αντίσταση λοιπόν υπάρχει γι'αυτόν ακριβώς τον λόγο.
Να και ένα prototype που έφτιαξα για τις δοκιμές:


Για όποιο θέλει να το φτιάξει λοιπόν, το μόνο που χρειάζεται είναι ένας 74LS367 Hex Buffer, ένα Female και ένα Male 9pin D connector, Μία αντίσταση 1/4W 220Ω, και ένα καλώδιο Y τροφοδοσίας, τα οποία ευτυχώς τα φτιάχνουν οι κινέζοι σχεδόν τζάμπα , και απλά, θα κόψετε το ένα "βαρελάκι", κολώντας το κόκκινο καλωδιάκι στο ένα άκρο της αντίστασης, και το άλλο στο Ground όπως φαίνεται στο σχέδιο!
 

Attachments

  • AMSTRAD_JOY_PSU.jpg
    AMSTRAD_JOY_PSU.jpg
    77.1 KB · Views: 81
  • amstrad_psu.JPG
    amstrad_psu.JPG
    415.5 KB · Views: 81

nkary

Too Retro to post!
Comrade
Joined
May 20, 2012
Messages
4,431
Μπράβο ρε Γιάννη.
Νομίζω ότι δεν θα είχε κανείς πρόβλημα να βάλεις και ebay links από αυτά που κατασκευάζεις ;)
 

turrican

Retro Guru
Comrade
Joined
Jun 13, 2012
Messages
2,875
nkary said:
Μπράβο ρε Γιάννη.
Νομίζω ότι δεν θα είχε κανείς πρόβλημα να βάλεις και ebay links από αυτά που κατασκευάζεις ;)
Από το στόμα μου το πήρες!
Φτιάχνεις διάφορα πράγματα και για άλλα formats; έχεις κάποιο eshop;
 

dR_wH0

Solder Noob
Staff member
Comrade
Joined
Mar 24, 2012
Messages
5,840
Φυσικά δεν θα υπήρχε πρόβλημα. Μπορούμε να τον βγάλουμε και στην κεντρική σε widget αμα θέλει.
 

geoanas

Commodore Vampire
Staff member
Comrade
Joined
Oct 21, 2012
Messages
7,302
...κι από εμένα...clear! ;)
 

ikonsgr

Retro Starter
Joined
Dec 8, 2016
Messages
17
turrican said:
Φτιάχνεις διάφορα πράγματα και για άλλα formats; έχεις κάποιο eshop;

Eυχαριστώ ρε παιδιά, το "παραμάγαζο" που έχω στο ebay είναι αυτό

Btw, μόλις πριν λίγο ανακάλυψα ότι με έχουν βάλει σε "sticky" θέμαστο cpc wiki! Φαίνεται ότι δεν υπάρχουν και πολλοί που να φτιάχνουν πράγματα για home micros πέραν από τα κλασσικά scart καλώδια και κάποια τροφοδοτικά, οπότε κάποιος moderator θα θεώρησε ότι το "παραμαγαζο" μου θα πρέπει να είναι εύκολα προσβάσιμο! :)
 
Top