UniBwM » ETTI » ETTI4 » Datentechnik und Schaltungstechnik » Lehre » Abschlussarbeiten » Abgeschlossene Arbeiten » Entwicklung einer Schaltung zur Anbindung von Manualen und Reglern an einen DSP

Entwicklung einer Schaltung zur Anbindung von Manualen und Reglern an einen DSP

Entwicklung einer Schaltung zur Anbindung von Manualen und Reglern an einen DSP

Die Arbeit soll Manuale und Regler auslesen, diese Daten an den DSP übermitteln und die entsprechenden Töne auf dem Lautsprecher ausgeben. Die Aufgabe enthält 2 Hauptbestandteile - den DSP und eine Altera-Schaltung. Die Altera-Schaltung liest die 4 Manuale und die 4 Regler aus, formatiert diese Daten und hält sie für den DSP bereit. Der DSP holt die Daten ab und generiert die entsprechenden Tondaten und gibt sie aus. Dazu wurde ein DSP von Texas Instrumets, der TMS 320VC5402, verwendet. Die Altera-Schaltung wurde selbständig erstellt. 

Hintergrund:

Es soll eine Orgel mit 4 Manualen und 4 Reglern nachgebaut werden. Die 4 Manuale (oder auch Keyboards) geben die Tonhöhe vor und die Regler stellen den Transposer und die Lautstärken der 3 Manuale zum 4. Hauptmanual ein. Der Transposer versetzt die Tonhöhe der ganzen Orgel; d.h. die Orgel gibt Töne wieder, wie wenn man die Tasten um die im Transposer einstellte Anzahl weiter unten (negative Einstellung) oder oben (positive Einstellung) gedrückt hätte. Eine externe Schaltung liefert Daten gemäß eines Timing-Diagramms, die die Klangfarbe und Koppeln darstellen. Eine Koppel bewirkt, dass eine Taste, die auf einem Manual gedrückt werden auch auf dem zugekoppelten Manual als gedrückt ausgegeben werden.

Daraus ergab sich eine Aufteilung der Arbeit in 3 Teile:

Die erste Teilaufgabe bestand darin, die Altera-Schaltung zu entwickeln. Dazu wurde die erforderliche Anzahl an Pins und die benötigten Bauteile ermittelt. Die 4 Manuale benötigen insgesamt 302 Eingangspins (3 61-Tasten- und 1 30-Tastenmanual), die Regler 32 Pins (4 Regler mit je 4 Pins). Die benötigte Anzahl an IO-Pins bot der ALTERA Flex 10 K 70 GC 503-4. Um diesen auf eine Platine zu löten (Abstand der Pins 50 mil) wurden 2 Platinen - eine große 2lagige Haupt- und eine kleine 4lagige Aufsteckplatine zur Aufnahme des Flex-Bausteins verwendet. Die Manual- und Reglerstecker trägt die Hauptplatine, ebenso den Quarz, den Boot-Baustein (EPC2LC20), die Stützkondensatoren und das Display - dieses wurde verwendet, um durch Anzeigen von internen Zuständen die Inbetriebnahme zu erleichtern.

Der zweite Teil war die Inbetriebnahme und Programmierung des Altera-Chips. Die hierzu erforderlichen Programme werden in den Boot-Baustein geschrieben und der Flex-Baustein liest sie bei Anlegen der Spannung aus und führt sie aus. Zum Lesen der Manuale werden die einzelnen Tasten eines Manuals der Reihe nach abgefragt. Zum Übermitteln der Daten werden nur Zustandsänderungen übermittelt, um den Datentransfer so gering wie möglich zu halten. Der Zustand der 62 Tasten wird in einem internen Register zwischengespeichert. Unterscheiden sich der im 61-Bit-Register gespeicherte Zustand und der aktuelle, hält das Programm den Lesevorgang an und übermittelt die Nummer der Taste und den Modus; d.h. ob die Taste nun gedrückt oder losgelassen wurde. Dann wartet das Programm auf die Bestätigung vom DSP, der damit signalisiert, dass er das Datum gelesen hat. Gekoppelt werden die Manuale indem die jeweiligen 61 Bits Oder-Verknüpft werden bevor sie gelesen werden. Um dem DSP Arbeit abzunehmen, wird die Tastennummer noch in Oktavnummer und oktavinterner Tastennummer umgerechnet. Die Daten der 4 Regler werden direkt übernommen, da diese schon als BDC-Regler ausgeführt sind und je 4 Bit Hexadezimalcode ausgeben.

Der dritte Aufgabe lag in der Programmierung des DSP. Dazu muss der DSP die Manual- und Reglerdaten vom Flex-Baustein abholen. Dazu legt der auf den Adressbus die jeweilige Adresse und der Flexbaustein legt die Daten auf den 16-Bit-Datenbus. Anschließend schreibt der DSP die Bestätigung an den Altera-Chip, um diesen zum Weiterlesen der Manuale zu veranlassen. Auf diese Weise werden die 4 Manuale und Regler ausgelesen. Gemäß der Manualdaten werden nun Tondaten errechnet und auf den Lautsprecher ausgeben. Dazu werden die Tondaten durch ihre Sinusbestandteile errechnet. Dies erfolgt jedoch nur für den Ton "F" einer Oktave - die restlichen 11 Töne einer Oktave werden durch lineare Interpolation berechnet. 

Erstellt von Erwin Meier

Meier01

Meier02