PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stereo-I2S vom Raspi per Expansion Port einspielen



ebapst
05.01.2021, 12:38
Hallo,

die Frage danach wurde schon hier und da gestellt, aber es gab darauf noch keine wirkliche Antwort. In diesem Thread soll es um beide Seiten der Baustelle gehen.

Hier zunächst Links:
https://www.diy-hifi-forum.eu/forum/showthread.php?18572-freeDSP-aurora-Der-Feature-Thread&p=261279&viewfull=1#post261279 "Der einfachste Weg wäre, einen Rasberry Pi zu nehmen und freeDSP-aurora dann entweder per USB oder per I2S (freeDSP-Expansion-Header) dran zu hängen." Aber wie stellt man das im aurora ein? Auch hier (https://www.diyaudio.com/forums/digital-line-level/334055-freedsp-aurora-dsp-8-os-usb-audio-dif-adat-bluetooth-wifi-contro-post6363446.html) noch keine Antwort.

Ab dort https://www.diy-hifi-forum.eu/forum/showthread.php?20354-Erfahrungsberichte-und-Fragen-zu-Auverdion-FreeDsp&p=291409&viewfull=1#post291409 geht es zumindest in die Richtung.

Dort steht alles zum raspi: https://learn.adafruit.com/adafruit-i2s-audio-bonnet-for-raspberry-pi

Dort die gleiche Beschreibung für Softwareeinestellungen: https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage

Sie stammt wohl von dort: https://learn.pimoroni.com/tutorial/phat/raspberry-pi-phat-dac-install

Dort steht nur das es geht, die zu nutzenden Links, theoretische Timingprobleme. Nichts über Softwareeinstellungen: http://www.dimdim.gr/2014/12/the-rasberry-pi-audio-out-through-i2s/
(http://www.dimdim.gr/2014/12/the-rasberry-pi-audio-out-through-i2s/)

Was geht bisher mit dem achtkanal-Plugin von 2.0.3?
Wenn ich das Plugin und die Codestellen richtig verstehe:

Die Signale vom Expansion Port sind an SDATA_IN3 angeschlossen, welche zu INPUTS 40..47 werden.
Sie landen auf dem Eingangsmultiplexer, der im Prinzip schon per Weboberfläche eingestellt werden kann, wenn dsp.html erweitert wird (Optionen mit 0x00020000 bis 0x00020007 für ADDR_EXP)
Das Plugin ist eingestellt für acht Kanäle je 32 Bit (Hardware Config/Register Controls/Serial Ports/SDATA_IN3


Nötige Änderung am Plugin?
Reicht eine neue Übersetzung mit geänderten Einstellungen für SDATA_IN3 aus? Welche "Word Length", welchen "TDM Mode" muss man einstellen?

Wie weiter?
Ich werde demnächst probieren I2S auf dem Raspi zum laufen zu bringen. Ob das dann funktioniert kann ich nicht wirklich beurteilen, nur mit dem Oszi die Ausgangssignale messen -- dann melde ich mich wieder. Hoffentlich kann man daran sehen, welches Format das ist und was im Plugin eingestellt werden muss.

Ich würde mich natürlich freuen, wenn jemand anders hier etwas beitragen kann und möchte!

Viele Grüße (gutes neues Jahr allerseits!),
Jens

MK_Sounds
05.01.2021, 12:52
Hallo,

wenn ich mich recht entsinne gibt es seit Kernelversion 3.17 den Device tree. Uralte Beiträge zur Nutzung von I2S am RPi bringen also nichts.
Alles relevante hatte ich in https://www.diy-hifi-forum.eu/forum/showthread.php?20354-Erfahrungsberichte-und-Fragen-zu-Auverdion-FreeDsp&p=291424&viewfull=1#post291424 eigentlich schon geschrieben...
Link auf den Treiber für den ADAU1701 ist auch dabei. Ändert man die Ausgangskonfig eben auf 8 x 32 Bit, dann passt das auf TDM8. Overlay kompilieren, einbinden, fertig.

ebapst
06.01.2021, 20:55
Hallo Markus,

vielen Dank für den Hinweis, das hatte ich in dem Thread wohl übersehen.

Damit bekomme ich aus dem Raspi ein Signal heraus (LRCLK 48kHz, BCLK ~12,3 MHz, Datensignal auch vorhanden) aber es erscheint nichts am Ausgang des Aurora, vermutlich weil dessen Einstellungen
58139
nicht zu denen passen, die Du dort https://github.com/MKSounds/ADAU1701-I2S-Audio-Driver-for-Raspberry-Pi beschreibst.

Die Aurora-Quellen habe ich durch Modifikation von dsp.html auf 0x00020000 und 0x00020001 eingestellt.

Welche der beiden Seiten ändere ich nun? Lieber nicht das Aurora-Plugin, aber nachdem ich nun eine Win64-Kiste aufgetrieben und SigmaStudio installiert habe, ist das vielleicht (kurzfristig) einfacher als den raspi zu ändern, denn da fehlt mir Wissen und/oder Hilfe: mit

dtc -I dts -O dtb -o adau1701-i2s.dtbo adau1701-i2s.dts
konnte ich zwar aus der dts-Datei etwas machen, was irgendwie ähnlich der beigelegten .dtbo ist, aber eben erstens nicht identisch und zweitens habe ich keine Ahnung, wie ich die .dts ändern muss, damit das Raspi-Signal zum Aurora passt.

Wieder freue ich mich über sachdienliche Hinweise, ansonsten versuche ich es in den nächsten Tagen mit geänderten Einstellungen für SDATA_IN3 im Aurora-Plugin.

Danke nochmal,
Jens

ebapst
07.01.2021, 06:33
Leider noch kein Erfolg, der Aurora bleibt stumm: ich habe das 8channel-Plugin vom Aurora (weiter 2.0.3 als Basis) genommen und die SDATA_IN3-Einstellungen verändert, so dass sie zum unveränderten https://github.com/MKSounds/ADAU1701-I2S-Audio-Driver-for-Raspberry-Pi passen sollten, also:
LRCLK polarity: falling edge (LRCLK = 0 = left channel, LRCLK = 1 = right channel)
BCLK data change: falling edge
Transmission: MSB first
MSB position: delayed by 1 BCLK

Ich habe nur "MSB Position" auf "I2S - BCLK delay by 1" verändert, "LRCLK type" auf "50/50 duty cycle clock", "TDM Mode" auf "2 channels, 32bit".
Beide Varianten von "BCLK Polarity" habe ich ausprobiert.
Oszi-Bilder vom ersten Versuch sind angehängt:
581645816558166

Danach auch noch Test mit "TDM Mode" wieder auf "8 channels".

Hat jemand eine Idee?

ebapst
07.01.2021, 15:46
Im SigmaStudio geschaut, ob die Eingangsmultiplexer die Reihenfolge haben wie das Enum im Code -- denn daraus hatte ich 0x0002 für Exp abgeleitet...und das ist es! Exp ist an vierter Stelle verbunden, also im Vergleich zum bisherigen Gedanken ESP und Exp vertauscht. Damit tönt es dann auch!
Jetzt muss ich hier ein paar aufgerissene Baustellen bearbeiten, dann werde ich das ganze besser beschreiben und in meinem github-repo mit dem alternativen 2.0.3-Derivat die Änderungen zur Verfügung stellen.

MK_Sounds
07.01.2021, 17:51
Damit bekomme ich aus dem Raspi ein Signal heraus (LRCLK 48kHz, BCLK ~12,3 MHz, Datensignal auch vorhanden) aber es erscheint nichts am Ausgang des Aurora, vermutlich weil dessen Einstellungen
Aus dem Raspberry kommen gar keine Signale raus, der ist als Slave konfiguriert.


Die Aurora-Quellen habe ich durch Modifikation von dsp.html auf 0x00020000 und 0x00020001 eingestellt.
Welche der beiden Seiten ändere ich nun?
Keine Ahnung, was du da genau geändert hast.
Am Aurora würde ich erstmal nichts ändern. Man muss mal im Layout prüfen, ob jeder serielle Port eigene Clocks hat. Könnte sonst sein, dass der ADC/DAC nicht mehr richtig funktioniert. Man kann ja alles auf die Konfig mit TDM8, 48 kHz auslegen.
Nach einem kurzen Blick in das Sigma Studio File vom 8 Kanal PlugIn scheint der LRCLK type tatsächlich auf Pulse zu stehen. Ist wohl die default Einstellung in Sigma Studio. Macht aber eher weniger Sinn. Die meisten Devices kommen unter TDM8 aber mit beidem klar (50/50 oder Pulse). Würde ich generell auf 50/50, also wie bei I²S stellen. Der Rest wie gehabt (TDM8, 48 kHz).
Dann halt LRCLK, BCLK und die Datenleitung an Expansion Port und Raspberry anklemmen.



dtc -I dts -O dtb -o adau1701-i2s.dtbo adau1701-i2s.dts
konnte ich zwar aus der dts-Datei etwas machen, was irgendwie ähnlich der beigelegten .dtbo ist, aber eben erstens nicht identisch und zweitens habe ich keine Ahnung, wie ich die .dts ändern muss, damit das Raspi-Signal zum Aurora passt.
Das einzige was man ändern muss, ist die Kanalanzahl von 2 auf 8 stellen. Dann eben mit dem von dir zitierten Command neu kompilieren (copy & paste in die Kommandozeile). Dann nach Anleitung einbinden.
Sollte funktionieren.

ebapst
07.01.2021, 18:30
Hallo Markus,

wie vorhin schon geschrieben: es funktioniert jetzt. Nachdem ich das DSP-Plugin geändert hatte, war es wohl ein Fehler in der Kanalauswahl auf ESP32 und/oder DSP-Seite. Wie ich jetzt beim Aufräumen bemerke, ist das allerdings noch nicht ganz gefixt. Irgendwas ist da noch komisch, noch nicht reproduzierbar. Hoffentlich am Wochenende aufgelöst...

Cleener
07.01.2021, 20:04
Sorry für die blöde Frage, kann man das einem nicht wissenden erklären was ihr da macht. Ich verstehe nur Bahnhof.

MK_Sounds
07.01.2021, 21:34
Sorry für die blöde Frage, kann man das einem nicht wissenden erklären was ihr da macht. Ich verstehe nur Bahnhof.
Siehe Thread-Titel.
Raspberry —> I2S/TDM —> Aurora

ebapst
09.01.2021, 13:25
Worum ging es?
Einen Raspberry Pi (Zero) über den Expansion Port mit dem Aurora verbinden, damit die USB-Ports beider Geräte für andere Dinge frei sind.

Lösung siehe https://github.com/jotwewe/freeDSP-aurora/releases/tag/2.0.3_Display_Encoder_201028a und die Notizen dazu in https://raw.githubusercontent.com/jotwewe/freeDSP-aurora/2.0.3_Display_Encoder/README_branch.txt

Cleener
09.01.2021, 13:36
Danke für die Antworten

TangBand
08.03.2021, 15:05
Moin


Wie ist der letzte Stand bzgl einer Signaleinspielung zum Aurora via I2S ?

Funktioniert das mit der aktuellen Firmware und dem 7.1. PlugIn (AddOnB) ?

Mein Aurora läuft jetzt mit einem Arylic-Streamer über optical-in einwandfrei.

ich überlege, ob ich die Kernplatine des Streamers (LinkPlay) direkt mit dem Aurora in ein und das selbe
Gehäuse einbaue und die Verbindung via I2S herstelle.

Beim Sure-DSP bin ich auch so vorgegangen, hat einwandfrei funktioniert.

Ideen?


Gruß TB

MK_Sounds
08.03.2021, 17:53
Moin
Wie ist der letzte Stand bzgl einer Signaleinspielung zum Aurora via I2S ?
Mein Aurora läuft jetzt mit einem Arylic-Streamer über optical-in einwandfrei.
ich überlege, ob ich die Kernplatine des Streamers (LinkPlay) direkt mit dem Aurora in ein und das selbe
Gehäuse einbaue und die Verbindung via I2S herstelle.
Beim Sure-DSP bin ich auch so vorgegangen, hat einwandfrei funktioniert.
Ideen?
Gruß TB
Das Linkplay A31 läuft fix auf 44,1 kHz-Basis und ist Clock Slave auf dem I2S. Aurora auf 48 kHz und Master. Das wird so also nix.
Was gehen könnte ist das komplette Arylic up2stream (das liefert auch den Clock) an den DSP hängen und durch den ASRC routen.

TangBand
08.03.2021, 18:19
59579

Das ist das Up2StreamPro (Rückseite)
Die drei Kabel habe ich angelötet, um ein externes SPDIF-Board anzusteuern

TangBand
08.03.2021, 18:20
59580

Das komplette Board mit dem Linkplay A31

TangBand
08.03.2021, 18:26
59581

So sieht mein Aurora-Zu-Hause aus

Im Moment geht die Musik folgenden Weg:
Vom Up2StreamBoard zum externen SPDIF-Board
Von dort via optischem DigiKabel zum optical-in des Aurora
Vom Aurora mittels Abgriff auf der Platine zu den Cinch-Buchsen
Von da zu meinen Gremlin Class-D Enstufen (vorher war da das SureDSP dazwischen)

Funktioniert einwandfrei, ist aber nicht so ganz der "direkte" Weg:(

Deswegen wäre es sicher verlustärmer, wenn ich vom Up2Stream via I2S direkt
ins Aurora käme:confused:



TB

MK_Sounds
09.03.2021, 12:04
Funktioniert einwandfrei, ist aber nicht so ganz der "direkte" Weg:(

Deswegen wäre es sicher verlustärmer, wenn ich vom Up2Stream via I2S direkt
ins Aurora käme:confused:
Ist schon etwas "von hinter durch die Brust ins Auge" :D
Klemm den Up2Stream halt mal an und teste es. In Sigma Studio einfach den Input durch den ASRC routen und dann im Workspace verwenden.

TangBand
10.03.2021, 09:42
Hi Markus,

Danke für die Antwort, nur verstanden hab ich sie nicht.....

Sigma Stidio kommt doch jetzt hier gar nicht vor?
ich kann das Up2StreamPro mittels ACP-Workbench konfigurieren, also auch die Digitalausgänge.

Wo muss ich mit dem I2S-Signal beim Aurora denn rein?

Wenns zu kompliziert wird, dann bleibts halt so wie es jetzt ist.


Noch mal ne andere Frage zur Eingnagswahl beim Aurora:

Nehmen wir an ich habe drei Zuspieler via optical-in (1-3 eingesteckt).
Auf welchem Wege wird dann die Quellenwahl beim Aurora durchgeführt?
Durch Durchschalten der Presets oder hat sich irgendwo ein "Eingangswahlschalter" versteckt.

Also ich meine nicht die Weboberfläche.....


Gruß TB

MK_Sounds
10.03.2021, 10:54
Sigma Stidio kommt doch jetzt hier gar nicht vor?
ich kann das Up2StreamPro mittels ACP-Workbench konfigurieren, also auch die Digitalausgänge.

Wo muss ich mit dem I2S-Signal beim Aurora denn rein?

Du verwendest einen Sigma DSP, wie soll in dieser Kette kein Sigma Studio vorkommen? Ein Aurora-Plugin ist ja nichts anderes als ein Sigma Studio Projekt.
Fakt ist: Wenn der Up2Stream 44,1 kHz ausgibt, muss das Signal eben durch den ASRC um auf 48 kHz zu kommen.
Das kann man in Sigma Studio einfach auswählen. Wie das der Aurora speziell macht hat mich bisher noch nicht wirklich interessiert. Du kannst ja auch ein beliebiges Sigma Studio Projekt auf den Aurora hochladen.

TangBand
10.03.2021, 11:34
Danke für die Antwort,


aber ich verstehe jetzt nicht wirklich, wie ich das machen könnte:confused:

Egal, mit der optischen Variante läufts ja erstmal.


Kannst Du mir denn bei der Frage der Eingangswahl / Quellenwahl weiterhelfen?

Wie kann ich z.B. zwischen den Eingängen optical in 1-4 durchschalten ohne dafür immer
mit der Webobefläche zu arbeiten?
Gibt es optinonal einen Eingangswahlschalter oder muss man jede Quelle als ein Preset abspeichern
und dann mit dem Drehgeber auswählen?

Das mit den Presets hätte natürlich den Vorteil, dass ich jeden Zuspieler auch in der Lautstärke
einzeln abstimmen könnte.
Z.B. ist meine blöde Magenta-TV-Box extrem leise am Tonausgang


Wie macht Ihr das?


Gruß
TB

rkv
10.03.2021, 11:47
Kannst Du mir denn bei der Frage der Eingangswahl / Quellenwahl weiterhelfen?

Wie kann ich z.B. zwischen den Eingängen optical in 1-4 durchschalten ohne dafür immer
mit der Webobefläche zu arbeiten?
Gibt es optinonal einen Eingangswahlschalter oder muss man jede Quelle als ein Preset abspeichern
und dann mit dem Drehgeber auswählen?


Wenn Du Dir mal die drei "offiziellen" Plugins anschaust und welche Konfigurationen da möglich sind, wirst Du feststellen, dass ein Drehgeber als Quellenwahl keinen Sinn ergibt. Beispiel Plugin 8channels: Woher soll der Drehgeber wissen, was er alles umschalten soll und wohin? Ein Nutzer macht vielleicht folgende Konfiguration:
Analog 1 -> DSP Kanal 1
Analog 2 -> DSP Kanal 2
Analog 3 -> DSP Kanal 3
Was soll jetzt passieren, wenn per Drehgeber auf SPDIF umgestellt wird. Für DSP Kanal 1+2 kann man sich vielleicht noch mit SPDIF L und R retten, aber was ist mit DSP Kanal 3????

Und ehrlich gesagt, jeden Kanal einzeln per Drehgeber umzuschalten ist auch nicht sonderlich komfortabel... Da ist man ewig am Drehen. Aber wer die Leidensfähigkeit hatl, kann sich das ja programmieren (lassen). :p

TangBand
10.03.2021, 11:57
Vielleicht bin ich einfach von falschen Voraussetzungen ausgegangen.....

Eigentlich brauch ich nur digitale Eingänge (hier optical 1-4)
und die jetzt von mir aufgelöteten RCA-outs.

Läuft, alles gut.


Aber wie -und das versuch ich ja herauszubekommen- kann ich dann
zwischen den verschiedenen Eingängen hin- und herschalten?


Beispiel:

Am optical-in 1 hängt Magenta TV
Am optical-in 2 mein Streamer
Am optical-in ?????? irgendwas

Wie schalte ich zwischen den Eingängen um ?
Also quasi Quellenwahl so wie bei jedem AVR (den ich ja rausschmeissen möchte)

Das Aurora soll quasi als "Vorstufe / Vorverstärker" dienen..


TB

rkv
10.03.2021, 12:31
Du kannst die Eingänge über die WebGUI umschalten. Solange es nur um die digitalen Eingänge geht und Du ein AddOnB verwendest, kannst Du das über den SPDIF-Mulitplexer desselben machen. Die GUI dazufindest Du links in der Hauptansicht.
Alternativ definierst Du Dir für jeden digitalen Eingang ein Preset. Das Preset kannst Du mit dem Drehgeber umschalten.

TangBand
10.03.2021, 13:10
Jaaaaaaaaaaaa:D


So war meine Idee gemeint!

Dann kann ich nämlich jedem Zuspieler auch eine eigene DSP-Abstimmung (falls erforderlich) per Preset zukommen lassen.

DANKE!

Ist der Drehgeber aus dem handout (ky-040) immer noch erste Wahl oder hat sich eine Alternative ergeben?


TB

rkv
11.03.2021, 17:14
Ja ist noch aktuelle. Tatsächlich ist an so einem Drehgeber nichts spektakuläres, es sind eigentlich nur zwei gegeneinander versetzte "Zahnräder", d.h. auch andere Fabrikate sollten es tun.