Zwei I2S Output Devices (Slaves) parallel an ESP32 betreiben?

OP #7619748
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!

#7619854
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

#7621159
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.

#7621168
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.

#7621173
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

Angehängte Dateien:
Beitrag #7621235 wurde von einem Moderator gelöscht.
Persönliche Seite #7621524
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.

(Firma: matzetronics) #7621547
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren