News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_DerSchatten

CPC464 Schnurlosen Joystick anschließen

Started by DerSchatten, 20:09, 25 January 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DerSchatten

Ich möchte gerne an einem CPC464 einen Funk-Controller betreiben.
Dies setzt einige Gegebenheiten voraus, weil der Empfängerteil auch mit Spannung versorgt werden möchte.

Zu aller erst benötige ich auf PIN 7 des DB9 Steckers +5V. Das wäre mal das kleinere Problem. Unterbreche da einfach FIRE2 und lege dort +5V an.
Das weit aus größere Problem ist allerdings der GND. Der müßte für den Empfänger auf PIN 8 liegen. (So wie beim C64)
Dort ist im CPC allerdings der COMMON belegt.

Dieser ist jedoch kein wirklicher GND oder? Laut Schaltplan geht dieser zum Keyboard PIN1 und auf "irgendwas" PIN 11.
Gibt's da eine Möglichkeit das umzubauen?

Jemand einen Tipp?

Bryce

Der common geht auf 0V alle 300ms, wenn die Tastatur gescannt wird. Wäre es nicht einfacher 5V un GND von der Powerbuchse zu holen? Außerdem, dein Empfänger darf nicht die Joystick inputs mit GND kurzschliessen, die dürfen nur mit Common kurzgeschlossen werden.

Bryce.

DerSchatten

Ja, das habe ich schon vermutet.

Dann kann ich das knicken, denn da hängt ein ATMEL dahinter der entweder LO oder HI an die Ausgänge ausgibt.

Warum Schneider/Amstrad das so Kacke gelöst hat versteh ich nicht.

Bryce

Nicht umbedingt. Gucke hier wie ich es mit dem Mouse Adapter gemacht habe. Die Ausgänge des µPs gehen durch einen 74LS240 und der /OE des 74LS240 ist mit COM verbunden. So werden die Signale des µPs nur weitergeleitet wenn COM = 0V:  http://www.cpcwiki.eu/index.php/PS2Mouse

Bryce.

DerSchatten

Danke für den Tipp!
Und bei nicht OV wird PIN 7 mit dem Pull-Up auf HI gezogen?

Gibt es eigentlich Spiele für die man FIRE 1 und COMMON 1 benötigt?

Sonst würde ich mir die Buchse intern so umbauen das dort GND und VCC an liegt.

Bryce

Genau, R15 zieht /OE auf 5V wenn COM nicht 0V ist.

Spiele die Fire 1 benutzen: Nicht das ich wusste.

Bryce.

DerSchatten

COMMON 1 ist der Gemeinsame für Feuer 2 ? Ist das richtig?

Dann wäre COMMON 2 für Feuer 1, wenn ich das so richtig verstehe.
Was ist das denn für eine Logic.

Bryce

Nein COM1 ist für alle Eingänge für Joystick 1, Com 2 ist für alle Eingänge für Joystick 2. Also insgesamt gibt es 6 mögliche "Fire" Eingänge: Fire 1,2,3 mit COM1 (Joystick 1) und Fire 1,2,3 mit Com2 (Joystick 2).

Bryce.

DerSchatten

#8
Dann ist mir die Schaltung von deinem Adapter nicht ganz klar.
Dort ist PIN 8 (COMMON 1) mit dem 74LS240 verbunden. Müßte das nicht COM 2 (PIN 9) dann sein? Weil dieser ja für FEUER 2 (default) zuständig ist.

Hab mal nen Plan gezeichnet.

Links wird der Joystick angeschlossen und rechts kommt das Teil in den CPC-Anschluss.
Kann das so funktionieren?

Bryce

#9
Wo hast du diese Information? COM1 ist verantwortlich für Joystick 1 Feuer 2, COM2 ist verantwortlich für Joystick 2 Feuer 2.

Dein Schaltplan wird nur funktionieren, wenn der angschlossene Joystickempfänger/µP ein HI rausgibt wenn eine Richtung/Feuer gedruckt wurde.

Bryce.

DerSchatten

Der ATMEL gibt ein LO aus beim Schalten.

Wie müßte es dann aussehen?

Bryce

#11
Dann mußt du es umprogrammieren damit es ein HI beim Schalten ausgibt.
Oder ein 74LS241 oder 244 benutzen.

Bryce.

DerSchatten

#12
Da die Software leider nicht von mir kommt und auch nicht frei verfügbar ist, kann ich nur die Hardware ändern.
Dann nehm ich den 74LS241.

Der Rest der Schaltung bleibt ja gleich, oder?

Das mit dem FEUER 2 und COMMON anstelle von COM 2 ist mir jedoch immer noch nicht klar.

Bryce

Quote from: DerSchatten on 15:26, 26 January 17
Da die Software leider nicht von mir kommt und auch nicht frei verfügbar ist, kann ich nur die Hardware ändern.
Dann nehm ich den 74LS241.

Der Rest der Schaltung bleibt ja gleich, oder?

Das mit dem FEUER 2 und COMMON anstelle von COM 2 ist mir jedoch immer noch nicht klar.

Ja, die Schaltung ist sonst i/O.

Was ist nicht zu verstehen. Es gibt 2x Feuer 2: Feuer 2 verbunden mit COM1 ist der default Feuer für Joystick 1. Feuer 2 verbunden mit COM2 ist der default Feuer für Joystick 2.
COM1 = Joystick 1
COM2 = Joystick 2
Alle Eingänge sind für beide Joysticks.

Vielleicht ist die Verwirrung darin, daß ein C64 / Spectrum / Atari hat nur ein Joystick an dem 9pin Sockel, aber CPC hat beide Joysticks an einem Sockel.

Bryce. 

DerSchatten

Nein, die Verwirrung kommt eher von deiner Schaltung, dem Mausadapter. Dort verwendest du COMMON (also PIN 8) für den 74LS240 und nicht den Standard COM 2 (Pin 9)

Bryce

Wieso ist COM2 (Pin 9) standard? Common on Atari and Commodore Joysticks ist auch Pin 8.

Bryce.

DerSchatten

#16
Weil auch der Joystick 2, also Button 2 der Standardknopf ist, oder nicht?
Also zumindest laut Wiki hier: http://www.cpcwiki.eu/index.php/Connector:Digital_joystick

Daher klingt es für mich unlogisch das man COMMON 1 mit Joystickknopf 2 schalten würde.

Oder hat das eine mit dem anderen nix zu tun?

Bryce

#17
Nein:

Joytsick 1 hat 3 mögliche Feuertasten: 1,2 und 3. Alle werden mit COM1 verbunden. Feuer 2 ist der Default = Wenn der Joystick nur ein Button hat, ist es hiermit verbunden.

Joystick 2 hat auch 3 Feuertasten: 1,2 und 3. Alle werden mit COM2 verbunden. Feuer 2 ist der Default = Wenn der Joystick nur ein Button hat, ist es hiermit verbunden.

Am besten nennst du die Feuertasten A, B und C. Dann ist es hoffentlich einfacher zu verstehen.

Bryce.

Vielleicht kann ein Bild es besser erklären:


DerSchatten

Ok, alles klar. Ich glaub jetzt habe ichs :)

COMMON und Taste 2 ist DEFAULT.

Irgendwie hatte ich ständig im Kopf Taste 1 ist Knopf von Joystick 1 und Taste 2 ist Knopf von Joystick 2.

Bryce

#19
Das habe auch gedacht, aber alle meine Erklärungsversuche haben irgendwie nicht geklappt. Ein Bild erzählt 1000 Worte :)

Bryce.

Powered by SMFPacks Menu Editor Mod