Zum Inhalt springen

Mischpult

Inhaltsverzeichnis
mischpult bild von oben

Ziel dieses Projektes war der Entwurf eines Bedienpultes für ein Audiomischer, welche des oben abgebildeten in seiner Funktion ähnlich ist. Angestrebt wurden pro Kanal:

  1. Ein Schieberegler für die Dämpfung/Verstärkung des Audiokanals
  2. Vier Drehregler Endanschlag für die Eingabe von Parameters von Kanaleffekten
  3. Ein Schalter für das Zuschalten des Kanals zu einem Pre-Mix-Output (z.B. für einen Kopfhöhrer)

Steuerelemente

Anordnung

Die Steuerelemente sind in einer klassischen Mixeranordnung:

image/svg+xml 2 3 1 4

Die oberen drei Drehregler sind für den 1. Effekt des Kanals (im Allgemeinen ein Equalizer) reserviert. Sie sind zur Abhebung dieser Funktion optisch zusammengerückt.

Der 4. Drehregler ist optisch mit dem Taster gebündelt, beide bilden Parameter für einen zweiten Effekt ab.

Der Schieberegler ist klassisch am unteren Ende des Kanals platziert. Er wird wie bereits beschrieben für den Kanal-Fader verwendet.

Bauteile

Für die Drehregler werden Potentiometer verwendet. Diese sind billig und allgemein erhältlich. Sie kommen mit einer großen (herstellerspezifischen) Auswahl an Drehknöpfen, was das mechanische Design vereinfacht und man kann sie einfach elektrisch ablesen.

Der Taster wird mittels eines Omron Tasters implementiert und bekommt ebenfalls eine Beleuchtung, welche den Zustand des Schalters visualisiert.

Für den Schieberegler wird ein lineares Potentiometer verwendet.

Alle potentiometer werden als Spannungsteiler verschaltet. Die Mittelspannung wird anschließend von einem Analog-Digital-Umsetzer(ADU) abgetastet und steht ab da der Software des Mischpultes als Zahl für Parameter zur Verfügung. Wie diese Abtastung und Übertragung gelöst wurden, findet sich folgend.

Abtastung

Aufgrund seines geringen Preises und seiner überragenden Menge an ADU-Pins wurde hier der attiny84a als Controller verwendet. Dieser schlägt einen dedizierte ADU im Preis und eine direktverkabelung der Eingangselemente an den Zentralen Mischer-Controller im Aufwand.

Als Nachteil ergibt sich dessen vergleichsweise geringe Auflösung von 10 bits, welche allerdings durch eine schnelle Abtastung künstlich erweitert werden kann (Stichwort Überabtastung).

Kommunikation

Da Pro Kanalplatine nun ein Microcontroller zur Verfügung steht, welcher frei programmierbar ist, kann eine beliebige Schnittstelle zwischen den Kanal-Anzeigeplatinen und dem Mischcontroller implementiert werden. Um hier die beliebige Erweiterbarkeit (ein oben genanntes Kriterium) aufrecht zu halten, implementieren die Frontend-Controller ein Schieberegister.

Auf der elektrischen Ebene werden vier Leitungen benötigt.

  1. MISO – Der Kommunikationsmaster ist der Mischpult-Controller, auf diesem Pin sendet dieser seine Daten aus
  2. MOSI – Hierauf empfängt der Mischpult-Controller die gesendeten Daten der Peripherie-Controller
  3. CLK – Die Taktleitung macht dies zu einem synchronen Bus. Das vorhandensein dieser erhöht die Zuverlässigkeit der Kommunikation
  4. CS – klassisch als Chip Select bezeichnet, bietet diese Leitung einen Weg, die Kommunikation zu beginnen und auch als beendet zu erklären. Sie signalisiert damit unter anderem den Start der Kommunikation

Der Mischpult-Controller wird mit den Peripherie-Controllern wie folgt verkabelt:

Master
MOSI ↦ CLK ↦ CS ↦
Slave #1
↦ MISO ↦ CLK ↦ CS
MOSI ↦ CLK ↦ CS ↦
Slave #2
↦ MISO ↦ CLK ↦ CS
MOSI ↦ CLK ↦ CS ↦
Master
↦ MISO

Die Regel eines Peripheriecontrollers sind nun wie folgt:

  • Wenn die CS Leitung logisch 0 ist, tue nichts
  • Wenn eine CLK-Flanke erkannt wurde, dann verarbeite interpretiere den MISO Pegel als neues bit, bis 8 bits erkannt wurden.
  • Wenn diese 8 bits nicht alle logisch 1 sind, sende die 8 bits an den nächsten Controller weiter, sonst
  • Sende den Zustand aller Eingangspins als datenpacket und anschließend 8x logisch 1.

Hierdurch werden alle Daten, die der Mischpult-Controller sendet ungeändert durch die Kette gesendet, bis diese wieder den selbigen Erreicht haben. Da jedes Kettenglied 8 bits verzögerung einführt, kann über die gesamtverzögerung der Daten abgelesen werden, wie viele Kanäle an der Kette teilnehmen.

Im obrigen Timing-Diagram ist nur ein Slave in der Kette. Deshalb erhält der Master nach zwei Paketlängen bereits sein ursprügnliches Paket auf seiner MOSI-Leitung zurück. Durch diese zwei Zyklen latenz kann er sagen, dass 2-1 = 1 die Kettenlänge ist.

Wenn dem Controller die Länge der Kette bekannt ist, dann sendet dieser 8x logisch 1, und anschließend logisch 0, bis die erwartete Menge an Daten eingetroffen ist.

Um die Kommunikation abzuschließen, wird schließlich die CS-Leitung auf logisch 0 gezogen, was alle Teilnehmer zurücksetzt und potentielle Fehler die während der Kommunikation aufgetreten sind korrigiert. Dies erhöht die Störfestigkeit, da jede Kommunikation in sich abgeschlossen ist.

Implementation

Hier sind vier der fertigen Platinen zu einem Pult verkabelt.

Der Aufbau mit 4 Kanälen

Die Kanalplatinendesigns verwenden eine kleine Lötbrücke, um das letzte Kettenglied zu makieren. Diese schließt den Ausgangs-MOSI mit dem Ausgangs-MISO kurz, wodurch der Rückpfad gebildet wird.

Die Taster haben eine 3D-gedruckte Kappe bekommen, welche mit einer LED von unten beleuchtet werden kann. Im Bild ist exemplarisch Taster 4 aktiviert.

Das Platinendesign und die Software für die attinys finden sich hier in der Vereinsprojektverwaltung.

Bildquellen