Ich habe mir ein TEA5767 Radiomodul gekauft (https://www.amazon.de/Thingnovation-Tea5767-Programable-Potencia-m%C3%B3dulo/dp/B01FW24WXG/ref=sr_1_8?ie=UTF8&qid=1538141946&sr=8-8&keywords=tea5767). Ich habe dieses mit einem ESP32 (https://www.amazon.de/AZDelivery-NodeMCU-Development-Nachfolgermodell-ESP8266/dp/B071P98VTG/ref=sr_1_1_sspa?ie=UTF8&qid=1538142122&sr=8-1-spons&keywords=esp32&psc=1) verbunden: TEA5767---------ESP32 GND-------------GND VCC-------------3.3V SDA-------------PIN 21 SCL-------------PIN 22 BUSMODE---------GND ANTENNE---------HAUSANTENNE L---------------VERSTÄRKER R---------------VERSTÄRKER GND-------------VERSTÄRKER R/W-------------N.C. MPXO------------N.C. Ich habe mehrere Bibliotheken getestet: https://github.com/mathertel/Radio https://github.com/andykarpov/TEA5767 https://github.com/big12boy/TEA5767 https://github.com/mroger/TEA5767 Bei allen habe ich das Problem, dass das Radio nicht vernünftig spielt. Wenn ich einen Testsketch mit der Arduino ide 1.8.6 auf den ESP32 hochlade, funktioniert er einmal für ca. 10 Sekunden. Dann hört das Radio auf zu spielen und rauscht nur noch. Wenn ich dann den Strom aus und dann wieder einschalte, kommt kein Ton (auch kein Rauschen) aus dem Verstärker (am Verstärker liegt es nicht; Andere Audioqwellen gehen). Wenn ich das Radio eine Stunde aus lasse, geht es wieder für 10 Sekunden. Meine Lötstellen Habe ich schon kontrolliert.
:
Bearbeitet durch User
Marc schrieb: > Hier gibt es noch Code-Beispiele: > Beitrag "Webradio basteln" Es Geht aber um einen TEA5767. Das ist ein FM-Radio.
Hallo, wie groß sind Deine PullUp Widerstände am I2C? Die internen des ESP32 sind zu hochohmig falls sie die I2c-Lib des ESP32 überhaupt einschaltet. Gruß aus Berlin Michael
Hallo, ok, 2,2k klingt gut. Viel fällt mir gerade nicht mehr ein. Ich hatte bisher am ESP32 am I2C nur mal Display, die liefen aber ohne Probleme. Ich habe gerade versucht, herauszufinden, ob I2C am ESP32 auch mit 100kHz gestartet wird, falls nicht schon drin pack mal ein Wire.setClock(100000); rein. Ich hatte hier nur mal ein RDA5807 Modul an einem ATTiny als Puppenstubenradio, da war die Initialisierung im Beipiel im Netz fehlerhft und er entwicklete auch ein ziemliches Eigenleben bis es ging. Das er den Sender verliert könnte daran liegen, daß er vom Takt an der Grenze der PLL liegt und die ausrastet. Warum er dann nach PowerOn nicht mehr startet? Keine Ahnung, vielleicht initialisiert der Treiber den Chip doch nicht 100% richtig. Oder das Modul ist defekt... Wenn Du einen AVR zur Hand hast, häng ihn doch mal daran. Gruß aus Berlin Michael
Du hattest recht. Es ist besser geworden, als ich selber die Ansteuerung geschriben habe. Leider funktioniert mein Code auch nicht komplett richtig. wenn ich die Frequenz auf 106,70MHz einstelle, empfange ich eien Sender, der Normal auf 106.2MHz liegt. Das ist die funktion, die ich zum Einstellen benutze:
1 | Serial.begin(115200); |
2 | Wire.begin(21, 22, 100000); |
3 | |
4 | |
5 | unsigned int frequencyB = 4 * (106.70* 1000000 - 225000) / 32768; |
6 | byte frequencyH = frequencyB >> 8; |
7 | byte frequencyL = frequencyB & 0XFF; |
8 | Wire.beginTransmission(_address); |
9 | Wire.write(frequencyH); |
10 | Wire.write(frequencyL); |
11 | Wire.write(0xB0); |
12 | Wire.write(0x10); |
13 | Wire.write(0x00); |
14 | Serial.println(Wire.endTransmission()); |
15 | delay(100); |
Jetzt kommt nach dem Neustarten der Sender wider.
:
Bearbeitet durch User
Hallo, hmmm, ich biete unsigned int frequencyB = 4 * (newF * 10000L + FILTER) / QUARTZ; also + 225000 statt - Frequenz war hier in kHz übergeben, deshalb nur * 10000 Könnte Deine rund 500kHz Ablage erklären. https://github.com/mathertel/Radio Die hatte ich damal für den RDA5807, da ist der TEA5767 auch drin. Ist aber wie oben schon erwähnt auch nicht unbedingt fehlerfrei... Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: > also + 225000 statt - Jetzt spielen beide Sender gleichzeitig und ziemlich verrauscht.
Flo S. schrieb: > Du hattest recht. > Es ist besser geworden, als ich selber die Ansteuerung geschriben habe. > Leider funktioniert mein Code auch nicht komplett richtig. wenn ich die > Frequenz auf 106,70MHz einstelle, empfange ich eien Sender, der Normal > auf 106.2MHz liegt. > Das ist die funktion, die ich zum Einstellen benutze: > > Serial.begin(115200); > Wire.begin(21, 22, 100000); > > unsigned int frequencyB = 4 * (106.70* 1000000 - 225000) / 32768; > byte frequencyH = frequencyB >> 8; > byte frequencyL = frequencyB & 0XFF; > Wire.beginTransmission(_address); > Wire.write(frequencyH); > Wire.write(frequencyL); > Wire.write(0xB0); > Wire.write(0x10); > Wire.write(0x00); > Serial.println(Wire.endTransmission()); > delay(100); > > Jetzt kommt nach dem Neustarten der Sender wider. ? Das war wohl nur Zufall. Jetztgeht es wieder nicht...
Hallo, Flo S. schrieb: > Jetzt spielen beide Sender gleichzeitig und ziemlich verrauscht. kann eben jeder seins hören. ;) Naja, war ja nur ein Schnellschuß aus der Radio-Lib. ok, das hängt offenbar von Bit 4 im dritten Byte abm Hiside/LowSide Injection. Da schickst Du ja 0, also LowSide, dann dürften das + richtig sein. Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: > Wenn Du einen AVR zur Hand hast, häng ihn doch mal daran. Einen Avr Mikrocontroller habe ich leider nicht. Ich werden jetzt mal testen, wass passiert, wenn ich die Datenkabel verkürzen.
Flo S. schrieb: > Michael U. schrieb: >> Wenn Du einen AVR zur Hand hast, häng ihn doch mal daran. > > Einen Avr Mikrocontroller habe ich leider nicht. > > Ich werden jetzt mal testen, wass passiert, wenn ich die Datenkabel > verkürzen. Leider das selbe Ergebnis.
Das Problem hat sich mit einem update vom ESp32 Plugin gelöst. Jetzt funktioniren alle oben geannten Bibliotheken. Vielen dank an alle, die probiert habe eine Lösung zu finden. Viele Grüße Flo S
Hallo, Flo S. schrieb: > Das Problem hat sich mit einem update vom ESP32 Plugin gelöst. der ESP32 ist eben auch weiterhin für Überraschungen gut. Bei bluetooth gab es auch diverse Änderungen im IDF, im Arduino-Paket fehlt dazu aber ohnehin noch einiges. Gruß aus Berlin Michael
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.