I2S am Raspberry Pi 4 ?

Gast #6865712
Lesenswert?

Hallo zusammen,

ich würde für ein Projekt gerne einfach zunächst einmal mit meinem RPi 
4B ein I2s-Signal erzeugen und an einen PCM5102A anschließen. (eBay: 
https://www.ebay.com/itm/201980418950 )

Quasi einfach mal etwas hören. Würde für den Anfang völlig reichen.

Allerdings, jetzt wo ich die Software für das I2S-Signal schon mal 
schreiben wollte (in Python), ist mir aufgefallen, dass das anscheinend 
gar nicht so leicht ist, damit ein I2S-Signal auf dem RPi zu erzeugen. 
Es gibt wohl so etwas wie CircuitPython, audiobusio, Blinka, wobei 
insbesondere das audiobusio von CircuitPython das zu tun scheint, was 
ich machen möchte. Allerdings funktioniert trotz Blinka-Installation der 
Import von audiobusio nicht, und es scheint irgendwie vor allem für die 
ganz kleinen RPis vorgesehen zu sein (z. B. der Pico, siehe 
https://circuitpython.readthedocs.io/en/latest/shared-bindings/support_matrix.html) 
... aber das kann doch nicht sein, das muss doch auch der RPi 4 können?

Ich möchte nicht den Systemsound vom Raspberry generell über I2S 
ausgeben, dafür gibt es auch Tutorials, aber das ist nicht das, was ich 
machen will. Ich möchte gerne in Python "live" den I2S-"Stream" 
erzeugen, völlig  unabhängig vom Systemsound etc. Das kann doch nicht so 
schwer sein!

Kann mir jemand sagen, wie ich das zum laufen bekomme, oder wieso das 
nur für RPi Pico/Zero/... vorgesehen ist?

Danke!! :)
#6865901
Lesenswert?

Ich kenne den Raspberry 4 nicht im Detail.
Aber auf die Idee mit einem Betriebssystem in Python etwas zu schreiben, 
was mit mehreren kHz und in Echtzeit ausgegeben wird, kommen bei uns in 
der Firma nur "PC-Programmierer".

Falls irgendwo ein Buffer ist den du oft genug befüllen kannst nehme ich 
das natürlich zurück. Wie gesagt, kenne mich nicht im Detail mit dem 
RPI4 aus.
Gast #6866019
Lesenswert?

Kilian schrieb:
> Allerdings funktioniert trotz Blinka-Installation der Import von
> audiobusio nicht

Viel zu ungenau - konkrete Fehlermeldung bitte

Kilian schrieb:
> aber das kann doch nicht sein, das muss doch auch der RPi 4 können?

CircuitPython ist für Mikrocontroller und benutzt einen anderen 
Interpreter als das klassische für'n Desktop vorgesehende Python auf dem 
Raspberry Pi 4. Nach kurzer Recherche 
(https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/circuitpython-raspi) 
scheint es aber tatsächlich möglich, dass zum Laufen zu bekommen

Kilian schrieb:
> Kann mir jemand sagen, wie ich das zum laufen bekomme, oder wieso das
> nur für RPi Pico/Zero/... vorgesehen ist?

Nicht direkt, aber guck dir Mal den Link von oben an. Der Zero sollte 
mehr oder weniger gleich zum Pi 4 sein - nur der Pico ist was ganz 
anderes und zur Nutzung mit CircuitPython vorgesehen. Kennst du das 
Beispiel für'n normalen Pi: 
https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/audio-with-pygame
#6868163
Lesenswert?

Moin!

Hifi-Berry macht doch genau das. Also einfach installieren und dann 
kannst Du Musik hören.
Pläne dazu bekommt man ja auch, dann weißt Du, wie Du es verbinden 
musst.

Mit dem RasPi-Standard Python wird das auf jeden Fall nix. Die 
Ausführung ist einfach zu lahm. Selbst mit dem 4B.
Selbst wenn man es mit Tricks und Kniffen leidlich zum laufen bekommt, 
frisst die Ausführung einen ganzen Kern.

Gruß
Jobst

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