Forum: Mikrocontroller und Digitale Elektronik ESP32 A2DP Wiedergabe wird ständig unterbrochen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alex W. (blacki)


Lesenswert?

Hallo.

Ich versuche mit einem ESP32 (WEMOS D1 mini) über Bluetooth Ton an 
Kopfhörer zu schicken. Verwenden möchte ich die Bibliothek von Phil 
Schatzmann (ESP32-A2DP).

Ich konnte zwar das Beispiel

bt_music_sender

ausführen und höre auch was auf meinen Kopfhörern. Ich hatte aber eine 
konstante Sinusschwingung erwartet. Was ich höre ist allerdings eine 
Schwingung die in (ca) Sekundentakt unterbrochen wird (duty cycle etwa 
50:50) Dazu kommt noch, dassnach einigen Minuten die Frequenz leicht 
reduziert wird.

Kennt jemand das Beispiel und hat ggf. eine Lösung?

LG Blacky

von Steve van de Grens (roehrmond)


Lesenswert?

Aus dem Bauch heraus: Vielleicht ist die CPU zu langsam getaktet. Oder 
du hast ein Modell mit nur einem Kern, brauchst aber zwei.

von Alex W. (blacki)


Lesenswert?

Steve van de Grens schrieb:
> Aus dem Bauch heraus: Vielleicht ist die CPU zu langsam getaktet.
> Oder
> du hast ein Modell mit nur einem Kern, brauchst aber zwei.

Es sollten 2-Kerne verbaut sein. Laut Einstellungen laufen sie mit 240 
MHz. Allerdings scheint nur Kern 1 benutzt zu werden, ich habe mir mit
1
xPortGetCoreID()
 die Core IDs zeigen lassen. Ich versuche mal den Bluetooth teil auf 
core0 zu verschieben.

von Alex W. (blacki)


Lesenswert?

Alex W. schrieb:
> Steve van de Grens schrieb:
>> Aus dem Bauch heraus: Vielleicht ist die CPU zu langsam getaktet.
>> Oder
>> du hast ein Modell mit nur einem Kern, brauchst aber zwei.
>
> Es sollten 2-Kerne verbaut sein. Laut Einstellungen laufen sie mit 240
> MHz. Allerdings scheint nur Kern 1 benutzt zu werden, ich habe mir mit
>
1
xPortGetCoreID()
 die Core IDs zeigen lassen. Ich versuche mal den
> Bluetooth teil auf core0 zu verschieben.

Hmm, die Callback-Funktion läuft auf core 0. Ich habe Spasseshalber mal 
die Berechnung der frames vorab durchgeführt, ändert nichts, auch wenn 
die Funktion jetzt wesentlich schneller ist.

Interessant ist auch, dass das andere Beispiel (in dem ein PCM Sample 
aus einem .h geladen wird) einwandfrei läuft. Da ist der Prozessor dann 
also hinreichend schnell.

von Max D. (max_d)


Lesenswert?

Bei den Empfänger Beispielen gab es mal ärger mit den puffergrösen. Vlt 
hast du grade einen IDF release erwischt bei dem es auch im Sender 
drinnen ist?

von Alex W. (blacki)


Lesenswert?

Ich habe es mit versucht mit

ESP32 2.0.1: hier bricht die Wiedergabe nach ein paar Sekunden ganz ab
ESP32 2.0.9: lief mit den besagten Aussetzern.
ESP32 2.0.13: stürzt bei a2dp_source.start("get_sound_data"); ab
ESP32 2.0.14: stürzt bei a2dp_source.start("get_sound_data"); ab

ich werde jetzt noch 2.0.10...11...12 probieren.

von Alex W. (blacki)


Lesenswert?

Versionen > 2.0.9 stürzen alle bei .start ab...

:(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.