ESP32 I2S knacken bei 540 samples audio buffergrösse?

OP #6946467
Lesenswert?

Ich hab ein testprogramm dass über I2S audio einliest und auch über I2S 
gleich wieder rausschreibt. Das funktioniert mit (16 bit) 180 samples 
buffer auch bestens. Ich brauche aber 540 samples lange buffer und das 
verursacht häufiges knacken im audio.
Der speicherverbrauch ist 2 kanäle a 4 buffer von 2x540 bytes, etwa 
9kbytes.
Hat der esp32 da probleme mit ram oder ist das ein dma problem, und wie 
kann ich das lösen? Audiochip ist der ES8388.
Moderator (Firma: Titel) Persönliche Seite #6946497
Lesenswert?

Pepe T. schrieb:
> Ich brauche aber 540 samples lange buffer
Warum?
Irgendwie finde ich binäre Zweierpotenzen wie ... 256, 512, 1024 ... für 
einen binären Rechenknecht immer viel handlicher.

> das verursacht häufiges knacken im audio.
"Häufig" im Sinne von wie oft?

Ich würde da mal einen Sinus oder ein Dreieck durchschicken und 
anschauen, wo es denn "knackt" und was dann fehlt...
OP #6946560
Lesenswert?

Das läuft mit 8000 samples/sek. Das knacken kommt unregelmässig, etwa 3 
mal pro sekunde. Unangenehm laut.

Die 540 samples braucht der codec. Da der codec ziemlich zeitintensiv 
ist klappt das "3 mal 180 samples einsammeln" und dann codec 
laufenlassen nicht so einfach.
Gast #6946649
Lesenswert?

Pepe T. schrieb:
> Die 540 samples braucht der codec.

Welcher Codec denn? Oben hieß es über I2S rein und gleich wieder raus. 
Das was man in der Hardware als CODEC bezeichnet, wurde oben als 
Audiochip bezeichnet. Warum der CODEC (HW) irgendwelche Puffergrößen 
haben sollte, wäre mir schleierhaft, normalerweise erwarten die 
kontinuierlich Takt und Daten.

Bitte eine weitere Salamischeibe...

Vermutlich gibt es einfach alle 16k samples einen underrun oder overflow 
in dem ominösen Codec.
OP #6946723
Lesenswert?

Hab's kontrolliert, steht alles auf I2S, nix leftjustified.
Was FS1 und FS64 Clock sind weiss ich nicht.
Hab den driver von "schreibfaul" auf git geklaut.

Da der code mit 180 sample buffer problemlos läuft denke ich das problem 
ist nicht beim hardware interface.

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