Erweiterung der Ton-Ein- und -Ausgänge

Aus Sure DSP Wiki
Wechseln zu: Navigation, Suche

Grundlegend bietet der ADAU1701, der die Basis der DSPs auf den Sure-Boards bildet, Möglichkeiten die Anzahl der Ein- und Ausgänge für Ton zu erweitern. Dazu stehen neben den zwei analogen Eingängen und den vier analogen Ausgängen acht digitale Ein- und acht digitale Ausgänge zur Verfügung. Diese können dafür genutzt werden, um den Funktionsumfang des DSPs in Bezug auf den Ton zu erweitern.


Das I2S Prinzip

Die digitalen Ein- und Ausgänge am ADAU1701 verwenden I2S als Kommunikationssystem. I2S ist eine Methode einseitig Stereo-Signale zu übertragen. Die I2S Signalgebung bedarf zumindest drei, meistens vier synchronen Datenleitungen und einer gemeinsamen Masse. Die Funktion der einzelnen Datenleitungen wird im Weiteren erklärt. Die Takte werden für ein System von ICs nur einmal erzeugt und für das System global genutzt.

Masterclock

Abgekürzt mit MCK, MCKL, SCK, SCKL.

Dieser Takt wird meist über ein Quarz erzeugt. Auf Basis dieses Takts werden alle anderen Taktraten gebildet und die Samplingrate festgelegt. Streng genommen ist dieser kein Bestandteil der eigentlichen I2S-Verbindung, muss aber dennoch oft weitergegeben werden, um den Grundtakt aller ICs zu synchronisieren. Eine typische Taktrate wäre 12,288MHz für den Musikbereich.

Wordselect

Abgekürzt mit LRCK, LRCKL, WS.

Da die Übertragung mit I2S ein Stereosignal ist, werden auf einer Datenleitung Informationen für den rechten und den linken Kanal übergeben. Dieser Kanal markiert, ob die aktuell weitergegebenen Daten dem rechten oder dem linken Kanal zuzuordnen sind.

Serialclock

Abgekürzt mit BCK, BCKL, SCK, SCKL.

Der Serialclock gibt die Taktrate an, mit der die Daten auf der Datenleitung übertragen werden. Das Verhältnis von Serialclock zu Wordselect definiert die maximale mögliche Wortlänge, die während eines Takts weitergegeben werden kann. Diese wird in Bit angegeben. Ein Bit entspricht einem Zeichen des Binärsystems. Typische Wortlängen sind 16 und 24 Bit.

Datenleitung

Abgekürzt mit DATA, DIN, DOUT.

Über die Datenleitung wird der eigentliche Informationsgehalt versendet. Hier ist wichtig, wo das erste Bit eines Worts (MSB) übertragen wird. Typischerweise wird es um einen Takt verzögert zum WS gesendet.

Masseleitung

Abgekürzt mit GND.

Bildet einen gemeinsamen Bezugspunkt für alle Spannungen.


I2S am DSP

In diesem Abschnitt geht es um die Belegung der Anschlüsse und die dazugehörigen Einstellungen für die Verwendung von I2S.

Steckerbelegung am SureDSP

Die für die Beschaltung der Zusatzplatinen relevanten Pins am DSP sind in folgender Übersicht markiert. Die Aufschlüsselung kann in Ein- und Ausgänge getrennt werden. Es sind nicht zwingend alle markierten Pins zu belegen.

Relevante Pins.jpeg

Eingänge

Die Eingänge sind zu beschalten, wenn ein digitaler Input erwünscht ist. Die Rolle der Eingänge ist folgende:

Beschritung - Funktion
Mclk - Eingang für externen Masterclock
MP0 - Datenleitung für Eingang 2 und 3 im Block Input
MP1 - Datenleitung für Eingang 4 und 5 im Block Input
MP2 - Datenleitung für Eingang 6 und 7 im Block Input
MP3 - Datenleitung für Eingang 8 und 9 im Block Input
MP4 - Eingang Wordselect LRCLK
MP5 - Eingang Serialclock BCLK
GND - Masse

Ausgänge

Die Ausgänge sind zu beschalten, wenn ein digitaler Output erwünscht ist. Die Rolle der Ausgänge ist folgende:

Beschritung - Funktion
MP6 - Datenleitung für Ausgang DIG0 und DIG1
MP7 - Datenleitung für Ausgang DIG2 und DIG3
MP8 - Datenleitung für Ausgang DIG4 und DIG5
MP9 - Datenleitung für Ausgang DIG6 und DIG7
MP10 - Ausgang Wordselect LRCLK
MP11 - Ausgang Serialclock BCLK
GND - Masse

Besonderheiten der Beschaltung

Bei den Ausgängen gibt es mehrere Besonderheiten in der Beschaltung:

  • Die Ausgabe des Masterclock vom ADAU1701 ist nahezu unmöglich. Der Vollständigkeit wegen sei hier erwähnt, dass der Bitclock Ausgang (MP11) zur Ausgabe des Masterclocks missbraucht werden kann, indem der Teiler in der Hardware Configuration auf "internal Clock/4" eingestellt wird. Der Masterclock entspricht nicht dem eigentlichen Takt des Prozessors (Coreclock). Dieser wird intern aus dem vervierfachten Masterclock gewonnen, sodass eine Teilung durch 4 wieder zum Masterclock führt. Da MP11 bei Anwendungen mit externen Wandlern jedoch für den Bitclock benötigt wird, ist die Ausgabe des Masterclocks über diesen Pin nicht sinnvoll.

Falls der DSP als Taktgeber verwendet werden soll, sind daher am besten ICs als Empfänger zu verwenden, die ihren Masterclock aus Wordselect und Serialclock erzeugen können. Dies könnte z.B. der weiter unten erwähnte PCM5102A sein.

  • Soll der DSP als Taktempfänger mit Ein- und Ausgängen arbeiten, ist eine Beschaltung von MP10 und MP11 nicht erforderlich. In diesem Fall werden die Eingänge aller empfangender ICs auf die Ausgänge des Taktgebers verbunden.
  • Soll der DSP als Taktgeber mit Ein- und Ausgängen arbeiten, sind am besten IC als Empfänger zu verwenden, die ihren Masterclock aus Wordselect und Serialclock erzeugen können. Dabei sind MP4 mit MP10 und außerdem MP5 mit MP11 zu verbinden, da die Eingangsseite ebenfalls mit Wordselect und Serialclock der Ausgangsseite versorgt werden muss.

Steckereinstellung in Sigma Studio

Da die Anschlussstellen am DSP Mehrbereichanschlüsse sind, die auf unterschiedliche Weise verwendet werden können, muss vor Gebrauch die Funktion dieser Anschlüsse eingestellt werden. Dazu wechselt man in SigmaStudio oben in den Reiter "Hardware Configuration" und anschließend unten in den Reiter "IC1 - 170x\140x Register Control". Dort müssen zuerst im Block "GPIO" die verbundenen Anschlüsse entsprechend des folgenden Bilds eingestellt werden.

SigmaCon.jpg

Eingänge

Zusätzlich zur Definition der Anschlüsse muss für die Eingänge der Block "Serial Input" geprüft werden. Die Einstellungen sind normalerweise folgende.

SigmaIn.jpg

Falls der DSP als Taktgeber im System funktionieren soll, müssen ebenfalls die Einstellungen der Ausgänge aus dem folgenden Abschnitt durchgeführt werden.

Ausgänge

Zusätzlich zur Definition der Anschlüsse muss für die Eingänge der Block "Serial Output 1 (Channel 0-7)" eingestellt werden.

SigmaOut.jpg

Hier ist zwischen zwei Zuständen zu unterscheiden.

  • DSP ist kein Taktgeber: Der Haken bei "Master Mode" ist nicht zu setzten. Die nicht ausgegrauten Einstellungen sind entsprechend dem Bild zu treffen.
  • DSP ist Taktgeber: Der Haken bei "Master Mode" ist zu setzten. Die Werte für "Frame Sync Freq." und "BCLK Frequency" sind entsprechend den Forderungen der Datenblätter der Empfänger zu setzten. Achtung: Als "Internal Clock" wird nicht die aktuelle Masterclock verstanden, sondern der interne Takt, mit dem der eigentliche Prozessor betrieben wird. Diese Internal Clock ist das Vierfache der Quarzfrequenz. Bei einem DSP Board der aktuellen Revision mit einem 12,288 MHz Quarz beträgt die Internal Clock somit 49,152 MHz. Soll ein DAC z.B. ein PCM5102A gemäß Datenblatt mit einem Bitclock von 64 x Fs betrieben werden, so entspricht das bei einer Samplingfrequenz von 48 kHz einer Bitclockfrequenz von 3,072 MHz. Um diese aus der Internal Clock von 49,152 MHz zu gewinnen ist ein Teiler von 16 einzustellen.

Einsatzbeispiele

Hier werden erfolgreich umgesetzte Einsatzbeispiele für Erweiterungsmodule mit unterschiedlicher Funktionalität gezeigt.

Eingänge

USB Interface

Das USB Interface wurde auf Basis eines PCM2706 realisiert. Dieses ist als PCB2706 in der Bucht aus Fernost zu finden und bietet in dieser Ausführung eine kostengünstige und einfache Möglichkeit ein digitales Ton-Signal aus dem Computer oder Tablet ohne unnötige Umwege in den SureDSP zu leiten. Das Board beinhaltet einen Taktgenerator für alle nötigen Takte des I2S-Systems und wird somit als Master eingesetzt. Verbunden werden

PCB2706 - SureDSP
GMD - GND
MCK - Mclk
LRCK - MP4
BCK - MP5
DATA - MP0, MP1, MP2 oder MP3

Nachdem die Schnittstelle mit Sigmastudio eingestellt wurde, kann das jeweilige Eingangspaar verwendet werden.

Ausgänge

Stereo DAC

Das zusätzliche Ausgangspaar wurde auf Basis eines PCM5102Averwirklicht. Dazu sind mehrere Ausführungen kleiner Platinen in der Bucht aus Fernost zu finden, die sehr preiswert ausfallen. Die Besonderheit des Chips ist, dass dieser seinen Masterclock aus BCK und LRCK generieren kann, falls keiner angelegt wird. Das macht es möglich den ADAU1701 auf Wunsch als Taktgeber zu verwenden. Ist dies der Fall, müssen folgende Pins verbunden werden

DAC - SureDSP
VIN - 5V
GND - GND
LCK - MP10
DIN - MP6, MP7, MP8 oder MP9
BCK - MP11

Zusätzlich müssen je nach Boardversion noch folgende Verbindungen gelegt werden. Bei manchen Boards sind dazu Lötbrücken auf der Rückseite angebracht, die meist bereits richtig überbrückt sind.

FLT - GND
DMP - GND
FMT - GND
XMT - 3,3V

Bei Interesse können die Funktionen dieser Pins im Datenblatt nachgesehen werden. Anschließend sind in Sigma Studio die Ausgänge einzustellen. Weiterhin ist der Serial Output in den Mastermode zu versetzen und folgende Punkte einzustellen:

Frame Sync Type - LRCLK
Frame Sync Frequency - Internal Clock/1024 (Frame Sync bzw. Wordclock bzw. LRCLK entspricht der Samplingfrequenz)
MSB Position - Delay by 1
Word Length - 24 Bit (auch 16 Bit sind einstellbar, da sowohl Wandler als auch DSP 24 Bit beherrschen ist die größere Auflösung zu bevorzugen)
BCLK Frequency - Internal Clock/16 (gemäß Datenblatt sollte der Bitclock 64 x Fs bzw. 32 x Fs betragen. Da größere Teiler als 16 im DSP nicht einstellbar sind ist die einzige Möglichkeit 64 x Fs zu nehmen, was mit der Internal Clock von 49,152 MHz / 16 realisierbar ist)

Soll hingegen ein andererer Taktgeber verwendet werden, so werden die Pins SCK, LCK und BCK nicht mit den DSP-Pins, sondern mit den jeweiligen Pins des Taktgebers zu verbinden. Diese sind dann ebenfalls mit den Eingängen für die jeweiligen Takte am DSP verbunden.