Hallo zusammen,
ich probiere nun schon eine Weile herum und versuche mein DOGM128 heller
zu bekommen. Wenn man auf eine Anzeige senkrecht drauf schaut sieht man
nur einen schwarzen Bildschirm. Schaut man seitlich darauf sieht man den
Text ganz leicht. Ich hab zwar keinen BG LED aber das sollte ja auch
erstmal ohne besser funktionieren.
Habe mit dem Kontrast schon rumgespielt jedoch nicht viel erreicht.
An einer Stelle geht sogar ein schwarzer Streifen von oben bis unten..
wie kann das sein??
Meine Init Parameter:
0x40,0xA1,0xC0,0xA7,0xA2,0x2F,0xF8,0x00,0x27,0x81,0x25,0xAC,0x00,0xAF
Hoffe jemand kann mir da weiterhelfen..
Mfg
Tobi
Tobi schrieb:> Ich hab zwar keinen BG LED aber das sollte ja auch> erstmal ohne besser funktionieren.
Nicht unbedingt.
Nur bei 128W-6 und 128L-6 kann man ohne Beleuchtung etwas sehen...
Hört sich ganz so an, als hättest Du ein anderes ;)
Hallo,
danke für eure Antworten.
Ich habe das 128W!
Allerdings habe ich auch Polyester kondensatoren und keine Elkos wie es
jemand hier im Forum schon geschrieben hat. Allerdings emitnen die dann
auch das es daran nicht gelegen haben kann.
-> Beitrag "DOG LCD 128x64 Initialisierung ATmega8 (Assembler)"
leider hilft dieser Beitrag dann auch ned weiter.
Ich denke ich kann eine Beschädigung ausschließen, da andere dieses
Problem auch schon hatten.
Siehe auch:
Beitrag "Re: EA DOGM128 128x64 Grafik Display"
Leider steht dort dann auch keine Lösung.
... Jedoch kann das mit den Elkos doch ned sein da im Datenblatt auch
keine verwendet werden?!?!
Achja,
komisch ist auch, dass der Bildschrim sowohl bei einer
Kontrasteinstellung von 0 als auch 64 dunkel bleibt .. lediglich bei 25
oder 16.. (also ein Wert dazwischen) ganz leicht etwas zu sehen ist.
Bei mir tritt auch das selbe Problem auf wie jemand schon schrieb in
einem meiner genannten Links, dass bei einem Reset für bruchteile einer
Sekunde der Text sehr gut zu lesen ist. Jedoch dann verschwindet wegen
des Resets.
Komisch ist auch dass es vorkommen kann, wenn ich einen Text anzeige
dass dann auf magische weise ein Reset meines ATMegas passiert wenn er
sich eigentlich nur in der while(1); schleife am Ende befindet und das
Display noch einen String anzeigt.
Dieses Verhalten tritt allerdings erst auf seit ich das Display
dazugebaut habe.
Ich habe die Schaltung schon mehrmals überprüft und kann eine
Fehlvertratung somit ausschließen.
Ich habe die Schaltung mit den 9 Kondensatoren am Display aus dem
Datenblatt aufgebaut und wenn ich sie gegen Masse messe habe ich so
zwischen 13,6 und 3 Volt. Man kann grob sagen von Pin 21 bis 25 an denen
sich die ersten 5 Kondesatoren befinden wird die Spannung immer etwas
weniger ..
Hoffe das hilft irgendwie weiter bei der Fehlerlokalisation.
Mfg Tobi
Servus,
Tobi schrieb:> Kontrasteinstellung von 0 als auch 64 dunkel bleibt .. lediglich bei 25>> oder 16..
im Datenblatt steht eindeutig 16.
Beim DOGM132 steht 1F!
Dass sich dieser Wert (16) nicht ändern lässt, ist richtig.
Hier meine Initialisierung:
0x40, // Display Start Line 0
0xA1, // Display Normal / reverse A0
0xC0, // Display Normal / reverse C8
0xA6,
0xA2, // Set Bias
0x2F, // Power Control set
0xF8, // Booster Ratio set
0x00, // ""
0x27, // Contrast set
0x81,
0x16,
0xAC, // Static Indicator set
0x00, // ""
0xAF // Display on/off
Gruß XMEGA
Beim DOGL habe ich 1206 SMD Keramikkondensatoren 1µF ungepolt verwendet
und nach leichtem verändern des letzten Kontrastwertes ein ordentliches
Bild erhalten.
Holger
XMEGA: stimmt das steht im Datenblatt. Ist aber ja nur ein Beispielwert.
0x81 sagt das ich mit dem folgenden Befehl den Kontarstwert übergeben
möchte. dieser kann zwischen 1 und 64 betragen... also so hab ichs
zumindest verstanden :)
Holger: Hattest du ein ähnliches Problem? Zumindest nutzt du auch keine
gepolten Kondensatoren. Weist du noch was du geändert hast? Ich werde
mal noch ein paar Kontrastwerte versuchen vielleicht bringts ja was.
Hast du die Init sonst wie im Datenblatt übergeben?
Achja, das Display ist von Beginn an komplett schwarz und wenn ich einen
Text ausgebe ist dieser nicht zu sehen. Erst wenn ich mein Handy drunter
lege ist ganz schwer etwas zu erkennen. Wenn ich diesen Kontrast mit dem
Kontrast vergleiche der bei Display an/aus herrscht ist das ein
himmelweiter Unterschied.
Genau diesen Kontrast müsste man doch auch haben wenn alles korrekt
funktioniert?!?
Hatte es in einem anderen Thread schon angegeben, meine Init sieht jetzt
so aus:
0x40,0xa1,0xc0,0xa6,0xa2,0x2f,0xf8,0x00,0x27,0x81,
0x13 <-- diesen Wert habe ich von 0x10 auf 0x13 geändert.
0xac,0x00,0xaf
Ich hatte ganz wenig Kontrast und hellere Sreifen abhängig vom Inhalt
der oberen Zeilen. Jetzt läuft es.
Holger
Hallo Holger,
danke für deine Antwort.
Leider bringt diese Einstellugn bei mir keinen Erfolg :(
Ansonsten habe ich deine beschriebenen Effekte mit den Streifen auch.
Ich bekomme es auch nicht hin, dass das Display am Anfang alles hell ist
anstatt dunkel. Sobald ich das Display initialisiere wird alles schwarz.
Müsste ja A6/A7 sein um das umzustellen. Passiert aber nicht viel.
Leider
Komplett schwarz sollte es am Anfang nicht sein, nach der Init wird bei
mir zufälliger Inhalt angezeigt, also verstreute Pixel.
Vielleicht ist noch ein Fehler bei deiner Ansteuerung.
Mit welcher Taktfrequenz steuerst du es an ? Ich habe PIC 18F mit
"handgemachter" SPI mit 16 MHz. Die Pins sind mit Widerständen auf 3,3V
angepasst.
Holger
hab am ATMega 11,0592 MHerz.
ein Lipo versorgt das ganze ohne widerstände.. also alle shat ein wenig
mehr Spannung als es soll. Dürfte aber nichts ausmachen.
SPI Takt ist gerade auf 1/16.
Habe aber gerade noc heine andere Erkenntnis gewonnen. Und zwar habe ich
im laufenden Betrieb knallhart die Kondensatoren nacheinander
rausgezogen. Plötzlich war ein Bild da als ich alle Kondensatoren die
auf Masse liegen entfernt hatt Oo.
Hab dann in zufälliger Reihenfolge die Kondensatoren wieder reingebaut.
Mal wurde es besser mal schlechter .. aber wenn alle drin sind ist es
wieder schwarz. Hab auch unterschiedliche Kontraste in der Schrift.
Tobi schrieb:> ein Lipo versorgt das ganze ohne widerstände.. also alle shat ein wenig> mehr Spannung als es soll. Dürfte aber nichts ausmachen.
Also volle 4,2 Volt am LCD?
->Außerhalb der Specs?
Tobi schrieb:> Also der Lipo liefert nur 3,7 Volt.
Das steht wohl auf dem Akku drauf?
Schon mal gemessen, was wirklich rauskommt?
Was meinste wohl, warum der Hersteller der Displays einen
Spannungsbereich angibt, in dem das LCD arbeitet? Aus Jux? Oder weil er
Langeweile hat?
hab die 3,7 gemessen... aber gut hab nen Spannungsbegrenzer eingebaut
und hab nun glatte 3,3 Volt (gemessen :) ... immer noch das gleiche...
werde das mit dem Booster noch probieren... hab ausserdm einen
senkrechten Streifen der nie verschwindet.. egal was ich mache.. er
wirkt irgendwie bläulich... komisch... vermute das zumindest an der
Stelle das Display nen Fehler hat..
so nach stundenlangen Versuchen hab ich nun endlich ein Bild.
Allerdings verhält sich das ganze jetzt etwas komisch.
Ich habe im ersten Schritt sichergestellt, dass auch alle 9 Kondesatoren
wirklich Kontakt haben (Baue das ganze auf einem Steckbrett als Versuch
auf) und dann ging es ohne Streifen.
Allerdings war der Kontrast noch sehr wenig.
Gerade habe ich dann mal die Masse, welche zum Display läuft,
herausgezoegn und was passiert? Ich habe ein einwandfreies
Bild?!?!?!??!?!
Ich verstehe die Welt nicht mehr woher der nun seine Masse zieht.
Habe alle anderen Stromzweige mal abgetrennt, 5V Wandler, und
Netzwerkchip. Somit habe ich nur noch den ATMega32 und das Display
angeschlossen.
Was kann man da groß falsch machen? Jemand ne Ahnung??
So hab das nun auch hinbekommen.
Das mit der Kontrasteinstellung ist ja ein riesen Mist.
Ich hab jetzt mal in einer Schleife im 0,5 Sec. Takt alle Kontraste
durchlaufen lassen wärend ein Text sichtbar war.
Der Kontrast wechselte ca. 10 mal von schlecht nach gut. Schaltete ich
die Masse wieder dran, verhielt es sich genau andersrum. Somit konnte
ich die Masse wieder anschließen und fand dann den besten Wert für den
Kontrast heraus.
Die Spec ist echt schlecht dokumentiert da man dort eindeutig versteht,
dass der Kontrast von 0 bis max eizustellen ist und nicht so ein auf und
ab!
Wobei ich noch nicht ganz durchsteige ist das beschreiben der Pixel.
Wenn ich (wie aus einem Tutorial) die Initialisierung mache und danach :
$00, $7F, $09, $09, $76 an daten sende soll angeblich ein "R"
herauskommen. Im Tut kann ichs nachvollziehen allerdings kommt bei mir
eine 8 Pixel hohe komplett schwarze Zeile heraus?!?! Oo
In dieser Zeile findet man nur irgendwo eine 0x09 wieder sonst nichts.
Kann das jemand von euch verstehen?
Mfg Tobi
hm,
habe noch ein Problem beim Display beschreiben.
Und zwar wenn ich ein Byte irgendwo auf das Display schreibt
funktioniert das auch jedoch wird der Rest der Zeile dann schwarz. Ist
das normal? Finde dazu nichts in der Spec.
Mfg Tobi
sag was du brauchst und du bekommst es :)
was machst du z.b. vom Start bis zum senden des ersten Zeichens im Code
alles?
Start - SPI init - displ. init - zeichen senden...
könntest du mir mal bitte nen codeschnippsel hier reinwerfen? Zum
Vergleich....
DOGL unterscheidet sich vom DOGM ...
Also ich nutze einen PIC 18F2520, 16MHz Quarz, alles in Assembler.
Initialisierung, danach Ausgabe in Pages, dann (im Bild) Ausgabe über
eigenen Pixelroutinen. Waits zwischen den Ausgaben gibt es keine, nicht
mal ein NOP.
Prinzipiell scheint es ja bei dir zu funktionieren, ich vermute mal du
sendest zu viele Zeichen.
Du hast den (vermutlich) fehlerhaften Code, poste doch mal.
Mit C oder Atmel Assembler kann ich dir aber leider nicht viel helfen.
Holger
Edit: ok hat sich überschnitten, ich schau mal ...
Edit2: nee sorry da muss ich passen ...
da möchte ich nicht mal wissen was das tut: LCD_PORT_A0 &=
~(LCD_PIN_A0);
klar... es sieht so aus als würde ich zu viele Zeichen senden..
allerdings wenn ich mal nicht einen character sende mit der
entsprechenden umfangreicheren Funktion... sondern nur ein Byte sende...
also wie man oben im Code ja sieht, passiert da nicht viel mehr als 4
Byte senden fertig...
Was auch komisch ist, wenn ich ein clear mache dann läuft die obere
Funktion durch und auf dem Display wir jede Zeile erstmal schwarz.. also
jede Page bevor sie dann von links nach rechts hell wird.. das Ganze
dauert komischerweise auch knapp 2 Sek. .. zu lange?!?!?
Ich habe einen ATMega32 .. an dem hängt nen Quarz mit 11,0952 MHz und
SPI ist auf 1/2 Takt gestellt..
LCD_PORT_A0 &= ~(LCD_PIN_A0);
schaltet den Port an dem A0 hängt aus
LCD_PORT_A0 |= LCD_PIN_A0;
schaltet ihn an... das funktioniert... habs sogar gemessen :) .. zeichen
kommen ja auch an..
Da muss ich mich jetzt ausklinken, lese aber weiter mit, wenn mir noch
was auffällt meld ich mich wieder.
Ich setz mein Pin mit einem ordinärem BSF LCD_PIN_A0
Viel Erfolg
Holger
Hier mal wie es bei mir funktioniert:
DOGM128-W6, Schaltung ist die 3.0/3.3V Single Supply aus dem Datenblatt,
Spi-Takt 12 MHz, Spi-Mode = 3, Kondensatoren sind keramische X7R, 1 uF,
25V, 0603.
Was allerdings Probleme bereiten kann (das Teil ist hier auch gesteckt,
damit es richtig im Gehäuse sitzt), ist eben diese Verbindung d.h. kein
richtiger Kontakt -> kein Kontrast und/oder Streifen, wackeln hilft dann
hin und wieder.
Die Lösung war ein billiger, aufgetrennter IC-Sockel mit Federkontakten.
U.U. kann es auch am Reset liegen
oh man du hast recht... wie kann man denn so daneben sein :)
Das ist ein übernommenes Codestück aus einem anderen Projekt mit eienr
SD Karte bei der das gesendet werden soll... ich hab das jetzt
unetrbewusst wie ein Delay betrachtet und hab mit meinem eingefahrenen
Blick da immer drüber weggeschaut!!!
Heiei... Vielen Dank Stephan!!!