Hallo Ich suche einen Chip oder sonnst was, mit dem man eine 8x8 Tastaturmatrix simulieren kann. Dabei müssen die Ausgänge potentialfrei sein!!!!! Also von der Sache her 8x8 elektronische Schalter. Ansteuern möchte ich das über serielle Signale oder notfalls auch parallel. Zur weiteren Information: Ich möchte eine PS/2 Tastatur an einen alten Rechner (C64) anschließen. Bitte nicht lachen ;o). Für die Umwandlung der PS/2 Tastaturasignale in ASCII-Code (seriell) habe ich einen Chip gefunden, was mir ein haufen Arbeit erspart. Die Signale wollte ich auf einen PIC geben, der mir das entsprechend umrechnet wie ich es brauche. Soweit alles klar. Nun erscheint mir die Ansteuerung der C64 Tastatur(-eingages) etwas kriminell, da sehr zeitkritisch. Die Matrix besteh aus 8x8, wobei 8 davon Ausgänge sind und 8 Eingänge, alle Leitungen liegen auf H-Pegel. Soweit ich rausgefunden habe erfolgt die Ansteuerung der Ausgänge per Impulsen. Dummerweise erfolgt bei der 1. Leitung nur ein Impuls, wenn man eine Taste dieser Reihe drückt. So kann ich den Impuls den es eigentlich nicht gibt, mit dem PIC NICHT syncronisieren um den entsprechenden Ausgang gegen Masse zu schalten. Die geringe Rechenarbeit im PIC würde auch eine geringe Verschiebung des Schaltvorganges bedeuten, was vermutlich zu fehlern führt. Dazu kommt, das ich Leitung 1 nicht generell auf L ziehen kann um den Impuls generell zu bekommen , da das ebenfalls vom C64 registriert wird (Joystick). Deshalb werde ich die Signale wohl 1:1 durchschalten müssen. Ich hoffe ich habe es Verständlich geschrieben. Vielen Dank für jeden Hinweis! Gruß Mario
2 Analogmultiplexer (74HC4051). Wenn bestimmte Tasten gleichzeitig gedrückt werden müssen, wirds aber aufwendiger. Peter
Hallo Peter, sehe da keinen Lösungsweg. Einen Ansatz habe ich noch. Ich verbinde die 8 Ausgänge (C64) mit 8 Schaltern (elektronische) diese sind dann alle miteinander verbunden, an den Eingängen das gleiche Spiel. Die 16 Schalter sind dann mit einer Leitung verbunden. So brauche ich nur 16 Schalter, kann dann aber auch immer nur eine Taste (Tastendruck) simulieren. Das wäre denkbar. Shift bekommt dan eben einen gesonderten Schalter. Den Begriff Schalter bitte nicht als solchen mit Hebel verstehen ;o) Gruß Mario
Peters Ansatz: Outputs => 8:1 Muxer => 1:8 Muxer => Inputs. Damit wird eine Verbindung zwischen exakt einem Output und einem Input hergestellt, bzw. bei abgeschaltetem Muxer-Enable keine. Wie Peter schon schrieb, versagt dieses Verfahren, wenn mehrere Tasten gleichzeitig gedrückt werden müssen. Bei mehreren gleichzeitig nötigen Tasten lässt sich das im Prinzip replizieren, aber der Aufwand steigt halt entsprechend. Für Shift/Control-Tasten wird das sicherlich nötig sein, kann aber ggf. entsprechend reduziert werden, d.h. ein 4066 Muxer dürfte dafür reichen. Wobei dann je nach Aufbau der Matrix noch Dioden nötig sein können um Kurzschlüsse zu vermeiden. Luxus-Alternativen: Dual-Port-RAM, Crosspoint-Switches, das PLA in Microcontrollern wie ADuC702x.
Hallo Sorry, da hatte ich mich im Datenblatt verkuckt. Ich war der Meinung das sind NUR 8 Ausgänge. OK, dann würde das gehen und so Versuch ich das mal. Für was brauch ich eine negative Spannung an Vee des 4051?
Mario G. wrote:
> Für was brauch ich eine negative Spannung an Vee des 4051?
Garnicht. Auf GND legen. Die brauchst du, wenn du mit dem Teil auch
negative Spannungen durchschalten willst.
PS: Die Sache mit den Dioden ist Quark. Das Problem hat der Original-C64 genauso, somit wird der verwendete Abfrage-Code einen high/low Konflikt bei gleichzeitig gedrückten Tasten nicht entstehen lassen. PPS: Wobei der Code in http://www.c64-wiki.de/index.php/Tastatur exakt dieses Problem hat, denn bei mehreren gedrückten Tasten werden ohne zusätzliche Massnahmen 2 Outputs miteinander verbunden. Müsste man mal im Schaltplan des C64 nachschauen, ob dagegen irgendwas vorgesehen ist. Andererseits sind 6520/22 bei sowas recht unempfindlich.
Hallo, ich denke auch das der C64 bei mehreren gedrückten Tasten damit kein Problem haben sollte. Die Joysticks ziehen die ein Ein oder auch Ausgänge auch auf Masse. Ganz nachzuvollziehen ist das nicht. Shift liegt auch in der 8x8 Matrix. Im Schaltplan ist da nichts weiter drinne, die Tasten liegen direkt am 6526. Vielen Dank für die Hilfe!!!
Mario G. wrote: > Für die Umwandlung der PS/2 Tastaturasignale in ASCII-Code (seriell) > habe ich einen Chip gefunden, was mir ein haufen Arbeit erspart. Wirklich? Immerhin musst du die Information "gedrückt" und "losgelassen" an die C64 Matrix durchreichen. Auch Information über die Shift-Tasten geht in einem PS/2-ASCII Encoder teilweise über Bord. Ich denke mit dem Original-PS/2-Anschluss bist du besser bedient. Entsprechender Code findet sich beispielsweise in einer AVR AppNote, vielleicht auch bei Microchip.
Also als Chip dachte ich an den hier: TVT-MBKD-12 von http://www.tvterminal.de/prim.html#Impressum der kann allerdings etwas mehr wie nötig. Ich denke auch "nur" ein programmierter AVR. Preislich passt mir das zwar nicht so, aber spart halt Zeit. Wegen dem Shift habe ich nachgefragt wie der gesendete Code dann aussieht. Wenn Shift und der Buchstabe getrennt kommen wäre das blöd, dann müsste ich wirklich wissen ob Shift gedrückt oder losgelassen ist. Das macht mir das PS/2 Protokoll ja so umständlich. Selber schreiben trau ich mich da wirklich nicht. Wenn ich einen Code für einen PIC finde wärs natürlich klasse.
Warum schließt Du die Tasten der Tastatur nicht direkt an den C64 an? Der hat schließlich den Tastaturencoder mit integriert. Was Du machen willst ist viel zu umständlich. Einfach die Elektronik aus der Tastatur ausräumen, ggf. die Tasten neu verdrahten damit die Matrix übereinstimmt und direkt ran.
Mit dem Konverterchip fängst du wenig an, weil der zwar liefert, wann eine Taste gedrückt wurde, nicht aber wann sie wieder losgelassen wurde, und über eine allein gedrückte Shift-Taste liefert er garnichts. Und ich wäre schon erstaunt, wenn diese Info nicht in irgendwelchen Programmen vom C64 genutzt wird (sowas wie: tue A solange Taste "A" gedrückt, sonst B).
Hallo, natürlich habt ihr auf den ersten Blick recht. Eine Tastatur ausräumen ist in der Tat viel einfacher. Die Frage mit der Shift-Taste habe ich mir auch schon gestellt, aber ich denke nur Shift alleine brauch ich nicht und ich muss auch nicht wissen ob eine Taste länger gedrückt wird. Nur bei den Kursortasten wäre das Sinnvoll, wobei ich da auch ohne klar kommen würde. Zugegeben ist jeder Euro den ich da reinstecke verloren. Hier geht es auch mehr um den Spaß und um Erfahrungen zu sammeln. Der ganze C64 Kram soll eigentlich in EINE Kiste, nur die Tastatur soll eben extra sein. Da bei einer PC-Tastatur Tasten "übrig" sind, wollte ich diese mit speziellen Funktionen belegen. Einfacher wäre es einen C128 bei Ebay zu kaufen, aber darum geht es ja nicht ;o). Na mal sehen wie es weiter geht.......
Hallo! Ich weiss, der Thread ist arg alt. Passt aber gerade so schön zu meinem aktuellen Projekt... Versuche hier gerade das Gleiche. Ich verwende zum Schalten einen Crosspoint-Switch MT8812AE der von einem Ardunino Nano angesteuert wird, hab aber noch paar Probleme. Ciao, Andreas
Andreas Rückert schrieb: > hab aber noch paar Probleme. Welche denn? Fang doch einfach mal mit einem neuen Thread an, verlinke diesen Thread darin (wenns irgendwie hilft, das sehe ich aber gerade nicht so) und beschreibe DEINE Schaltung (am besten mit Schaltplan, das ist die Sprache mit der sich Elektroniker verständigen!) und DEINE Probleme damit.
:
Bearbeitet durch Moderator
Vielen Dank für Den Tipp! Aber ich hab hier schon einen Thread: http://www.forum64.de/wbb3/board2-c64-alles-rund-um-den-brotkasten/board107-sonstiges/board44-bastelecke/60148-projekt-pc-tastatur-an-c64-board-anschliessen/#post907573 (Ist nicht der allerletzte Stand dort, aber man bekommt auf jeden Fall nen Eindruck, was ich da treibe.) Mein aktuelles Problem ist aktuell nur, dass die 8. Zeile des Crosspoint-Switch nicht geht. Ich warte gerade auf neue Chips, um das mal mit einem 2. IC gegentesten zu können.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.