Ist mein SSD1306 OLED defekt?

Gast #5701476
Lesenswert?

Hallo,

ich hatte mir vor kurzem erst ein OLED (0.96 Zoll - 126px * 64px) aus 
China zugelegt.
Darauf habe ich einfach mal zum testen das OLED Sketch von Adafruit für 
den Arduino Uno drauf geladen, dass auch ohne Einschränkungen 
funktioniert hat.
Mein nächstes Ziel war es ein eigenes Assembler Programm zum Ansteuern 
des Displays zu schreiben, was ich bis heute nicht hinbekommen hatte 
trotz der Hilfe hier im Forum.
Nun habe ich heute mal aus Laune wieder das Arduino Uno OLED Sketch 
drauf geladen, aber es hat nicht funktioniert.
An der Schaltung hatte sich nichts verändert, alles blieb beim alten.
Nun zu meiner Frage, kann das OLED durch falsche Assembler Anweisungen 
kaputt gegangen sein (z.B. weil ich nicht an das Bitrate Register 
gedacht hatte)?

Ich bedanke mich schon mal :D
Gast #5701482
Lesenswert?

Vielleicht hast du dem COB eine elektrostatische Ladung verpasst.
oder er hat durch zu viel Bewegung den Kontakt zum Kabel verloren.
Oder du hast versehentlich den Ausgang der Ladungspumpe kurzgeschlossen.
Gast #5701745
Lesenswert?

Stefanus F. schrieb:
> Vielleicht hast du dem COB eine elektrostatische Ladung verpasst.

Was ist ein COB?

Stefanus F. schrieb:
> Oder du hast versehentlich den Ausgang der Ladungspumpe kurzgeschlossen.

Ladungspumpe kurzgeschlossen?
Ist das ein Bauteil am OLED oder an der Schaltung?

pegel schrieb:
> int 21h schrieb:
> ein OLED
>
> Nur eins? Normal kauft man doch mehr davon zum spielen.

Ich habe mir jetzt mal 3 weitere Nachbestellt, aber wird eine ganz Weile 
dauern bis die antreffen.

Willi S. schrieb:
> Zum Kern der Frage:
> Nein, durch Software lässt sich dieses Modul nicht zerstören.

Ganz Sicher?
Die Schaltung im OLED kann durch zu schnelle oder falsche 
Datenübertragung nicht kaputt gehen?

M. K. schrieb:
> int 21h schrieb:
> An der Schaltung hatte sich nichts verändert, alles blieb beim alten.
>
> Wie genau sieht die denn aus? Hast du den I2C richtig eingestellt,
> stimmt die Adresse, sind Pullups an SDA/SCK vorhanden? Lässt du das
> Display auch aktualisieren (display()-Funktion wird benutzt? ;))?

Ja natürlich, ich musste lediglich den fertigen Quellcode compilieren 
und hochladen ohne etwas umzustellen.
Der Code lief ja auch bis vor kurzem.
Die Jumper und Pull-ups an der Schaltung habe ich auch vorsichtshalber 
ersetzt.
Der Arduino Uno samt uC ist auch heil.
Gast #5701773
Lesenswert?

int 21h schrieb:
> Was ist ein COB?

Der Display-Controller. Er befindet sich bei diesen OLED auf dem 
Flachkabel nahe dem Display-Glas.

COB = Chip On Board

> Ladungspumpe kurzgeschlossen?
> Ist das ein Bauteil am OLED oder an der Schaltung?

Ich dachte, du hast mit dem Datenblatt gearbeitet. Die Ladungspumpe 
erhöht die Versorgungsspannung für das OLED. Sie ist Bestandteil des 
COB, kann aber auch ausgeschaltet werden und durch eine externe zweite 
Spannungsquelle ersetzt werden.

>> Nein, durch Software lässt sich dieses Modul nicht zerstören.
> Ganz Sicher?

Ich würde dafür keine Garantie geben, aber Zerstörung durch Software 
halte ich für sehr unwahrscheinlich. Was aber leicht geht: Das OLED mit 
zu viel Kontrast frühzeitig verschleissen.
Gast #5701852
Lesenswert?

Ich habe nun endlich den Fehler? gefunden.
Es macht für mich irgendwie keinen Sinn, aber wenn ich beim Arduino OLED 
Sketch die Slave Adresse von 0x3D auf 0x3C änder, funktioniert es.
Von mir blieb dieser Wert unverändert (Steht sogar als Kommentar 0x3D 
daneben)!
Ich kann mir das irgendwie nicht erklären
Gast #5701964
Lesenswert?

m.n. schrieb:
> Den SSD1306 spreche ich übrigens unter der Basisadresse 0x78 mit D/C#
> auf GND an ;-)

So so, übrigens ich bediene das D/C Bit mit dem beim I2C-Protokoll
(das du ja auch meinst) mit dem Control Byte. Siehe auch Protokoll-
Hinweise im Datenblatt des SSD1306.
Gast #5701965
Lesenswert?

Syndedi Sator schrieb:
> An den Displays mit I2C Interface gibt es keinen D/C Pin!

Gut, daß Du sie alle kennst ;-)
Aber am Controller gibt es diesen Pin und das ist das Entscheidende. 
Vielleicht nennt sich der Anschluss ja A0 oder SA0 oder Arduino-XY. 
Keine Ahnung, was die Leute sich alles einfallen lassen - Hauptsache es 
gibt eine LIB.
#5702046
Lesenswert?

Das Modul wird von mehreren Firmen hergestellt und sind die Adressen 
nicht überall gleich. Es gibt genau 4 Möglichkeiten mit gerade/ungerade 
und linksbündig 8-Bit oder rechtsbündig 7-Bit ausgedrückt. 
Logischerweise zieht sich diese Problematik auch durch alle Software und 
Doku hindurch, jenachdem welches Modul der Bastler zufällig im Einsatz 
hatte...
Gast #5702051
Lesenswert?

Manchmal denke ich, es wäre besser gewesen, bei I²C mit 8-bit Adressen 
zu arbeiten. Dann wäre das R/W Flag das neunte Bit und niemand käme auf 
die Idee, diese beiden Sachen zu einer Zahl zusammen zu fassen.
#5702059
Lesenswert?

Stefanus F. schrieb:
> Manchmal denke ich, es wäre besser gewesen, bei I²C mit 8-bit Adressen
> zu arbeiten. Dann wäre das R/W Flag das neunte Bit und niemand käme auf
> die Idee, diese beiden Sachen zu einer Zahl zusammen zu fassen.

Im Standard ist es ausdrücklich geregelt, aber sogar die IC-Hersteller 
scheinen komplett verzweifelt und geben die Adressen in ihren 
Datenblättern meistens BINÄR mit 1/0 und R/W-Bit auf A0 an. Echt 
köstlich...

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