Ich habe ein blödes Problem und keine Ideen mehr :( Ein 2.4" OLED via I2C am ESP32 (FreeRTOS). Ein bischen Uhr und ein paar DS18B20. Das Display funktioniert ein paar Sekunden und fängt dann an Müll zu produzieren. Der BUS schein ok zu sein, was mich wundert sind die 8.2khZ? Hat jemand eine Idee???
im Aufbau sind keine PullUp R zu sehen, sind die auf dem Display Board? Sonst mal zwei 2k2 R anklemmen.
Hi Johannes, ja, danke! Ich hatte ich schon probiert. 4,7k 2k 1k - keine Besserung. Komischerweise ändert sich das I2C Signal mit den PullUps auch nicht. SDA und SCL liegen wenn nichts kommt bretthart auf 3,3V - die daten ziehen dann den Pegel auf Ground. Das sollte ok sein?! ratlos Nachtrag: PullUps scheinen auf dem Board schon drauf zu sein.
:
Bearbeitet durch User
Die gelbe Linie ist aber kein I2C Signal oder? Wenn ja, dann stimmt dort was nicht. Ich sehe, dass du die Stromversorgung über das Steckbrett verteilst. Löte stattdessen mal Drähte direkt an die Module an. Die stark schwankende Stromaufnahme des ESP Moduls zusammen mit den Übergangswiderständen der Steckbrett-Kontakte kann hier der Knackpunkt sein.
Stefan U. schrieb: > Die gelbe Linie ist aber kein I2C Signal oder? Wenn ja, dann stimmt dort > was nicht. Hi Stefan, doch, doch oben ist SCA unten SCL. Ok, die Stufe sieht komisch aus, hast recht. > Ich sehe, dass du die Stromversorgung über das Steckbrett verteilst. > Löte stattdessen mal Drähte direkt an die Module an. Die stark Hmm, ok - kann ich das vielleicht lieber mitm Elko puffern? > schwankende Stromaufnahme des ESP Moduls zusammen mit den > Übergangswiderständen der Steckbrett-Kontakte kann hier der Knackpunkt > sein. Guter Hnweis! Mir viel auf: um so mehr ich darstelle, um so mülliger wird die Anzeige! Wenn ich nur die Uhr laufen lassen, ist es relativ stabil.
> kann ich das vielleicht lieber mitm Elko puffern?
Auf deinem Board müsste bereits ein Elko mit 47 bis 470µF drauf sein.
Der hilft, aber nur wenn die Stromversorgung schon einigermaßen stabil
ist.
Ich konnte mit einem Elko einen Ausfall pro Woche auf 0 pro Jahr
reduzieren.
Stefan U. schrieb: > Löte stattdessen mal Drähte direkt an die Module an. Gesagt, getan ... GND,VCC direkt vom Netzteil an das Display gelötet, keine Änderung :(
Ich meinte eher, dass die Stromversorgung von deinem ESP Modul verbessert werden soll.
Stefan U. schrieb: > Auf deinem Board müsste bereits ein Elko mit 47 bis 470µF drauf sein. > Der hilft, aber nur wenn die Stromversorgung schon einigermaßen stabil > ist. > > Ich konnte mit einem Elko einen Ausfall pro Woche auf 0 pro Jahr > reduzieren. Ich unterstütze deine Hinweise, jedoch bleibt - wie so oft - auch hier darauf hinzuweisen dass Steckbrettbauer auf diesem Ohr sehr schlecht hören. Oft können sie diese sprachfremden Texte auch gar nicht lesen, geschweige denn verstehen.
Stefan U. schrieb: > Ich meinte eher, dass die Stromversorgung von deinem ESP Modul > verbessert werden soll. Leider keine Verbesserung, ich habe den ESP32 und das OLED jeweils direkt an einem eigenen Netzteil gehabt, gelötet. Ich versuche mal die I2C lib zu tauschen, die die ich aktuell benutze macht wohl nur Bitbanging. Der ESP32 muss das ja auch nativ können.
Auf dem 3.Bild ist klar zu erkennen, daß der SSD1306 (der wohl eher ein SSD1309 ist) SDA beim ACK nicht richtig auf Low bekommt. Das könnte darauf hindeuten, daß der Pullup zu klein ist. Ich würd auch noch mal kontrollieren, ob R13 auch wirklich 0Ω ist, das Signal auf beiden Seiten identisch ist. Ich hatte da mal ein Problem und hab ihn durch eine Drahtbrücke ersetzt. MfG Klaus
> Das könnte darauf hindeuten, daß der Pullup zu klein ist.
Das dachte ich auch spontan, andererseits sieht man auf dem Foto
deutlich 4,7k Ohm Widerstände. Und das ist ganz sicher nicht zu wenig.
Stelle mal dein Multimeter auf den 200mA Bereich und schließe es an SDA
und GND an, während der ESP nicht mit dem Display kommuniziert. Das
Multimeter müsste einen Strom von 0,7mA Anzeigen. Wenn das nicht der
Fall ist, hängt noch irgend etwas an den Leitungen, was da nicht hin
gehört.
Denkbar wäre auch ein Softwarefehler. In der fraglichen Zeit müsste er
die SDA Leitung entweder als Eingang konfigurieren oder sie muss die
ganze Zeit lang als Open-Drain Ausgang konfiguriert sein.
pinMode(scl_pin, OUTPUT_OPEN_DRAIN);
Wenn das nicht so ist, zieht der ESP sie vielleicht aktiv auf High
während das Display sie zugleich auf Low zieht (Kurzschluss).
Es ist die Library!!! Oh, man ... Damit läuft es 1A. https://github.com/yanbe/ssd1306-esp-idf-i2c Danke für eure Tips!
:
Bearbeitet durch User
W3ll S. schrieb: > Es ist die Library!!! Oh, man ... Wie sehen denn jetzt die Signale aus, ist das Problem auf der SDA Leitung jetzt weg? MfG Klaus
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.