Forum: Mikrocontroller und Digitale Elektronik Unklare Funktionsweise einer Matrixtastatur (Triumph-Adler-Schreibmaschine)


von Ju J. (juser)


Angehängte Dateien:

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!

von pegel (Gast)


Lesenswert?

Ich würde auf jeden Fall die horizontale Auflösung eher in den ms 
Bereich stellen. Vermutlich gibt das ein anderes Gesamtbild.

von Fred Focus (Gast)


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.

von Peter D. (peda)


Lesenswert?

Ju J. schrieb:
> Kann mir jemand sagen, wie die Funktionsweise sein dürfte?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

pegel schrieb:
> die horizontale Auflösung
Sehe ich das richtig, dass die da 49µs/div ist?
Wie bekommt man so einen Wert eingestellt?

Ju J. schrieb:
> (bis auf dieses Brummen?)
Wo hast du denn die Masseklemme des Oszis angeklemmt?
Das sieht aus, als ob die Masse übers E-Werk verbunden wäre.

von Peter D. (peda)


Lesenswert?

Eine 8*8 Matrix kann man mit 2 Stück 74HC4051 nachbilden.
Eine 8*16 Matrix kann man mit 3 Stück 74HC4051 nachbilden.

von c-hater (Gast)


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).

von Michael B. (laberkopp)


Lesenswert?

Peter D. schrieb:
> Eine 88 Matrix kann man mit 2 Stück 74HC4051 nachbilden.

Vorausgesetzt, man muss nicht 2 oder mehr Tastendrücke emulieren

Gross-A, Ctrl-Alt-Del.

von Jester (Gast)


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).

von Hermann Kokoschka (Gast)


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.

von Christoph db1uq K. (christoph_kessler)


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.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Peter D. schrieb:
> Eine 8*8 Matrix kann man mit 2 Stück 74HC4051 nachbilden.
> Eine 8*16 Matrix kann man mit 3 Stück 74HC4051 nachbilden.

Das Problem ist, dass durchaus mehr als eine Taste gleichzeitig gedrückt 
werden muss.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Da war der Artikel in der "mc", 1982:
Schreibmaschinen-Interface f.Gabriele-8008 82/11/41
https://www.c-c-g.de/literatur/363-mc-zeitschrift-franzis-verlag
hier habe ich den Artikel, aber den Anschlusstecker habe ich falsch in 
Erinnerung, das Interface arbeitet auch mit Eprom und 
TTL-Decoder/Vergleicher.

: Bearbeitet durch User
von Jester (Gast)


Angehängte Dateien:

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.

von H. H. (Gast)


Lesenswert?

Jester schrieb:
> Ich habe nie versucht die Tastaturmatrix zu emulieren, sondern dem 8039
> ein angeändertes Programm untergeschoben.

MCS-48 Assembler war noch was für echte Männer. ;-)

von otto (Gast)


Lesenswert?


von Ju J. (juser)


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.

von c-hater (Gast)


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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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

Pollin (und Conrad) hatten mal ein aufrollbares "Klavier" ohne diese 
Dioden, das war in 35€ nicht mehr drin. Sobald man mehr als drei Töne 
gleichzeitig anschlägt ertönt noch ein vierter Missklang.

von Peter D. (peda)


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.

von c-hater (Gast)


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.

von c-hater (Gast)


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...

von Peter D. (peda)


Lesenswert?

Man kann ja mit der Taste einen Widerstand in Reihe schalten, dann sieht 
man, welches Signal nicht ganz auf H oder L geht, z.B. 1k oder 100R.

von Flow (Gast)


Lesenswert?

Man kann ja ...
Oder einen Blick in den Schaltplan auf Blatt 2 werfen.
Folienstecker ST3, ST4 und IC6, IC3.

von Juser (Gast)


Lesenswert?

Hi flow,
Wo gibt es denn einen Schaltplan? Das würde die Sache allerdings 
vereinfachen.

von Jester (Gast)


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...

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?


: Bearbeitet durch User
von Flow (Gast)


Angehängte Dateien:

Lesenswert?

Hier die Seite 2 des Schaltplans der PFS.

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
Noch kein Account? Hier anmelden.