Unklare Funktionsweise einer Matrixtastatur (Triumph-Adler-Schreibmaschine)

OP #7294624
Lesenswert?

Hallo,

ich stehe auf dem Schlauch und hoffe jemand schubst mich runter.

Ich bin dabei die Tastatur einer Triumph-Adler Gabriele PFS 
Typenrad-Schreibmaschine durch einen AVR zu ersetzen, um sie als 
"Drucker" zu verwenden. Ähnliche Projekte gibt es einige, z.B. hier: 
https://github.com/xouillet/TypeWriter

Bei der Tastatur handelt es sich um eine 8x9 Matrix-Tastatur.

Üblicherweise funktionieren die Tastaturen doch so, dass die Reihen 
nacheinander von VCC kurz auf GND gezogen werden, und geguckt wird, in 
welcher Spalte das gleiche passiert. Wenn ich mit dem Oszilloskop messe, 
liegt die Reihe [gelb] auf VCC und die Spalte [grün] durchgehend auf GND 
(bis auf dieses Brummen?) (Bild 1).

Wenn ich jetzt Reihe & Spalte verbinde (Taste drücke) passiert das, was 
auf Bild 2 zu sehen ist. Die Spalte geht auf VCC und plötzlich kommen 
diese Pull-Downs, die vorher nicht zu sehen waren. Wo kommen die her? 
Wie ist das üblicherweise aufgebaut? Die müssten doch in der gelben 
Reihe schon vorher zu sehen gewesen sein..?
Die Pulsweiten sind verschieden, meistens 20µs oder 65µs abwechselnd, 
bei manchen Tasten nur 20µs.

Kann mir jemand sagen, wie die Funktionsweise sein dürfte?

Vielen Dank!
Angehängte Dateien:
Gast #7294662
Lesenswert?

Mglw wird die Spalte zyklisch für 20µs auf '0' gesetzt und das 'sieht' 
der am zeilentreiber hörende Input.

Also wenn 23*5ßs nach zyklusstart Puls kommt ist es der 23 Buchstabe auf 
der Tastatur. Oder bei Matrixauslesen kommt eben beim 5. (Spalten)puls, 
die Codierung entsprechend der 5. Spalte. Da musste man sich maldie 
verdrahtung der Tastatur anschauen, die könnte man auch stromlos 
durchklinkeln.

Also welchen Jahr stammt denn die Technik der Triumph-Adler Gabriele PFS 
? Welche Technik war den damals verfügbar? (TTL-Grab ? 8bit controller?, 
alles analog?)


Vielleicht wird auch ein alttes Fernschreibersignal nachgestellt.
Gast #7294752
Lesenswert?

Peter D. schrieb:

> Nun, die Eingänge haben Pulldowns.
> Geht einer auf high, erfolgt die Abfrage welcher Kreuzungspunkt das ist,
> d.h. wann der Eingang eine H->L Flanke hat.

Ganz genau.

Zuerst wird nur die Tatsache erfasst, dass überhaupt irgendeine Taste 
gedrückt wurde. Das geht noch ohne irgendeine zyklische Aktivität, 
typisch (aber nicht zwingend) über einen gemeinsamen asynchronen 
Interrupt für alle Eingänge.

Erst dieses Triggerereignis löst dann das Polling der Matrix aus, mit 
dem festgestellt wird, welche Taste(n) gedrückt wurde(n).
Gast #7295151
Lesenswert?

Ju J. schrieb:
> Ich bin dabei die Tastatur einer Triumph-Adler Gabriele PFS
> Typenrad-Schreibmaschine durch einen AVR zu ersetzen, um sie als
> "Drucker" zu verwenden.

Hatte sowas vor Jahrzehnten mal an meiner "Gabi" nachgerüstet. Deren 
Gehirn basierte auf einem 8048 und einem EPROM (wimre) 2716. Dort hatte 
ich eine Centronix mit FIFO nachgerüstet (ersetzte den Tastaturscanner). 
Schnittstellenhardware war ein 74LS373/374.

Du musst auf jeden Fall den Handshake bedienen (FIFO full / 
n-key-rollover) - sonst bekommst du einen Überlauf und es gehen Zeichen 
verloren.

Unterlagen müsste ich raus suchen, ASM48-Code liegt auf 8"-Disketten 
(CP/M - sofern noch lesbar).
Gast #7295189
Lesenswert?

Jester schrieb:
> Du musst auf jeden Fall den Handshake bedienen (FIFO full /
> n-key-rollover) - sonst bekommst du einen Überlauf und es gehen Zeichen
> verloren.

Stimmt genau.
ODER so-langsam senden, daß die Gaby in jedem Fall (auch bei 
Wagenrücklauf) noch zuverlässig mitkommt.

Interessant wären mal Oszillogramme/LogicAnalyzer-Ergebnisse des 
Protokolls bei gedrückter SHIFT-Taste.
#7295199
Lesenswert?

Beitrag "Re: Wann habt ihr eure Schreibmaschine durch einen Computer ersetzt?"
da hatte ich erst neulich das "Centronics-Interface" meiner 
Typenradschreibmaschine gezeigt. Es stammte nicht von mir und 
funktionierte noch ganz ohne Mikrocontroller, nur mit Eprom und 
Analogschaltern.

Aber die "Gabriele" hatte damals schon einen Computeranschluss, 
irgendein Rundstecker. Es gab dazu Software zur Verwendung als Drucker.
Gast #7295300
Lesenswert?

Mein Gabi-Umbau (Privileg Electronic 3000) sah so aus:

IMG_1175b: Centronix-Schnittstelle und Umschalter Schreibmachine/Drucker

IMG_1177b: Centronix-Schnittstelle TC40H374  TC40H074  74HC368

IMG_1178b: "Verdoppeltes" EPROM. Der Umschalter (von IMG_1175b) bedient 
direkt die höchste Adressleitung.

Ich habe nie versucht die Tastaturmatrix zu emulieren, sondern dem 8039 
ein angeändertes Programm untergeschoben. Aber das hatte ich ja schon 
oben beschrieben.
Angehängte Dateien:
OP #7295469
Lesenswert?

Liebe Community,
vielen Dank für die vielen Antworten, insbesondere auch an jester und 
Christoph db1uq K. für die Bilder/den Artikel.

c-hater schrieb:
> Zuerst wird nur die Tatsache erfasst, dass überhaupt irgendeine Taste
> gedrückt wurde. Das geht noch ohne irgendeine zyklische Aktivität,
> typisch (aber nicht zwingend) über einen gemeinsamen asynchronen
> Interrupt für alle Eingänge.
>
> Erst dieses Triggerereignis löst dann das Polling der Matrix aus, mit
> dem festgestellt wird, welche Taste(n) gedrückt wurde(n).

Ich denke das wird es sein. Wobei ich nicht hinbekommen habe, das 
Polling auszulösen, indem ich die grüne Leitung auf VCC ziehe. Oder eben 
nicht, sinnvoll zu triggern bei dem Brummen. Die Masse klemmt an einem 
GND-Beinchen von irgendeinem Logik-IC in der nähe mit etwas Kabel nach 
draußen. Vielleicht fungiert das als Antenne. Werde mal schauen, ob ich 
das auch ohne Brumm hinbekomme.

Schöner wäre natürlich die Lösung, die im MC-Artikel steht, ich werde es 
mir mal einverleiben. Daran kann ich auf alle Fälle dann noch was 
lernen.
Gast #7295790
Lesenswert?

Ju J. schrieb:

> Wobei ich nicht hinbekommen habe, das
> Polling auszulösen, indem ich die grüne Leitung auf VCC ziehe.

Du solltest beachten, dass "Zeile" und "Spalte" völlig willkürliche 
Begriffe sind. Sie sind tatsächlich austauschbar. Sprich: wenn das grüne 
Signal nicht auf High reagiert, dann wird mit an Sicherheit grenzender 
Wahrscheinlichkeit wohl das gelbe Signal auf Low reagieren müssen...

Elektrisch ist das gleichwertig. Es hängt halt schlicht davon ab, wo die 
Eingänge und wo die Ausgänge sind und was der durch Widerstände erzeugte 
Idle-Pegel der Eingänge ist.
#7295978
Lesenswert?

Auf dem Oszi siehst Du nur, wann welche Leitung welchen Pegel hat, aber 
nicht, wann die Eingänge abgefragt werden. Sie könnten sogar je Puls 
mehrfach abgefragt werden, um Störungen zu unterdrücken.
Es ist daher nicht so einfach, die Tasten in Software zu simulieren.

Die MUXer Variante verhält sich aber immer, wie eine echte Taste.
Falls 2 Tasten gleichzeitig betätigt werden müssen, kann man die 
Umschalttasten mit einem 74HC4066 emulieren. So viele werden es ja nicht 
sein. Der 74HC4066 kann dann die 9. Reihe und 3 Umschalttasten 
emulieren, d.h. es bleibt bei 3 ICs.
Gast #7295994
Lesenswert?

Christoph db1uq K. schrieb:

> Für ein n-key-rollover muss an jeder Taste noch eine Diode vorhanden
> sein.

Das ist zwar vollkommen richtig, aber gleichzeitig in diesem Thread 
absolut irrelevant.

Denn es geht hier nur darum, eine existierende Tastatur 
"fernzubedienen". Ob die nun Tastenkombis unterstützt oder nicht (also 
die Dioden vorhanden sind oder nicht), ist in diesem Kontext sowas von 
scheißegal...

Sie ist halt, wie sie ist und soll auch nur innerhalb ihrer 
Möglichkeiten "bespaßt" werden. Das war's.
Gast #7295998
Lesenswert?

Peter D. schrieb:

> Auf dem Oszi siehst Du nur, wann welche Leitung welchen Pegel hat, aber
> nicht, wann die Eingänge abgefragt werden.

Das ist nicht der Punkt. Der Punkt ist: man muß erstmal herausfinden, 
was zum Teufel eigentlich die Eingänge und was die Ausgänge sind.

Diese Analyse hat allerdings der TO bereits geleistet: Er hat 
festgestellt, dass das "grüne Signal" wohl kein Eingang ist. Da wird die 
Wahl dann doch irgendwie eng...
Gast #7297110
Lesenswert?

Ju J. schrieb:
> Ich stehe auf dem Schlauch und hoffe jemand schubst mich runter.
>
> Ich bin dabei die Tastatur einer Triumph-Adler Gabriele PFS
> Typenrad-Schreibmaschine durch einen AVR zu ersetzen, um sie als
> "Drucker" zu verwenden.

Tritt einfach mal einen Schritt zurück und betrachte dein Problem mit 
etwas mehr Abstand. Du wirst dann erkennen: Es gibt sehr 
unterschiedliche Lösungswege. Doch durch deine voreilige Festlegung auf 
„Tastatur durch AVR ersetzen“ und „Zeilen-/Spalten-Matrix“ verbaust du 
dir den Weg.

Ein durchaus pragmatischer Weg wäre, deine Gabi in die Tonne zu treten 
und dir in der Bucht eine Maschine mit Interface zu schießen.

Eine der aufwendigeren Lösung wäre, jede Taste mit einem Analogschalter 
zu überbrücken -- und diese dann geeignet anzusteuern.

Dazwischen gibt es noch weitere Möglichkeiten, so auch die von mir vor 
Jahrzehnten Gewählte, nämlich eine Schnittstelle nachzurüsten und dem 
Original-uC ein abgeändertes Programm unterzuschieben.

Hätte ich das heute nochmal zu tun, ich würde zu Lösung #1 tendieren und 
mich in der Bucht umsehen...
#7297330
Lesenswert?

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren