C64-Wiki:Ablage/Zeichen12357

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Zeichen 1 3 5 7 9 +[Quelltext bearbeiten]

aus www.forum64.de

System: Brotkastendesign, aber in weiss und mit grüner LED. Also ein C64G. Board: Assy 250469, PCB 252311, Rev.B

Fehlerbeschreibung: Wenn die Tastatur dran ist, so kommen die folgenden Zeichen: 1, 3, 5, 7, 9, +, und das Pfundzeichen. Das ist genau eine Reihe in der Keyboard-Matrix (PB0). Dies ist unabhängig von der verwendeten Tastatur. Bei Anschluss eines Joysticks in Port 1 kommen die Zeichen ebenso (sogar schneller). Ich hab mal den Tastaturanschluss und die entsprechenden Pins am 6526(U1) mit dem Logikprüfer gestestet:

Pin5-11 - Row1 bis 7 - Dauer HI
Pin12 - Row0 - Langsame Hi-Frequenz
Pin13-19 - Col0 bis 6 - Regelmäßige HI-Frequenz
Pin20 - Col7 - Unregelmäßige LO-Frequenz

Da tippe ich mal, das da der CIA (U1) hinüber ist?

Erster Lösungshinweis: Ich würde mal versuchen, einen Pullup-Widerstand von so 4k7 an PB0 zu schalten - vielleicht ersparst Du Dir damit das Wechseln der CIA. Das sollte Streusignale schwächen - was anderes kann es nämlich eigentlich nicht sein.

Lösung durchgeführt: Ich habe jetzt einen 4,7k Ohm Widerstand zwischen Pin 10 (PB0) und Pin 20 (Vcc) gelötet. Er geht wieder!! Hast Du noch eine kurze technische Erklärung für mich, was ich da eigentlich genau getan habe? Und was wohl kaputt war?

Technischer Hintergrund: Naja, also die Technische Begründung sieht folgendermassen aus: Die Spalten der Tastaturmatrix werden von der CIA immer nacheinander auf GND gezogen. Die Zeilen werden normalerweise von den Internen Pullups der CIA auf high gehalten. Wenn man jetzt eine Taste drückt, dann wird ein Spalte mit einer Zeile verbunden, und der C64 kann das durch den Lowpegel auf der Zeile feststellen, wenn die entsprechende Spalte grade auf GND liegt.

Wenn nun an einer der Zeilenleitungen der Pullup in der CIA geschwächt ist, so empfängt sie sporradisch Störsignale. Das wird dadurch verstärkt, das man eine lange Leitung daran anschliesst, wie vom Joystick oder dem Keyboard. Der C64 erkennt dann zufällig Tasten in dieser Zeile, je nachdem, wann er die Störung empfängt. Der nun extern angebrachte Pullup verstärkt den in der CIA. Deswegen funktioniert es nun wieder. Es kann sein, das der PB0 auch insofern defekt ist, dass er jetzt nicht mehr als Ausgang funktioniert. Das sollte aber mit 99% der Software keine Probleme machen. Geos fragt die Tastatur wohl andersherum ab, also Eingänge und Ausgänge genau vertauscht. Kannst ja mal probieren, ob die entsprechenden Tasten bei Geos nicht funktionieren.