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