Ich habe seltsame Probleme mit dem Kontrast-Befehl (der in Wirklichkeit ein Helligkeits-Befehl ist) von 0.96"-OLED-Diplays. Ich meine die 128x64-Displays mit SSD1306: Wenn man diesen Befehl schnell wiederholt (z.B. weil es einen Kontrast-Menupunkt gibt, der von einem Rotary Encoder bedient wird), schleichen sich Fehler in die Darstellung des OLED ein. Dann erscheint beispielsweise die letzte Zeile an der Stelle der ersten Zeile - und zwar dauerhaft bis zum nächsten Display-Reset. Das ist mir mehreren Display reproduzierbar. Wenn ich grössere Pausen einfüge (z.B. 100ms), wird es weniger, aber das Riskio bei der Verwedung dieses Befehehls verschwindet nie ganz. Wenn ich spekulieren müsste, würde ich vermuten, dass das was mit der Ladungspumpe zu tun hat, vieleicht bricht beim Helligkeitswechsel lokal die Spannung ein? Ich habe einen 10uF direkt am Display. Ich kann mir in meinem Code eigentlich keinen Fehler vorstellen, da 1. alles andere (Zeichnen) funktioniert und 2. dieser Befehl bei langsamer Ausführung äusserst selten Problem macht. Hat jemand so etwas schon mal erlebt?
> Ich kann mir in meinem Code eigentlich keinen Fehler vorstellen,
Das sagen sie alle. :)
Wie sieht denn die Qualitaet deiner SPI oder I2C signale auf dem Oszi
aus? Gibt es eine Mindestwartezeit die du einhalten musst?
Ich selbst hatte mit so einem Display bisher noch keine Probleme.
Allerdings gebe ich die Helligkeit auch nur einmal einstelle.
Macht es einen Unterschied ob du zwischen zwei geringen
Helligkeitsleveln umschaltest oder zwischen zwei Leveln mit einem
grossen Unterschied in der Helligkeit?
Olaf
> Wie sieht denn die Qualitaet deiner SPI oder I2C signale auf dem Oszi aus? Es ist Hardware-SPI mit 5V-20MHZ-AVR. Ich habe kein Oszi. Die Signalqualität ist sicher nicht gut, da die Silikonlitzen 50cm unabgeschirmt durch die Luft gehen. Flachkabel oder abgeschirmtes Kabel kommt nicht in Frage, da es um einen heißen Ofen geht und hitzebeständiges Flachkabel unbezahlbar ist. Wenn ich die OLED-Litzen anfasse, kann ich Störungen provozieren. Egal ob das OLED mit ca. 10MHz oder der Hälfte oder einem Viertel davon läuft. Aber wenn es daran liegt, sollte doch nicht nur ein einzelner, spezieller Befehl gestört werden. Immerhin aktualisiere ich das Display fehlerfrei alle 40ms (25fps), kann es ein- und ausschalten, Befehle zum Setzen der Ausgabeposition setzen und die ganzen Befehle zum Initialisieren senden. > Allerdings gebe ich die Helligkeit auch nur einmal einstelle Das Problem habe ich auch erst bemerkt, als ich auf einen Drehencoder umgestiegen bin und es plötzlich möglich war, den Kontrast schnell zu ändern. > Gibt es eine Mindestwartezeit die du einhalten musst? Laut SD1306-Doku nicht. Zum OLED-Modul insgesamt habe ich kein Datenblatt. > Macht es einen Unterschied ob du zwischen zwei geringen Helligkeitsleveln umschaltest oder zwischen zwei Leveln mit einem grossen Unterschied in der Helligkeit? Nicht getestet. Ich habe aber den Eindruck, dass es mit hoher Helligkeit eher zu Störungen kommt; 1. Wenn ich mit der Hand an das Kabel gehe. 2. Wenn ich über einen Wippschalter 230V über zwei 60K an einen Opto auf meiner Platine gebe, kann es beim Schaltvorgang zu bleibenden Störungen kommen (das Mapping vom RAM zur Anzeige wird anscheinend gestört). Das wäre mir das nächste Rätsel: Wie kann ein 230V-Schaltvorgang mit einem Strom von weniger als 2mA ein OLED in ca. 20cm Entfernung stören? Das einzige was mir dazu einfällt ist, dass neben dem Opto noch das Neon-Lämpchen im Wippschalter eingschaltet wird.
> wäre mir das nächste Rätsel: Wie kann ein 230V-Schaltvorgang mit einem > Strom von weniger als 2mA ein OLED in ca. 20cm Entfernung stören? Weil dein ganzer Aufbau so klingt als wenn er ziemlich uebler Mist waere der sowieso nur zufaellig laeuft. Ausserdem kann es sein das bereits alle Amateurfunker und Radiohoerer in deiner Nachbarschaft die Messer schaerfen. Pass auf wenn es bei dir an der Tuer klingelt. :-) Mach mal direkt am Oled eine Serienschaltung von 100R+100pF an die SPI-CLK und die Datenleitung gegen GND und dann schau mal ob es besser wird. > Egal ob das OLED mit ca. 10MHz oder der Hälfte oder einem > Viertel davon läuft. Die Uebertragungsrate ist irrelevant. Was zaehlt ist die Anstiegszeit der Signale. In den Flanken sind die Frequenzen versteckt, nicht in den Pausen zwischen den Flanken. Bessere (floet) Microcontroller erlauben es das du die Anstiegzeit/Treiberstrom einstellst. Das koennte auch eine Besserung bringen und haette dann vielleicht die Folge das du die Datenrate vermindern musst. Wenn du so die Datenuebertragung in den Griff bekommst dann kannst du danach schauen ob du noch immer ein Problem mit der Helligkeit hast. Olaf
> Mach mal direkt am Oled eine Serienschaltung von 100R+100pF an die
SPI-CLK und die Datenleitung gegen GND und dann schau mal ob es besser
wird
Ich glaube so langsam driften die Antworten für mich in's Nutzlose. Der
Kontrast-Befehl ist der einzige Befehl, der bei schneller Wiederholung
(eigentlich gar nicht so schnell: mehrere 10ms Pause dazwischen) dieses
Problem erzeugt. Ansonsten sende ich zigtausend Bytes und Befehle pro
Sekunde stundenlang ohne erkennbares Probleme an das OLED (solange man
nicht in das Kabebündel greift und damit herumspielt). Damit kann es mit
ein bisschen Logik IMHO nicht an Reflexionen liegen. Davon wäre jede
Datenübertragung betroffen. Pads für die AC-Terminierung sind im übrigen
drauf, weil ich sie beim Vorgänger-Modul mit EA-LCD gebraucht hatte -
aber ich bestücke sie nicht, weil die Funktion damit schlechter war
(wenn ich mich richtig erinnere, ging damit gar nichts mehr, aber die
erste Inbetriebnahme mit diesen Komponenten ist schon zu lange her).
Getestet mit 68K und 150pF. An SCK, an MOSI; an beidem. Statt dessen
verwende ich mittlerweile 4K7-Serienwiderstände in CLK, MOSI und RESET
unmittelbar vor dem OLED - die haben die Stabilität verbessert.
Besonders der 4K7 in der Resetleitung (was wohl daran liegt, dass diese
OLEDs einen 3,3V-Chip enthalten, der nicht 5V-tolerant ist, aber als
5V-OLEDs verkauft werden - ohne Pegelwandler in der Reset-Leitung: die
Clamping-Diode soll es wohl richten).
Was das seltsame 230V-Problem betrifft: Die Schaltung befindet sich in
einem Ofen. Von 3 SSR werden hohe Ströme (>6A) mehrmals pro Minute sowie
ein kleiner Motor geschaltet. Null Probleme. Nur die lausige
2mA-Steuerleitung, mit der nur die Stellung eines Schalters von einem
Opto ausgewertet wird, der zur Zeit keinerlei 230V-Verbraucher schaltet,
stört das OLED. Die einzige Besonderheit dieses Schalters ist die
Neon-Lampe. Kann es sein, dass solche Lämpchen beim Zünden Störimpulse
erzeugen?!
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.