Tastatur

Laptop-Tastatur - Anschluss an den TINY

jute_tastatur.zip Downloadpaket (Anleitung, Stromlaufplan, ROM-Binary)

Bei Pollin gab es für 1€ eine geeignete Laptoptastatur mit 8 Zeilen und 16 Spalten, die ich für meinen TINY nutzen wollte. Damit man das auch mit einer anderen Tastatur nachnutzen kann, gibt es hier ausführlichere Hinweise, wie ich die Tastatur angeschlossen habe.

vp_tiny4.jpg vp_tiny4b.jpg

Die Tastatur ist eine 99 Cent-Laptop-Tastatur von Pollin (Bestellnummer 710 010). Angesteuert wird eine 8×7-Matrix mittels 74×257 und 74×138.

Die Schaltkreise stecken auf einer Lochrasterplatte, diese ist mit Sekundenkleber an die Tastatur geklebt. Fliegende Verdrahtung. Als Anschlusskabel dient ein altes serielles Kabel.

Die Tastatur hat folgende Tastenbelegung in ihrer 8×16-Matrix (Zeilen A-H, Spalten 1..16):

Tastatur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A B N Space - Alt Gr Cu Down Cu Right Cu Left
B ESC F4 F5 G F6 H Äe Cu Up
C TAB F3 Bksp T Caps lock ! Z Shift Left Ue F7
D Pg Up § F2 F9 5 F1 ` Ctrl 6 F8 Ins Home
E Fn A D $ F S K J Öe L Alt
F < Y C RET V X , M Shift Right . Num Lock Pause
G Pg Down 1 3 F10 4 2 8 7 0 9 PrtScr F11 F12 END
H Q E R W I U P O Scroll Lock

Normalerweise arbeitet der TINY mit einer 4×16(15)-Tastaturmatrix. Und laut Schaltungskonzept des TINY muss auch noch A0 frei bleiben.

Meine erste Idee war nun, einfach je zwei der Zeilen A-H parallel zu schalten und so eine 4×16-Matrix zu erhalten. Leider gab es dabei stets Probleme. Mit einer 8×8-Matrix sähe es einfacher aus…

Die Schaltung

Man kann die Hardware zur Tastaturansteuerung jedoch ohne Änderung der Software zur Tastaturabfrage auf eine 8×8(7)-Matrix ändern: Anstelle der 4. Zeile wird ein Multiplexer für 8:4 Spalten angesteuert.

An den TINY kann damit mit folgender minimaler Schaltung eine 8×7-Matrix-Tastatur angeschlossen werden:

Wie bekommt man nun eine 8x16-Matrix in eine 8x7-Matrix gewandelt?

Für den TINY muss nun eine sinnvolle Zuordnung zu den Zeilen und Spalten her.

Links und unten: die sinnvollen Zeilen- und Spaltenleitungen beim TINY:

Tastatur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
S0+ A B N Space - Alt Gr Cu Down Cu Right Cu Left
S1+ B ESC F4 F5 G F6 H Äe Cu Up
S2+ C TAB F3 Bksp T Caps lock ! Z Shift Left Ue F7
S3+ D Pg Up § F2 F9 5 F1 ` Ctrl 6 F8 Ins Home
S1 E Fn A D $ F S K J Öe L Alt
S0 F < Y C RET V X , M Shift Right . Num Lock Pause
S3 G Pg Down 1 3 F10 4 2 8 7 0 9 PrtScr F11 F12 END
S2 H Q E R W I U P O Scroll Lock
TINY - A2 A4 A1 A5 A3 A7 - A6 A1 A4 A1 - A2 A7 A3

Die Lösung für das 8×7-Problem ist einfach: Mehrere Spalten werden deshalb parallel geschaltet (welche, steht in der untersten Reihe in obiger Tabelle: z.B. Tastatur Spalte 2 und 14 wurden parallel geschaltet zu neuer Spalte A2). Das führ leider zu einer Doppelbelegung einiger Tasten, stört aber im praktischen Betrieb nicht.

Umsortiert sieht die Tastaturbelegung also wie folgt aus (Komprimierte Tabelle):

A1 A2 A3 A4 A5 A6 A7
S3 9 / F10 1 / F11 2 / End 3 / 0 4 7 8 / F12
S2 O Q W E / P R U I
S1 L / $ (E-4) A S D / Oe F J K
S0 Shift Right / RET / . Y / Num Lock X / Pause C V M , (F-7)
S3+ F8 / F9 $ (D-4) F1 / Home F2, 5 6 `(D-7) / Ins
S2+ Shift Left / F7 / Bksp. TAB Caps Lock F3, Ue T Z !
S1+ F5 ESC Cu Up F4 / Ae G H F6
S0+ Space Cu Down Cu Left - → / B N Cu Right

Nun muss man sich für ein paar Tastenumbelegungen entscheiden und die Tabelle auf die benötigten Zeichen beschränken. Wir brauchen am TINY die Tasten A-Z, 1-9, Shift, Space, Komma, Punkt, /, *, - , +, Enter, CLR, Cursortasten.

Von obiger Tabelle bleibt übrig (Tastenumbelegungen mit →):

A1 A2 A3 A4 A5 A6 A7
S3 9 1 2 3 4 7 8
S2 O Q W E R U I
S1 L A S D F J K
S0 Enter Y X C V M ,
S3+ ? → / ? → * 5 6 ` → 0
S2+ Shift TAB → CLR ? Ue → P T Z (c-7) → +
S1+ ? ESC Cu Up (b-11) → - G H ?
S0+ Space Cu Down Cu Left - → . B N Cu Right

So sieht meine Tastatur jetzt aus:

bild FIXME

Änderungen im EPROM

Leider stimmt die Belegungstabelle nicht mehr mit der im 2K-Monitor überein. Aber das ist kein Problem und im Konzept des TINY sogar schon so vorbereitet, dass eine beliebige andere Tastenanordnung genutzt werden kann.

Zum einen muss die 8×7-Matric umsortiert werden auf ein 4×16-Feld (wir haben ja Zeilenleitung 4 als MUXer-Signal für die Spalten genutzt, dass muss jetzt umgekehrt werden). Das erfolgt einfach durch Umsortieren von Feld (x,y) obiger Tabelle: Die „+“-Zeilen werden zu ihrem einfachen Pendant, zu den Spalten in „+“-Zeilen wird 8 addiert (Sx+ → Sx, Ay → Ay + 8). Praktisch heißt das, dass and die 4 Spalten einfach die „+“-Spalten angehängt werden.

Damit ergibt sich folgender Code für den EPROM:

S0: <00>, Enter, Y, X, C, V, M, ',', <00>, Space, Cu Down, Cu Left, ., B, N, Cu Right
S1: <00>, L, A, S, D, F, J, K, <00>, <00>, CLR, <00>, Cu Up, -, G, H, <00>
S2: <00>, O, Q, W, E, R, U, I, <00>, Shift, CLR, <00>, P, T, Z, +
S3: <00>, 9, 1, 2, 3, 4, 7, 8, <00>, <00>, /, <00>, *, 5, 6, 0

Als Hex-Code:

Zum Vergleich: Original 2K-System: von oben nach unten S0 bis S3, von links nach rechts A0 bis A15:

Der Anschluss der Tastatur an den TINY erfolgt bei mir über ein 9pol. serielles Kabel (altes Mauskabel). Eine Buchse ist im TINY-Gehäuse? befestigt. Die 9 Leitungen + Abschirmleitung reichen genau aus :-)

V. Pohlers, 2007