Gast
#6949575
Hallo Leute, ich habe in der Vergangenheit immer mal wieder Projekte auf Audio-DSPs gemacht, kenne mich daher mit digital-audio, I²S, APLL's etc. ganz gut aus. Jetzt habe ich mir mal einen Raspberry geholt, um mal ein bisschen Audio auf embedded Linux Plattformen zu studieren. Ich wollte mal fragen, ob mir jemand auf die schnelle mal "grob" erklären kann, was da drinnen abgeht. Leider findet man beim Raspberry nur high-level Tutorials. Der Kopfhörerausgang beim RPI ist ja PWM basiert (nutzt die interne generische PWM Generierung). Es scheint auch keine richtige Audio-PLL zu geben. Der PWM Takt ist über einen fraktionalen Divider von der System-Clock abgeleitet. Außerdem scheint laut einigen Infos der Audio-Treiber einen Noiseshaper zu beinhalten. Ich habe mal Musik über den Kopfhörer-Ausgang abgespielt und man hört definitiv, dass der Sound "nicht ganz sauber" ist und leichte Verzerrungen hat wenn man genau hinhört. Für mich klingt das ein bisschen nach einem "linearen interpolierenden Resampler" ;) Wenn ich z.B. einen Webradio-Stream im VLC abspiele, wie genau wird da der "asynchrone Clock-Übergang" zwischen Audio-Clock vom Stream vs. RPI Kopfhörer PWM Hardware gemacht. Mit Sicherheit ist da ein resampler im Spiel. Wo kann man die Source-files einsehen, wo das Audio per DMA wirklich durch einen Noise-Shaper und in die PWM Hardware geht? Danke für die Infos.