Forum: Mikrocontroller und Digitale Elektronik Zwei I2S Output Devices (Slaves) parallel an ESP32 betreiben?


von Svensche (sven_s895)


Lesenswert?

Ich habe ein WebRadio Projekt 
(https://github.com/chess-levin/esp32webradio/tree/main) und habe für 
einen analogen Audio-Ausgang einen PCM5102a über I2S am ESP32 
angeschlossen.

Nun möchte ich optional noch Bluetooth-Speaker "anschließen". Dafür habe 
ich mir ein TSA5001 Modul 
(https://www.tinysineaudio.com/products/tsa5001-bluetooth-5-3-audio-transmitter-board-i2s-digital-input) 
gekauft.

Kann ich beide ohne weiteres parallel an den ESP32 anschließen?

Freue mich auf eure Tipps!

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Svensche schrieb:
> Kann ich beide ohne weiteres parallel an den ESP32 anschließen

nein das geht nicht. Da braucht es einen I2S Mixer oder ähnliches. 
Samplerate sollte natürlich auch gleich sein.

von Sebastian W. (wangnick)


Lesenswert?

Svensche schrieb:
> Kann ich beide ohne weiteres parallel an den ESP32 anschließen?

Ja, das sollte mit einem ESP32 ohne -XY gehen. Ich benutze auf einem 
ESP32 erfolgreich den einen I2S-Kanal zur Ausgabe eines Bitstreams an 
eine SK6812-RGBW-Kette, und gleichzeitig den anderen Kanal mit anderen 
Parametern für ein I2S-MEMS-Mikrofon. Siehe auch 
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html.

LG, Sebastian

von Svensche (sven_s895)


Lesenswert?

Ok, ich verstehe die Antworten so, dass ich nicht einfach zwei 
I2S-Devices elektrisch parallel an die gleichen GPIO pins klemmen darf. 
Es gibt aber verschiedene ESP32 Modelle, die zwei I2S Schnittstellen 
anbieten.

THX

von Harald K. (kirnbichler)


Lesenswert?

Svensche schrieb:
> Kann ich beide ohne weiteres parallel an den ESP32 anschließen?

Wenn beide mit den gleichen Daten im gleichen Format beschickt werden 
dürfen, ja.

Es gibt bei IIS-Übertragungen unterschiedliche Formate (Wortlänge, 
Ausrichtung etc.), wenn die bei Deinen beiden Geräten abweichen, geht's 
nicht.

Bei vielen IIS-DACs kann man innerhalb gewisser Grenzen das benötigte 
Format umschalten, wenn Du da einen gemeinsamen Nenner mit Deinem 
BT-Modul findest, ist der Drops gelutscht.

Um eine übermäßige Belastung der Ausgänge des ESP32 musst Du Dich 
hierbei nicht kümmern, das ist nicht das Thema.

von Axel S. (a-za-z0-9)


Lesenswert?

Svensche schrieb:
> Ok, ich verstehe die Antworten so, dass ich nicht einfach zwei
> I2S-Devices elektrisch parallel an die gleichen GPIO pins klemmen darf.

Natürlich darfst du das. I²S ist strikt unidirektional, der Sender kann 
nicht unterscheiden, ob 2 oder auch gar kein Empfänger die per I²S 
gesendeten Daten verarbeiten.

Natürlich müssen dann beide Empfänger mit dem Datenformat zurecht 
kommen. Aber das ist dir wohl selber klar.

von Sebastian W. (wangnick)


Angehängte Dateien:

Lesenswert?

Svensche schrieb:
> einfach zwei I2S-Devices elektrisch parallel an die gleichen GPIO pins
> klemmen

Ah, jetzt verstehe ich die Frage genauer.

Harald K. schrieb:
> Wenn beide mit den gleichen Daten im gleichen Format beschickt werden
> dürfen, ja.

Das geht auch, die Ports machen ja nur Ausgabe. Wenn sie sich nicht auf 
die Füße treten, können auch zwei Eingabegeräte am selben I2S-Kanal 
funktionieren, siehe Anhang.

LG, Sebastian

Beitrag #7621235 wurde vom Autor gelöscht.
von J. S. (engineer) Benutzerseite


Lesenswert?

Svensche schrieb:
> Ok, ich verstehe die Antworten so, dass ich nicht einfach zwei
> I2S-Devices elektrisch parallel an die gleichen GPIO pins klemmen darf.
Wenn dein treibender Baustein das elektrisch kann und beide I2S-Module 
im Slave-Mode laufen, also auf deinen MCLK hören, dann ist das kein 
Problem.

Hier an meiner Workstation hatte ich auch einen I2S-S/PDIF-Transmitter 
und einen I2S-DAC parallel angeschlossen. Auch sonst laufen die Teile 
überwiegend an denselben Signalen- nur die Datenleitung ist halt jeweils 
eine andere. Für einen Sonderzwecke habe ich z.B. zwei Module so 
geschaltet, dass das eine das (funktionell !) invertierte Datensignal 
bekommt. Damit gab es einen komplementären Ausgang.

Bei der oben angehängten Schaltung bin ich aber nicht so sicher, ob das 
arbeitet, wie du möchtest. Offenbar soll das eine Modul den linken und 
das andern den rechten ausgeben.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian W. schrieb:
> Wenn sie sich nicht auf
> die Füße treten, können auch zwei Eingabegeräte am selben I2S-Kanal
> funktionieren, siehe Anhang.

Der TE möchte 2 Stereo IIS DAC, also Ausgänge, an einem einzigen IIS 
Anschluss des ESP32 betreiben. Das gepostete Beispiel ist was völlig 
anderes. Natürlich geht der Anschluss zweier DAC oder BT Audios an einen 
IIS, wie schon erwähnt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian W. schrieb:
> Wenn sie sich nicht auf die Füße treten, können auch zwei Eingabegeräte
> am selben I2S-Kanal funktionieren
Ich würde (bei größeren Leitungslängen) dann aber jede der beiden 
Verbindungen am Sender mit einem Widerstand serienterminieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.