Tastatur
Auf einem Trödelmarkt habe ich die Tastatur eines KC85 entdeckt. Der KC85 war ein Computer, der in der DDR hergestellt wurde. Für eine kleine Zeitreise habe ich die Tastatur mit einem USB-Anschluss ausgestattet. Es gibt sogar eine @-Taste und ein paar Spezialitäten, zum Beispiel eine Negator-Taste (¬).
Um das Signal am Ende des Steckers zu dekodieren, brauchte ich ein Oszilloskop. Ja, ich habe mich finanziell ruiniert, um eine 5-Euro-Tastatur zu retten. Das ursprüngliche Signal besteht aus einer Abfolge von kurzen Bursts. Ein Burst besteht wiederum aus fünf kurzen Pegelwechseln, das heißt die Spannung wird fünf Mal hintereinander kurz nach unten gezogen:
Das geht alles sehr schnell, der gesamte Burst ist nach 144 Mikrosekunden vorbei. Um Buchstaben zu kodieren, wird eine Folge von Bursts gesendet, die für eine Folge von Bits stehen. Das funktioniert wie Morsezeichen. Der Zeitabstand zwischen den Bursts bestimmt, ob es sich um eine 1 (ca. 7 Millisekunden) oder eine 0 (ca. 5 Millisekunden) handelt. Mit längeren Abständen wird das Ende der Bitfolge markiert. Insgesamt werden pro Tastenanschlag sieben Bits gesendet, so sind 2 ^7 = 128 verschiedene Zeichen möglich. Die Bitfolge wird so lange wiederholt, wie die Taste gedrückt ist. Das sieht mit einem Oszilloskop wie folgt aus:
Die dünnen Striche sind die Bursts. Wenn man in einen dieser dünnen Striche reinzoomt, dann sieht das aus wie im Bild oben.
Eine Schwierigkeit bei der Umsetzung war, dass der Pegel gleichzeitig insgesamt nach oben gezogen wird, das musste erst mit einem Hochpassfilter ausgefiltert werden. Die Übersetzung des Signals zu USB übernimmt ein ATtiny 85 (auf einem DigiSpark-Entwicklungsboard). Der genaue Verlauf des Projekts ist auf mikrocontroller.net nachzulesen. Vielen Dank für die hilfreiche Mitarbeit der Forenmitglieder - und auch die polemischen Kommentare haben mich erheitert.