Hi Leute, ich hab meine Schaltung heute mit einem TC1604A modifiziert. Vorher hatte ich ein TC1602A mit 2 Zeilen drauf. Es hat mit dem TC1602 auch alles wunderbar mit der Fleury.lib geklappt. Aber mit dem neuen geht das anscheinend nicht mehr. Ich suche seit Stunden im Netz schon nach Lösungen. Aber irgendwie finde ich nicht viel zu dem Display. Sollte ich mir lieber einen anderen besorgen oder weiter probieren, bis er läuft? Der Display zeigt nur in der 1./3. Zeile schwarze Balken, was ja auf ein Initialisierungs-Problem schliessen lässt. Das Display ist wie folgt angeschlossen. Vss = GND Vdd = +5V Vo = 0 - +5V über Poti RS = PA0 R/W = GND (mittlerweile, war vorher auf PA1) E = PA2 DB0 = GND DB1 = GND DB2 = GND DB3 = GND DB4 = PA3 DB5 = PA4 DB6 = PA5 DB7 = PA6 Das Display hat 4x16 Zeichen, ist von Pollin und soll laut spartanischem Datenblatt einen SPLC780D Kontroller haben. http://www.pollin.de/shop/dt/MTczOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_TC1604A_01.html Hoffe ihr könnt mir helfen. Sonst weiß ich net weiter, vorher hat ja alles geklappt. Danke und schöne Grüße Kai
>DB0 = GND >DB1 = GND >DB2 = GND >DB3 = GND Lass die Leitungen offen, nicht an GND anschliessen. >R/W = GND (mittlerweile, war vorher auf PA1) Bei Fleury darf das glaub ich nicht auf GND liegen. >laut Datenblatt einen SPLC780D Kontroller haben. Bei mir funktionieren solche Displays mit den Standard LCD Routinen. Welchen AVR benutzt du und mit welcher Taktrate?
Hi Holger, also ich benutze einen AT90CAN128 von Atmel. Ich hatte vorher die Fleury.lib benutzt. Hab nun auch schon die routine von microcontroller.net ausprobiert, aber auch ohne Erfolg. Vorher hatte ich auch noch den R/W auf PA1, hatte ihn für die microcontroller.net -> lcd-routine nicht mehr an PA1, sondern an GND. Ich kann ja mal den Seitenschneider ansetzen und DB0-DB3 in die Luft setzten. Ich hoffe nur, dass ich nichts beim ausbauen des alten Displays kaputt gemacht hab. Hatte aber schon die relevanten Leitungen gemessen. Grüße Kai
Also ich hab grad mal die Leitungen DB0-DB3 in die Luft gesetzt, also von GND getrennt. Wie ich schon dachte, es hat nix geholfen. Ich hänge mal das Test-Programm, dass ich aus dem Netz hab, an. Grüße Kai
>Ich hänge mal das Test-Programm, dass ich aus dem Netz hab, an.
Na toll, da ist alles für PORTD eingestellt und deine
Pinbelegung stimmt dafür nicht.
Achso, ja sorry. Das sind die roh-Dateien. Ich hab natürlich auf PortA geändert. Sry. Mein Fehler. Moment ich häng nochmal die .h an.
>Also die schwarzen Balken sind weg, ich könnte vermuten es geht.
Die Initialisierung scheint bis zu einem bestimmten Punkt
funktioniert zu haben, mehr aber nicht.
Eigentlich müsste jetzt in jeder Zeile was stehen:
Line1
Line2
Line3
Line4
Wenn du das nicht siehst stimmt immer noch etwas nicht.
Ne die schwarzen Balken sind zwar weg, aber zu sehen ist auch nix. Woran kann das liegen? Benutzt du die gleiche Initialisierung? Sie muss ja leicht abweichen, da bei meiner Version nicht mal mehr die schwarzen Balken verschwinden?
moin !!! kann es sein das dieses display an pin 3 ( vo displayspannung ) ne negative spannung braucht ? gibt hochtemperatur display´s die das benötigen ( -4,5 .... -5v/ einige µa ) hab hier n 2*40 display aus ner waschmaschine und das will -4,5v haben sonst sieht man garnix . der hd44780 kann max. +-11v displayspannung ab. ich hab hier auf meinem microsps test / programmierboard nen kleinen inverter aus nem cd4093b + dioden / kondensatoren drauf womit ich die -5v erzeuge . mfg
Hi Leute, DANKE für die Hilfe. Der Fehler ist gefunden. Ich hab beim ausbauen des alten Displays einen Bruch in der Leiterbahn von DB6 gehabt. Einmal Lot drüber und es läuft. Man man..das war wirklich nur ein Haarriss... Vielen Dank an alle. Grüße Kai
Vielleicht nochmal für interessierte Leser. Die Peter-Fleury-LCD Libary funktioniert bedingt. Also der Pin R/W muss dafür wieder angeschlossen werden. Bei mir war es dann auf dem 4 zeiligen Display so, dass die ersten 2 Zeilen (DDRAM address: 0x00 und 0x40) korrekt dargestellt wurden und die dritte Zeile nur mit DDRAM address 0x11 läuft. Jedoch ist dann die dritte Zeile um ein Zeichen versetzt, da sie eigentlich bei 0x10 beginnt. Setzt man die Adresse auf 0x10, wird statt in der 3ten/4ten Zeile in die Erste und Zweite geschrieben. Die 4te Zeile ging normal mit 0x50. Möglicherweise ein timing-Problem. Ich hab aber leider keine Zeit die Nadel im Heuhaufen zu suchen und benutze nun die lcd-routine aus dem Tutorial http://www.mikrocontroller.net/articles/Erweiterte_LCD-Ansteuerung Bei dieser Libary muss dann nur der Pin R/W auf GND gezogen werden. Ein in die Luft hängen der Datenpins DB0-DB3 ist nicht nötig. Habe beides getestet und es geht entweder mit GND an DB0-DB3 oder man lässt die Pins in der Luft. Schöne Grüße Kai
> Ein in die Luft hängen der Datenpins DB0-DB3 ist nicht nötig.
Sollte man aber, oder wenigstens hinreichend große Widerstände
reinmachen. Warum? Um Kurzschlüsse zu vermeiden. Selbige können
entstehen wenn man das Display (warum auch immer) (noch) nicht korrekt
in den 4-Bit-Modus gebracht hat und dann einen READ durchführt (wodurch
die Datenpins zu Ausgängen werden).
HTH
Ah okay. Danke das wusste ich nicht, dass muss ich mir gleich mal notieren... Je 10k sollten doch als Widerstand an DB0-DB3 reichen, um sie auf GND zu ziehen. Oder ist es nicht schlimm, wenn ich sie einfach in der Luft liegen lasse? Will nicht anfangen zu fuschen, das tue ich so schon oft genug.
Lass sie in der Luft liegen. Da sie ohnehin eingebaute Pull-ups besitzen, ist das auch für CMOS geeignet. Machen ja auch die meisten so.
> Oder ist es nicht schlimm, wenn ich sie einfach in der Luft liegen lasse?
Normalerweise(tm) lässt man sie offen.
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.