I2C Display - SSD1306

Dieses Thema im Forum "Software" wurde erstellt von Janiiix3, 5. Mai 2018.

  1. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Hallo Leute :thank_you2:,

    habe mal ein bisschen mit den China OLED´s rum gespielt.
    Mir ist aufgefallen, das diese Displays sich komplett anders verhalten bei wärmerer Umgebung (draußen direkte Sonneneinstrahlung..) (siehe Bilder) als wenn ich es in kühlerer Umgebung betreibe..
    Läuft das Display in kühleren ( < 30°C) Umgebungen, tritt dieser Effekt nicht auf.. Hat jemand schon mal sowas gesehen?

    Ich denke man erkennt welches der Bilder einen normalen Zustand des Displays zeigt..

    Grüße aus Usedom ;)
     

    Anhänge:

  2. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.913
    Zustimmungen:
    43
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Also erstens kanns bei direkter Sonneneinstrahlung recht heiß werden - im Datenblatt meiner OLEDs finde ich bei den Ab solute Maximum Ratings als Maximum Operating Temperature 70°C.
    Zweitens wirkt (UV-)Licht auf Halbleiter (LED, Photodiode/-Transistor, Optokoppler, Solarzelle, ...).
    Bei irgendweiner RasPi-Charge gabs den Effekt, daß man das Teil mit einem Foto (Blitzlicht) abstürzen lassen konnte...
    Im Datenblatt meiner Displays findet sich:
    Unbenannt_1.png
     
  3. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Das habe ich mir schon beinahe gedacht das die Wärme und das UV-Licht eine große Rolle spielen. Habe die Platine zum Glück so entworfen das diese in ein Gehäuse passt.
    Im Normalfall ist das Display ja auch "eigentlich" keiner direkten Sonneneinstrahlung ausgesetzt.

    Schade das diese "SSD1306" keine Fehlerkodes ausspucken. So kann man überhaupt nicht kontrollieren ob das Teil abspackt oder?!
     
  4. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.913
    Zustimmungen:
    43
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Du kannst ja mal den eigentlichen SSD1306 (also den kleinen Chip direkt auf dem Flex-PCB zwischen Display und Connector) vor Licht schützen. Die Temperaturen würde ich wegen irreversibler Schäden jedoch beachten...
     
  5. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Der ist ja schon geschützt. Dort ist Silikon mit einer hauch dünnen Folie aufgebracht wurden.
     
  6. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Habe die Schaltung gerade mal aus dem Kühlschrank geholt. Genau der gleiche Effekt wie mit der Sonneneinstrahlung.

    Habe aktuell 4 Bus Teilnehmer mit 10kPullUps und einer Frequenz von 400kHz im Betrieb. Könnten die PullUps schon das Problem sein?
     
  7. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.913
    Zustimmungen:
    43
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Absolute Maximum Ratings sind (Betriebstemperatur) nach meinem Datenblatt -30..+70°C.
    Keine Ahnung, wie Du Deinen Kühlschrank eingestellt hast, aber das wird's wohl nicht sein...
    Bei der derzeitigen Wetterlage wäre ich mit sowas wegen Kondenswasser vorsichtig...
    10kOhm pro Teilnehmer, oder einer am ganzen Bus (pro Leitung, klar)?

    Das Bild ist ja eigentlich nicht falsch, nur verschoben. Als wenn die Initialisierung nicht stimmt. Tritt der Effekt (auch) auf, wenn beim Init normale Bedingungen herrschen, und später Extrema erreicht werden?
     
  8. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    10kOhm am gesamten Bussystem.
    Die initalisierung scheint immer zu klappen. Starte ich das Gerät unter der aktuellen Sonneneinstrahlung neu klappt es auch für eine gewisse Zeit wieder.
    Die Init. sollte eigentlich okay sein.
     
  9. Dirk

    Dirk Administrator
    Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    4.172
    Zustimmungen:
    117
    Punkte für Erfolge:
    63
    Sprachen:
    C, Assembler, Pascal, C++, PHP, Java
    Hallo zusammen,

    ich hätte normalerweise vermutet, es liegt an der Initialisierung bzw. hier am Timing. Aber Jan hat ja bei Betrieb unter direkter Sonneneinstrahlung bereits resettet und es funktionierte dann. Nach einiger Zeit im Betrieb gibt es diesen Effekt? Hmmm, ich würde zunächst einmal die Werte der Pullup-Widerstände etwas verringern, probiere das mal so aus.
     
  10. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.913
    Zustimmungen:
    43
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Noch'n Schritt weiter:
    Tritt der Effekt auch auf, wenn Keine Daten mehr Fließen (also an einem erstmal korrekten, statischen Bild)?
     
  11. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Habe es gerade aus dem "Gefrierfach" geholt. Habe deinen Rat mit dem statischen Display befolgt. Siehe da, es KLAPPT!

    Das heißt es muss wirklich was am BUS passieren was das Display nicht so mag.
    Hm, hier arbeite ich ausnahmsweise mit dem internen RC Oszi. evtl.spielt der auch noch mit rein..
     
  12. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.673
    Zustimmungen:
    55
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    Jupp. https://www.makerconnect.de/index.php?threads/spaß-bei-der-arbeit.2852/page-2#post-33030
    Hier war es allerdings SPI und ein angeschlossener Programmer ;)
    Und ein vergessener PullUp, welcher normalerweise der AVR bereitstellt, nur halt nicht im Reset Status.

    Sieht aus als ob irgendwas auf dem Bus fehl schlägt (zu schnell, zu instabil, z. B. weil 5V erwartet werden aber nur 3,3V anliegen), ... Und bei Temperaturschwankungen ändern sich mal die Toleranzen. Auch UV spielt mit rein (es war der RasPi 2 der keine Náktbildér während der Arbeit mag, beim 3er weiß ich's nicht)
     
  13. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.913
    Zustimmungen:
    43
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Ich würde tendenziell auch auf den Sender tippen. In Zusammenhang mit den zu schwachen Pullups.
    Möglicherweise geht der Controller in den Reset, und beim Neustart stimmt wegen der Extrembedingungen das Init nicht...
     
  14. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Wenn er in den "Reset" gehen würde, wären meine gesammelten Werte nicht mehr vorhanden. Das ist also ausgeschlossen.

    Wenn ich aus dem Urlaub zurück bin, werde ich mal andere PullUps drauf löten und schauen ob das was bringt.
    Wie berechne ich denn überhaupt sinnvoll einen PullUp?
     
  15. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.673
    Zustimmungen:
    55
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    Stimmt nicht unbedingt. Der RAM wird normalerweise nicht zurück gesetzt, außer du (oder C) machst es selber. Oder die Spannung ist lange genug weg, dann ist der RAM in undefinierten Zustand.
     
  16. Dirk

    Dirk Administrator
    Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    4.172
    Zustimmungen:
    117
    Punkte für Erfolge:
    63
    Sprachen:
    C, Assembler, Pascal, C++, PHP, Java
    Janiiix3 gefällt das.
  17. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
  18. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Wozu gibt es sonst den "Reset" wenn der komplette IC nicht "Resetet" wird?
     
  19. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.673
    Zustimmungen:
    55
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    Der Program Counter wird auf 0x0000 zurück gesetzt und alle Register auf Standardwerte. Das betrifft aber nicht den RAM, genau so wenig wie den EEPROM. Wenn du dein PC / Laptop resettest ist der RAM ebenfalls in einem undefinierten Zustand. Bascom setzt den afaik per Software auf 0x00 oder 0xFF bei Programmstart, aber der Chip selbst macht das nicht. Daher konnte man Bascom für winzige Tinies auch lange Zeit kaum verwenden. Ist aber schon Jahre her, gut möglich dass MCS da was geändert hat.
     
  20. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.208
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Das betrifft aber nicht den WDT oder den auch?
     
  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren und die Seite optimal für dich anzupassen. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden