Spielhilfe

Mit der intelligenten Steuerung aus der letzten c't ist es nicht getan: Erst eine Hand voll billiger Käfer, verteilt auf einer übersichtlichen Platine, komplettiert die Tastenabfrage für unser Musik-Workstation-Projekt. Erschrecken Sie nicht über die vielen Schaltbilder auf den nächsten Seiten: Für Ihre Klaviatur kommt nur eine der drei Versionen in Frage.

vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Carsten Meyer
Inhaltsverzeichnis

Schon im ersten Beitrag sind wir kurz auf die verschiedenen Tastatur-Ausführungen eingegangen. Nun wird es Ernst, denn abhängig von den vorhandenen Tastenkontakten Ihres zweitzuverwertenden Manuals gilt es, unter einer von drei möglichen Scan-Platinen auszuwählen: Für anschlagdynamisch abzufragende „historische“ Umschaltkontakte, nicht dynamische Einschaltkontakte und für eine Tastaturmatrix, wie sie in neueren Geräten zu finden ist.

Wenn Sie den Schaltplan der MIDIvice-Steuerung aufmerksam studiert haben, ahnen Sie vielleicht schon das Prinzip der Tastenabfrage für das Klangcomputer-Manual. Für 61 oder gar 88 Tasten opfert man nicht eine Unzahl von Portleitungen; davon hat der kleine ATmega8-Prozessor ohnehin nicht besonders viel. Die Abfrage der Tastenzustände erfolgt vielmehr seriell über klassische Schieberegister und Zähler. Schließlich kann sich das Firmware-Programm des Mikrocontrollers ohnehin nur um eine einzige Taste gleichzeitig kümmern.

Ein Blick unter die recycelte Klaviatur klärt schnell, um welche Art es sich handelt. Eine Orgeltastatur klassischer Bauart aus den 60er- und 70er-Jahren hat mehrere quer unter der Tastatur verlaufende und durchgehende Drähte oder Metallstäbe, auf die einzelne Kontaktfedern drücken, die so genannten Masse- und Sammelschienen. Letztere „sammelten“ die vom Generator kommenden Töne der gedrückten Tasten und gaben sie an die Klangformung weiter. Erkennt man nur eine einzige Sammelschiene, wies das Instrument bereits eine „elektronische Tastung“ auf, wie sie in den frühen 80ern aufkam. Sind dagegen nur kurze, mehrfach unterbrochene Sammelschienen vorhanden oder die typischen Gummikontakt-Doppelnippel auf einer langen Platine, handelt es sich um eine Matrixtastatur.

Am einfachsten und selbst für weniger versierte Bastler zu realisieren ist natürlich eine nicht anschlagdynamische Tastatur (z. B. Orgel), denn hier kommt pro Taste nur ein simpler Einschalter zum Einsatz, der einen Kontakt nach Masse herstellt. Besonderes Augenmerk ist auf die Zuverlässigkeit der Tastenkontakte zu legen; angelaufene Silberkontakte sollten Sie vorher mit einem Silber-Putztuch oder im Tauchbad reinigen. Prellende oder unzuverlässig schaltende Kontakte sind jedem Keyboarder ein Greuel.

Die „OrganScan“ genannte Schaltung für die Abfrage von nicht dynamischen Tastaturen ist denn auch von ausgesuchter Einfachheit. Für jeweils acht Tasten ist ein Schieberegister 4014 mit parallelen Eingängen und seriellem Ausgang zuständig. Auf Befehl vom MIDIvice-Controller übernehmen sämtliche Schieberegister den anliegenden Tastenzustand (Impuls auf der Leitung DataPS), und mit jedem folgenden Taktimpuls auf der SRClk-Leitung purzeln die Tastenbits auf der ShiftOut-Datenleitung einzeln dem Mikrocontroller entgegen. Die jeweils 5 Oktaven umfassenden Platinen lassen sich in Reihe schalten, sodass sich theoretisch bis zu 244 Tasten (in der Praxis: 215) abfragen lassen; die Controller-Firmware sorgt hier für die passende Aufteilung in MIDI-Noten für die verschiedenen Manuale.

Der Kontakthub bei Tastaturen mit Umschaltkontakten beträgt etwa 3 mm und wird durch die Konstruktion vorgegeben. Keinesfalls darf der Arbeitskontakt erst dann geschlossen werden, wenn die Taste ganz unten angelangt ist; bei etwa 2/3 des Weges ergibt sich ein gutes Spielgefühl.

Beim Aufbau der OrganScan-Platine sind keinerlei Besonderheiten zu beachten; lediglich die Polung der ICs und der R-Netzwerke verlangt minimale Aufmerksamkeit. Beim Hintereinanderschalten mehrerer Platinen führt der Scan-Ausgang PL04 des obersten Manuals mit einem 10-poligen Flachbandkabel (max. 50 cm lang) direkt zum MIDIvice, der Scan-Eingang PL04a geht zum Scan-Ausgang PL04 des nächsten Manuals und so weiter. Bis zu vier OrganScan-Platinen können auf diese Weise aneinandergehängt werden - ausreichend für drei Manuale und ein Vollpedal.

Auch die Abfrage anschlagdynamischer Tastaturen erfolgt per Schieberegister, nur in umgekehrter Richtung: Auf der „Dyn-Scan“-Platine kommen 74HC164-Schieberegister mit seriellem Eingang und parallelen Ausgängen zum Einsatz, die allerdings anders angesteuert werden wollen. Der MIDIvice-Controller liefert hier ein 0-“Startbit“, das mit jedem Taktimpuls um eine Taste versetzt an den SR-Ausgängen erscheint (negative Logik). Das MIDIvice kann nun anhand des logischen Zustands auf den Ruhe- und Arbeitskontakt-Sammelschienen feststellen, ob die Taste ruhend, unterwegs oder bereits in der Endstellung angekommen ist.

Damit sich die SR-Ausgänge bei mehreren gleichzeitig gedrückten Tasten nicht in die Wolle kriegen, ist an jedem SR-Ausgangspin eine Entkopplungsdiode vorgesehen. Die Vielzahl von Entkopplungsdioden und deren parasitärer Kapazitäten macht die Schaltung vom Timing her etwas kritischer; mehr als 76 Tasten sollten Sie dem Interface nicht zumuten. Die zwei Ruhe- und Arbeitskontaktsammelschienen (beziehungsweise die gemeinsamen Anschlüsse selbstgebauter Kontakte) werden hier natürlich nicht mit Masse verbunden, sondern mit den entsprechend benannten Pins 15 und 16 an Kontaktleiste PL23.

Den kleinsten Bauteileaufwand benötigt eine Matrixtastatur, dafür verlangt sie etwas mehr Nachdenken beim Austüfteln ihres Aufbaus und der Anschlussbelegung; hier kommt man durch Zerlegen und Aufzeichnen am schnellsten zum Ziel. Zu beachten ist, dass manche Matrixtastaturen nicht mit einer kompletten Matrixreihe beginnen, sondern mit einem „Rest“ der ersten Reihe (z. B. Yamaha). Obwohl sich in der MIDIvice-Firmware auch „krumme“ Spaltenanzahl-Werte einstellen lassen, finden sich in der Praxis durchweg Anordnungen mit 6 oder 8 Spalten.

Dynamische Matrixtastaturen erkennt man an den Doppelgumminippelkontakten unter jeder Taste. Das Herausfinden der Steckeranschlussbelegung ist hier der mĂĽhsamste Teil der Arbeit.

Der Steueraufwand für die „MatrixScan“-Platine ist etwas höher als bei den beiden anderen: Der Zähler U6a wählt über zwei Multiplexer die Matrixspalten der zur Taste gehörenden Arbeits- und Ruhekontakte aus, sein Zählerstand erhöht sich mit jedem ColumnClk-Impuls. Hat er alle Spalten einer Reihe durchgezählt (eingestellt in den MIDIvice-Defaults), wird er über MxRowClk zurückgesetzt, was gleichzeitig den Reihenzähler inkrementiert und die nächste Reihe auswählt. Den Zustand des ausgewählten Tastenkontaktpaars liefern wiederum die „RuheKont“- und „ArbKont“-Leitungen, die gegebenenfalls invertiert werden können. Die Matrix-MIDIvice-Version reagiert auf eine negative Logik (0 = ein oder beide Tastenschließkontakte gedrückt).

Allen Matrixtastaturen mit Gumminippelplatinen ist gemein, dass sie keine Umschalt-Kontakte besitzen, sondern zwei nacheinander schaltende SchlieĂźer mit jeweils eigenen Entkopplungsdioden. Die im Schaltbild angegebene Jumper-Stellung gilt fĂĽr eine Gumminippelmatrix. Sollten die auf der Tastaturplatine vorhandenen Dioden entgegengesetzt zum Schaltbild gepolt sein (selten), mĂĽssen alle Jumper in die jeweils andere Stellung gesetzt werden. Wird eine Matrixtastatur mit Umschaltkontakten verwendet (ebenso selten), ist nur JP42 in die Stellung 2-3 zu bringen.

Wenn Sie den Aufbau Ihrer Tastatur-Scan-Platine abgeschlossen haben, müssen Sie für einen ersten Test nur den PL04-Stecker mit dem gleichnamigen MIDIvice-Anschluss über ein 10-poligen Flachbandkabel verbinden. Das MIDIvice sollte nach dem „Flashen“ der passenden Firmware zumindest die MIDI-Notenwerte richtig liefern. Die „floatenden“ analogen Eingänge können allerdings noch zu unerwarteten Effekten führen; zum Ausprobieren können Sie die Analogpins 1 bis 4 vom MIDIvice-Steckverbinder PL05 vorübergehend auf Masse legen. Voraussichtlich in der nächsten c't stellen wir Ihnen dann das passende Gegenstück zu PL05 vor, die Analog-I/O-Platine.

[1] Carsten Meyer, Spielhilfe, Der c't-Klangcomputer II: Musik-Workstation zum Selbstbau

[2] Carsten Meyer, ZurĂĽck zur Natur, Mit dem Apple II auf Klangfang, c't 12/84, S. 42

http://ct.de/0515202

Steckverbinder-Anschlussbelegungen
PL04 OrganScan4014
1 PB0 SRClk (Schieberegister-Takt)
2 PB1 DataPS (Schieberegister parallel/seriell)
3 PB2 (nicht benutzt)
4 PB3 ShiftOut
5 PB4 Percussion Out
6 PB5 (nicht benutzt)
7 nicht belegt
8 nicht belegt
9 +5 V
10 Gnd/Masse PL04a identisch bis auf Pin 4 = ShiftIn (Daisy-Chain-Eingang von weiteren OrganScan4014-Platinen)
PL30 OrganScan Tasten 1 bis 16
1 Manual-Taste 1 (tiefstes C)
...
16 Manual-Taste 16
PL31 OrganScan Tasten 17 bis 32
1 Manual-Taste 17
...
16 Manual-Taste 32
PL32 OrganScan Tasten 33 bis 48
1 Manual-Taste 33
...
16 Manual-Taste 48
PL33 OrganScan Tasten 49 bis 61
1 Manual-Taste 49
...
13 Manual-Taste 61 (höchstes C bei 5 Okt.)
14 Chassis-Masse
15 Chassis-Masse
16 Sammelschiene Gnd/Masse
Steckverbinder-Anschlussbelegungen
PL04 DynScan164
1 PB0 SRClk (Schieberegister-Takt)
2 PB1 SRData (Schieberegister-Datenbit)
3 PB2 Ruhekontakt oder 1.SchlieĂźer
4 PB3 Arbeitskontakt oder 2.SchlieĂźer
5 PB4 MxRClk Matrix-Reihen-Takt
6 PB5 Port B5 (nicht benutzt)
7 nicht belegt
8 nicht belegt
9 +5 V
10 Gnd
PL04a identisch bis auf Pin 2 = SRDataOut (Daisy-Chain-Ausgang zu weiterer MidScan164-Platine)
PL20
1 Manual-Taste 1 (tiefstes C)
...
16 Manual-Taste 16
PL21
1 Manual-Taste 17
... &nps;
16 Manual-Taste 32
PL22
1 Manual-Taste 33
...
16 Manual-Taste 48
PL23
1 Manual-Taste 49
...
13 Manual-Taste 61 (höchstes C bei 5 Okt.)
14 Chassis-Masse
15 Arbeitskontakt-Sammelschiene
16 Ruhekontakt-Sammelschiene
PL04 MatrixScan816
1 PB0 ColumnClk (Matrix-Spalten-Takt)
2 PB1 RowReset (Matrix-Reihen-Reset)
3 PB2 Ruhekontakt/1.SchlieĂźer
4 PB3 Arbeitskontakt/2.SchlieĂźer
5 PB4 MxRowClk Reihen-Takt/Spalten-Reset
6 PB5 (nicht benutzt)
7 nicht belegt
8 nicht belegt
9 +5 V
10 Gnd
PL40 Matrix-Spalten
1 Ruhekontakt/1.SchlieĂźer Taste n+0
...
8 Ruhekontakt/1. SchlieĂźer Taste n+7
9 Arbeitskontakt/2.SchlieĂźer Taste n+0
...
16 Arbeitskontakt/2. SchlieĂźer Taste n+7
PL41 Matrix-Reihen
1 1. Reihe (Tasten 1...6...8)
...
16 16. Reihe
StĂĽckliste OrganScan4014
U1...U8 HEF4014 DIL
C1...C8 100n ker. RM 5 mm
C9 10µ/35V Tantal
R1 10k
R2...R9 100k
RN1...RN8 10k x 8, R-Netzwerk 8fach
Sonstiges Pfostenstecker 10pol. zweireihig (2 StĂĽck)
Pfostenstecker 16pol. zweireihig (4 StĂĽck)
Distanzröllchen 5 mm, Montagematerial
StĂĽckliste DynScan 164
U1...U8 74HC(T)164 DIL
D1...D61 1N4148
C1 10µ/35V Tantal
C2...C6 100n ker. RM 5 mm
R1,R2 1k8
Sonstiges Platinen-Steckverbinder 2pol.
Pfostenstecker 10pol. zweireihig (2 StĂĽck)
Pfostenstecker 16pol. zweireihig (4 StĂĽck)
Distanzröllchen 5 mm, Montagematerial
StĂĽckliste MatrixScan816
U1,U2 74HC(T)4051 DIL
U3,U4 HEF4051 DIL
U5 74HC14 DIL
U6 74HC(T)4520 oder HEF4520 DIL
C1,C2 100n ker. RM 5 mm
C3 10µ/35V Tantal
RN1,RN2 4k7 x 8, R-Netzwerk 8fach
Sonstiges Pfostenstecker 3pol. einreihig
Pfostenstecker 10pol. zweireihig
Pfostenstecker 16pol. zweireihig (2 StĂĽck)
Distanzröllchen 5 mm, Montagematerial

(cm)