Kein Audio auf dem 2 W

  • Hallihallo!


    Ich habe ein Problem mit dem Raspberry 2 W. Ich versuche gerade, Lautsprecher über die GPIO laufen zu lassen. Wenn ich in raspi-config gehe, sagt es mir unter Advanced Options > Audio Config, dass kein Audio System installiert ist. Mir ist vollkommen unklar, warum das so ist. So weit ich weiß, müsste doch ALSA im Kernel integriert sein und standardmäßig laufen. Unter System Options > Audio hab ich die Möglichkeit, "vc4-hdmi" auszuwählen.

    Ich hab mich schon durchs halbe Netz gegooglet, finde aber nicht einmal einen Ansatz der dieses Problem lösen könnte. Ist das ein bekanntes Problem? Gibt es eine Lösung?


    Für jede Hilfe dankbar!

  • Moinsen,

    da alle RasPI Modell keinen DAC haben, kannst du auch nicht direkt über einen GPIO sowohl eine PWM Modulation oder ein echtes analoges Audio Signal aus einem RasPi auf diesem Weg herausschleusen - das geht nicht. Du kannst eine I²S Schnittstelle mittels der GPIOs initiieren, und daran einen entsprechenden Digitalverstärker anschliessen, welcher dir dann ein echtes Audiosignal in Form einer solchen Welle ausgibt.
    I²S lässt sich nach meinem Kenntnisstand mit einem Zusatzmodul ( Kernel ) so einbinden, dass du dieses via der Standard Audio-Verarbeitunsgebenen ALSA oder PulseAudio als Audio-OUT ansprechen kannst.

    PWM-Sound kann man auf Kosten einer verhältnismäßig hohen CPU Last bei eher nur mittelmäßiger Qualität erzeugen. Das entspricht dann annähernd der Funktion, wie sie sie über über die Klinkenbuchse bei den größeren RasPi Modellen bereitgestellt wird. Allerdings fehlen auch die Signalverarbeitungsbausteine auf der ZERO Platine, so dass das Ergebnis noch bescheidener ausfallen dürfte !?



    Diese technisch-elektronische Funktionsgruppe ist auf dem Zero nicht vorhanden, müsste also entsprechend auf einer Zusatzplatine ( HAT ) noch implementiert werden, damit du mittels GPIO-PWM eine Audioausgabe erzielen könntest.
    Alternativ steht dir auch frei eine GPIO-Soundkarte wie ein HifiBerry oder diese berühmtes Universal-HAT des Mitglied schlizbädazu verwenden.

    Franky

  • Hallo und vielen Dank für die ausführliche Antwort, Franky07.


    Das alles weiß ich. Das Problem liegt ja auch woanders: mein Raspi denkt, er hätte kein internes Soundmodul. Da er das aber mit Sicherheit hat, wenngleich ohne Ausgang, ist das Problem woanders verortet.

  • Hi prospero2512

    willkommen im Forum!

    Zuerst verweise ich auf die vier(?) Möglichkeiten der Audioausgabe auf dem RPi. Siehe hier, Teilüberschrift "Audio":

    1. vierpoliger Audioklinkenstecker: Gibt's am RPi Zero 2W nicht. Dort wird Audio über eine lieblos implementierte PWM erzeugt, das will sich eh keiner antun.
    2. Audioübertragung per HDMI an den angeschlossenen Monitor:
      Hier benötigt man einen Monitor mit eingebauten Lautsprechern
      Oder der Sound wird über einen HDMI-Audio-Extraktor abgegriffen und an einen Verstärker weitergeleitet
    3. I2S-Soundkarten, die an der 40-poligen GPIO-Leiste angeschlossen werden -- das ist wahrscheinlich das was Du meinst:
      Hier benötigst Du ein Aufsteckboard (PiHAT) mit einem entsprechenden DAC, der die digitalen I2S-Audiodaten in ein Analogsignal umwandelt. Ohne zusätzliche Hardware kann man den Sound an der GPIO-Leiste nicht abgreifen!
      Hier greift man am besten auf Soundkarten von HiFiBerry zurück, z.B. in deinem Fall für den RPi0 2W auf den HiFiBerry DAC+ Zero oder den HiFiBerry DAC+ in der größeren Bauform. Achtung: Produktplatzierung! Eine kompatible Alternative dazu wäre mein RPi400extBrd, demnächst in der fehlerfreien Revision 2024_09. Dieses Board hat einen kleinen Audioverstärker und passive PC-Lautsprecher können daran direkt angeschlossen werden.
    4. USB-Soundkarten. Hier reicht die Qualität je nach Modell von äußerst mittelmäßig bis sehr gut.
    5. Dann gibt es noch die Möglichkeiten, Audio vom RPi per Bluetooth an einen BT-Lautsprecher zu übertragen oder über Streamingquelle (im Heimnetzwerk)

    Die beiden ersten Varianten sollten in der /boot/firmware/config.txt über den Eintrag dtparam=audio=on standardmäßig aktiviert sein. HDMI ist RPi-seitig im Gegensatz zum Klinkenstecker auch qualitativ zu gebrauchen.
    Für I2S-Soundkarten muss der dazugehörige Linuxtreiber laut Herstellerangaben installiert werden. Für die HiFiBerry DAC+-Serie (und für mein RPi400extBrd) läuft das über den Eintrag dtoverlay=hifiberry-dacplus,slave in der /boot/firmware/config.txt.

    Mit USB-Audio, Bluetooth oder gar Streaming am RPi habe ich bisher keinerlei Erfahrung.

    prospero2512 :
    Welches Audioboard hast Du für Deinen RPi? Aus Deinem Post lese ich heraus, dass für Dich am ehesten Variante 3 in Frage käme.

  • Hallo nochmal, ihr alle. Und vielen lieben Dank für eure Antworten!!!

    Ich geh hier nochmal ein paar Details rein.

    Ich versuche gerade, das Tutorial "Adding Basic Audio Output to Raspberry Pi Zero" von Adafruit durchzuarbeiten: https://learn.adafruit.com/adding-basic-a…i-zero/overview. Dort wird auch schon viel von dem, was ihr schreibt erwähnt.

    Mein Problem ist Folgendes:

    • Ich habe, wie im Tutorial beschrieben, die Soundausgabe per dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4 auf die Pins umgeleitet.
    • Dann habe ich den Schritt zum Low-Pass-Filtering durchgeführt.
    • Danach soll ich in raspi-config unter Advance Options > Audio die Soundausgabe auf die Headphones, in meinem Fall wären das dann natürlich die beiden GPIO-Pins, umleiten.
    • Hier ist der Knackpunkt. Denn hier bekomme ich nur gemeldet, dass kein Audio System installiert wäre.

    Dass ich damit keine Hifi-Qualität erreiche, ist mir klar. Mir geht es auch aktuell nur darum, bei einem Projekt ein paar Tastendrücke mit kurzen MP3s zu quittieren. Einfach weil ich sehe, dass es gehen soll und ich wissen will, ob es wirklich geht :)

    schlizbäda Die Möglichkeiten sind für das, was ich vorhabe, schon etwas übers Ziel hinaus. Und Sound ist dtparam an.

    Und leider kann ich mir das nicht erklären. Hilft das?

    LG

    prospero

  • Ich möchte jetzt nicht blöd daherreden, aber das Adafruit-Tutorial stammt ursprünglich von 2015(!), auch wenn es im März 2024 aktualisiert wurde. Ich habe kurz reingeschaut und gesehen, dass dort noch wiringPi für den Zugriff auf die GPIO-Leiste verwendet wird. Dann war's das für mich eh mit diesem Tutorial, denn mittlerweile/seitdem hat sich im offiziellen Betriebssystem Raspberry Pi OS soo viel geändert, dass sowas oft nicht mehr läuft. Ich meine auch, dass wiringPi mittlerweile aus dem OS rausfiel und das nachzuinstallieren ist definitiv nix für Anfänger. Auch ich als Linux-Dauernoob lasse von so etwas geflissentlich meine Finger weg!

    Als Neuling bist du da leider nicht auf die beste Anleitung gestoßen... :(

  • Ich möchte jetzt nicht blöd daherreden, aber das Adafruit-Tutorial stammt ursprünglich von 2015(!), auch wenn es im März 2024 aktualisiert wurde. Ich habe kurz reingeschaut und gesehen, dass dort noch wiringPi für den Zugriff auf die GPIO-Leiste verwendet wird. Dann war's das für mich eh mit diesem Tutorial, denn mittlerweile/seitdem hat sich im offiziellen Betriebssystem Raspberry Pi OS soo viel geändert, dass sowas oft nicht mehr läuft. Ich meine auch, dass wiringPi mittlerweile aus dem OS rausfiel und das nachzuinstallieren ist definitiv nix für Anfänger. Auch ich als Linux-Dauernoob lasse von so etwas geflissentlich meine Finger weg!

    Als Neuling bist du da leider nicht auf die beste Anleitung gestoßen... :(

    Lach. Genau deshalb hab ich mich auf für Option1 entschieden. Ich geh mir heute nochmal einen Tag mit Recherche und dann schau ich mal, ob eine deiner Lösungen gangbar wäre. Danke.

  • Moinsen prospero2512 ,

    Du kannst durcharbeiten was du willst, aber scheinbar sind dir unsere Ausführungen egal ?
    Wie schlizbäda und auch ich schon erwähnte ist das was dort herauskommt eine "bescheidenes" PWM Siganl. Wo nicht nicht einmal eine entsprechende Signalanspassung /-verstärkung passiert !
    Wenn du an einen der GPIOs hier als PWM OUTPUT eine Audio-Ausgabeeinheit / Lautsprecher mit einer Impedanz kleiner 320 Ohm anschließt, weil du denkst das könne man dann wie einen Kopfhöreranschluß gebrauchen dann kannst du dein Zero auch gleich zum Fenster herauswerfen !
    Eine Impedanz zuzüglich des Innenwiderstands des GPIO-Port von kleiner 320 Ohm würde dazu führen das der Maximalstrom welcher über einen GPIO abgegeben werden kann bis an Selbstzerstörungslimit überschritten wird !!!
    Entweder du nutzt die vollständige Schaltung mit einer Verstärker und Pegelangleichstufe wie ich sie dir schon in #2 gepostet hatte, oder du setzt auf eine HAT (-Siehe Beitrag #6 ) oder du doktorst mit einem OTG- Adapter eine USB-Soundkarte an dieses Zero. Alles andere ist und wird keine dauerhaft stabil funktionierenden Lösung !

    Franky

  • Moinsen

    Allein, einen Digitalverstärker hab ich schon zwischen Raspi und Lautsprecher.

    Ich weiss echt nicht was du damit ausdrücken willst. Ein Audiosignal als reines analoges Signal ist eine Wechselspannung ( also eine eher verrückte Wellenform als ein sauberes Sinus-Signal und hat einen Nulldurchgang ). Also einen Anteil mit einem positiven und einem negativen Spannungspotential. Das was aus dem GPIO herauskommt ist nur ein "irgendwas" was ausschließlich sich im Bereich eines positiven Spannungspegels bewegt. Und dabei ist es egal ob einen analogen LM386 Audioverstärker, oder ein ein CLASS D Verstärker inwiefern er keinen I²S Eingang besitzt ( PAM8403 ) muss man mit einem symmetrischen Eingangssignal ( mit Nulldurchgang ) ansteuern. Wenn du dir mal bitte dazu die Kennzahlen in den Datenblättern ansiehst, die Eingangspannungen NF-Audio dürfen nur im Spannungsbereich -0,4 volt bis 0,4 Volt liegen. Somit kannst du aus dem bis 3,3 Volt Pegelspannung PWM Signal nichts wirklich ansteuern !
    Du musst erst dieses resultierende PWM Signal symmetrisch machen, den Strom verstärken und gleichzeitig das Spannungs-Delta aus minimaler und maximaler Wechselspannung auf maximal diesen Bereich -0,4 V bis 0,4 Volt reduzieren !
    Ansonsten fliegt dir auch der angeschlossene Audioverstärker, sofern er kein I²S Eingangssignal nutzt um die Ohren.
    Das ist ganz einfache Schaltungs-Physik !

    Franky

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!