Da mich der (alte) Gedanke an eine digitale Erweiterung meines
Formants noch immer sehr interessierte, habe
ich mit einer Erweiterung für das Keyboards begonnen. Diese Erweiterung
"kann" (für sich allein) nicht so besonders viel: Sie sendet
einfach nur eine digitale Information auf einem seriellen Bus, wenn eine Taste
betätigt oder losgelassen wird. Außerdem besteht die (abschaltbare)
Möglichkeit, die Keyboard-Spannung ("KBV") durch dieses
Zusatzmodul erzeugen zu lassen, anstatt mit Hilfe des (ursprünglich
vorgesehenen) Spannungteilers. Eine Modifikation des "Keyboard-Interface"s
ist nicht notwendig, das Zusatz-Modul wird mit Hilfe eines DB25-Steckers am
Keyboard angeschlossen, und die "originale Funtionalität"
des Keyboards lässt sich mit Hilfe eines entsprechenden Kurzschlußsteckers
jederzeit wieder herstellen.
|
Modifikation der Tastenkontakt-Schaltung
|
Da das Zusatz-Modul jegliche Betätigung von Tasten (auch mehrere
gleichzeitig) erkennen soll, musste ich die "GATE"-Kontakte noch
einmal neu verschalten, und eine Handvoll Dioden in den schmalen
Platinenstreifen an den Tastaturkontakten einfügen. Damit ich den
Formant auch noch immer im "Originalmodus" betreiben kann,
habe ich alle Signale auf eine DB25-Buchse geführt, wo sich anstatt des
Erweiterungs-Moduls auch ein entsprechender Stecker mit Drahtbrücken
aufstecken lässt, der die originale Funktionsweise wieder herstellt.
Die Beschaltung diese Kurzschußsteckers ist auf der linken Seite des
Schaltplans durch blaue Linien dargestellt. Um auch die
originale Beschaltung
des Keyboard-Steckers (ohne das Kommunikations-Signal) wiederherzustellen,
ist noch eine weitere Drahtbrücke zwischen den Pins 7 und 18 des
DB25-Steckers hinzuzufügen.
|
|
Die Schaltung des Zusatzmoduls
Das Layout und der Aufbau
Die Firmware
Die Firmware liest den aktuellen Zustand sämtlicher Tasten mit Hilfe des Zählers, des
"Gruppenselektors", und des Decoders innerhalb von <320µs in ein Bitarray
von 8 Bytes (64Bits) ein. Da aufgrund der Beschaltung der Eingänge des Decoders einige
Bitmuster doppelt vohanden sind, und einige Bits einen festen Wert haben, lässt sich
recht schnell und einfach herausfinden, ob der Zähler synchon mit der Nummerierung der
Tasten ist (→ Es existiert kein Reset des Zählers). Ist dieses nicht der Fall, werden
die eingelesenen Bits verschoben, und der Zählerstand mit Taktimpulsen verändert,
bis das Bitmuster "passt". Dieser Vorgang dauert maximal 800µs, und sollte
nur beim Start des Programms auftreten. Im "Normalbetrieb" wird innerhalb von
<15µs festgestellt, daß die eingelesenen Daten korrekt sind, und die
"tastenrelevanten" Bits mit Hilfe dreier weiterer Bitarrays von je 5 Bytes (40Bits)
"entprellt", und geänderten Tastenzustände ausgefiltert (ca. 90µs).
Danach wird die tiefste gedrückte Taste ermittelt (max. 50µs). Ist mindestens eine
Taste betätigt, wird das "GATE"-Signal gesetzt, und der zur Taste gehörige
PWM- (PulsWeitenModulation) Wert berechnet und gesetzt (ca. 100µs). Aus den angegebenen
Zeiten ist zu ersehen, daß die gesamte Behandlung des Keyboards in weniger als einer
Millisekunde erledigt wird, und somit mehr als eintausend Mal pro Sekunde erfolgen kann, was
für eine ausreichend geringe Reaktionszeit auf eine Tastenbetätigung genügen
sollte. Wird eine Taste betätigt oder losgelassen, erkennt die Firmware diesen Umstand
anhand der Bitarrays, und sendet ein einzelnes, entsprechend codiertes Byte auf dem angeschlossenen
Kommunikationsbus. Die Codierung des Bytes ist aus
der nebenstehenden Tabelle abzulesen.
|
|
Der "Stimm-Modus"
Das "Material"
Das hier angebotene Material unterliegt der Creative Commons Lizenz
"CC BY-NC-SA".
|
fo_keyb_dec_V0.2_kicad.tgz Archiv mit allen benötigten KiCad-Dateien.
|
fo_keyb_dec_V0.1_src.tgz Archiv mit Quellcode und Hexcode für den Mikrocontroller.
|
Hinweise für Nachbauwillige
Wer diese Konstruktion nachbauen möchte, sollte über etwas Kenntnisse der Funktionsweise des Formant-Synthesizer, des Aufbaus elektronischer Schaltungen, und im Umgang mit PIC-Mikrocontrollern verfügen. Es handelt sich hierbei nicht um einen Bausatz, sondern eher um eine Anregung für eigene Konstruktionen. Alles, was ich dazu anbieten kann, befindet sich auf dieser Seite, d.h. Nachfragen nach fertigen Modulen, Bausätzen, oder bereits programmierten Microcontrollern sind zwecklos → Ich "produziere" ausschliesslich für den Eigenbedarf.
Für die Funktionalität und Nachbausicherheit dieser Konstruktion kann ich keinerlei Verantwortung übernehmen. Der Schaltplan, das Layout, und PIC-Quellcode unterliegen der Creative Commons Lizenz "CC BY-NC-SA" Eine kommerzielle Verwertung dieses Materials (oder auch von Teilen davon) ist nur mit meiner ausdrücklichen Genehmigung zulässig.
Startseite Hardware Formant Rechtliches Kontakt