Gelöst: Fehlerhafte Ausgabe GLCD 128x64

Hallo,

ich habe mit einem Grapfischen LCD Panel ein Problem. Wie auf dem Bild zu sehen ist, erscheinen in der linken Ecke zwei komisch gefüllte Quadrate. Es spielt hierbei keine Rolle, ob ich die Displayausgabe invertiere oder nicht (u8g.setRot180():wink: Die Quadrate werden nicht gespielt, also immer an der gleichen Stelle.

Als Sketch habe ich folgendes genommen, wobei ich davon ausgehe, dass der Sketch nicht das Problem sein kann.

Verkabelung wie folgt:

[1]  VSS  -> GND
[2]  VDD  -> 5V
[4]  RS   -> D10
[5]  R/W  -> D11
[6]  E    -> 13
[14] PSB  -> GND
[19] BLA  -> Widerstand -> 5V
[20] BLK  -> GND
#include "U8glib.h"
U8GLIB_ST7920_192X32_4X u8g(10);

void draw(void) {
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 0, 22, "Hello World!");
}

void setup(void) {
    u8g.setRot180();
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

void loop(void) {
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
 
  delay(500);
}

Das Display ist heute angekommen von einem in Deutschland ansässigen eBay Händler, falls keiner eine Lösung weiß, werde ich das Display zurückschicken.

Gruß Stefan

P.S: Bevor ich unnötig einen weiteren Thread aufmache, kenn jemand eine Bezugsquelle für diese Displays von NewHaven?
http://www.newhavendisplay.com/nhd19232wgbtmivtnonstocked-sample-quantities-available-p-546.html
Wenn möglich in Deutschland. Leider nichts gefunden, was lieferbar ist.

Edit: Defekten Uno kann ich ebenfalls ausschließen, mit einem Uno Clone geht es auch nicht.

Hallo,
ich bin hier nicht der große "SketchVersteher" aber-
Du sagst dem Display etwas in "bunt"- das Display ist aber "monochrom"
Kann es daran liegen?

Wegen dem anderen, probiere es einmal hier:

Gruß und Glück
Andreas

Das mit der “Farbe” kommt aus dem Beispielssketch. Das hat jedoch nichts mit der Funktion des Displays zu tun. Alle hier angegeben Werte werden als weiß ausgegeben. Dein Link hilft leider nicht weiter

DISPLAYS: TFT, LCD, OLED, 7-SEGMENT-LED . . .
kommt noch …

Vielleicht werden da aber Kommandos an das LCD übertragen, die dann anders interpretiert werden, so dass dann Müll rauskommt.

Diese LCDs sind eigentlich ziemlich einfach gestrickt. Ich habe so eins mal auf einem 8052 in Assembler programmiert. Und die größte Schwierigkeit war das Chinesisch → Englisch Datenblatt, in dem die Timings falsch angegeben waren.
Aber wenn die alle so sind (was wahrscheinlich ist) dann sind das zwei 64*64 Controller. Jeder Controller ist in 8 Pages zu je 64 Spalten mit je 8 Bit einteilt. Man adressiert dann Zeile + Spalte und schreibt das jeweilige Byte in den Speicher.

Es ist theoretisch möglich, dass da mit deinen setColor() Funktionen Daten an dass LCD geschickt werden die dann genau in den Speicherzellen oben links landen.

Bist du sich dass der korrekte Konstruktor ist:

U8GLIB_ST7920_192X32_4X u8g(10);

192x32?

#include "U8glib.h"
U8GLIB_ST7920_192X32_4X u8g(10);

void setup(void) {
}

void loop(void) {
  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 0, 10, "Test");
  } while ( u8g.nextPage() );

  delay(1000);
}

Gleiches Problem, gibt es irgendwo vielleicht eine kleine Libary oder ein Testcode, nur um zu testen, ob evtl. es mit dem LCD falsch läuft? Wenn möglich nur die SPI Variante

Mal angenommen das mit dem ST7920 stimmt.

Dann würde ich mal einen anderen Konstruktor nehmen:
https://code.google.com/p/u8glib/wiki/device

Du hast ein 128x64 Display. Und nicht 192x32.

z.B. U8GLIB_ST7920_128X64_4X(cs [, reset]) für Hardware SPI

:relaxed:

Hups, ich brauch wohl dringend eine Brille.
Da habe ich bei der ersten Inbetriebnahme die falsche Zeile auskommentiert und den Fehler weiter fortgeführt. Natürlich ist es ein 128x64er Display.

U8GLIB_ST7920_128X64_4X u8g(10);

Hast du da noch eine Adapterplatine hinten am Display von der man nichts sieht? Oder weshalb geht das mit SPI?

Das nackte Display hat doch nur das normale 8 Bit Interface wenn ich das richtig durchblicke. :~

Nein, auf der Rückseite habe ich keine Adapterplatine. Das Display ist von hier, mit den anderen sollte es aber mM nach auch gehen. Hab die Verschaltung wie oben geschrieben, lediglich mit dem Kontrast muss ich schaun, wie ich das löse. Jedoch ist ohne Verbindung der Kontrast soweit in Ordnung