Hallo liebe community,
ich habe ein "kleines" Problem mit meinem LC Display.
Erstmal zum Aufbau:
Das Display 2x16 Zeilen, hängt an einem Atmega32, am Port.C. Wird im
4Bit I/O Mode betrieben und ist so beschaltet
[http://www.rn-wissen.de/images/6/6a/Lcdmodul_4bitbusy_schem.png]. Die
Versorgungsspannung kommt von einem LM7805 und beträgt 4,88V. Der
Kontrasst wird über ein 10k Poti eingestellt, kann zwischen 0 - 4,88V
Liegen.
Software:
Verwendet wurde bisher die LCD-Libary von Peter Fleury
[http://www.jump.to/fleury], mit welcher ich auch weiter arbeiten
möchte. Sowie verschiedene header Dateien von RN-Wissen oder
Microcontroller.net, jeweils auch ohne Erfolg.
Verhalten des Display´s:
-mit jedweder verwendeten header Datei bleibt das Diplay schwarz (der
Displayhintergrund ist Standardmäßig schwarz, die Ziffern sollten blau
sein)
-ändert man die Zuordnung der Pinouts im header File (Fleury) läuft der
komplette Ablauf im Controller nicht mehr Ordnungsgemäß
"seltsamerweisse sind im headerfile Data0 bis Data3 dem highbyte am
Display zugeordnet, ein tausch der Anschlüsse am Display brachte auch
nichts"
-egal welche Spannung am Kontrasst Pin eingestellt wird, es bleibt
schwarz
Danke für eure Hilfe
MfG Befedo
Hallo Befedo.
Mit was für einer sprache arbeitest du denn?
und was genau möchtest du denn alles ausgeben?
vielleicht hätt ich was gutes für dich :-)
lg giuse
Erstens liegt beim atmega32 auf Port C auch JTAG, was ggf. per Fuses
erst abzustellen wäre, zweitens ist deine Beschreibung etwas schwammig.
"läuft der komplette Ablauf im Controller nicht mehr Ordnungsgemäß"
kann viel heißen.
> seltsamerweisse sind im headerfile Data0 bis Data3 dem highbyte am> Display zugeordnet
Es ist normal (bzw. zwingend), daß die 4 Datenbits im 4-Bit-Modus
an DB4 bis DB7 des Displays angeschlossen sind, falls du das meinst.
Ist der Display Controller auch der Originale HD44780?
Da gibt es z.B. den KS0073, der als "nahezu 100% HD44780
kompatibel" angeboten wird.
Nur die Init-Routine ist etwas anders. Hier hilft NUR das
das Datenblatt des Kontrollers weiter, die Init-Kommandos
sind im DB gut beschrieben.
MfG
Sepp
Bei Peter Fleury sind die datenleitungen an Pin 0-3 angeschlosssen, bei
dir an Pin 4-7, und das zu ändern genügt es nicht, das nur im
Header-File zu ändren, sondern es mus die gesammte ausgabe-routine
geändert werden.
Oder du schliest die Datenleitungen auch an Pin 0-3 an.
MfG Turbotoni
Hallo,
danke für die schnellen Antworten.
Also JTAG ist deaktiviert, mittels PonyProg ausgelesen. Das mit den
Datenleitungen ist mir soweit klar, dass diese an die "höheren"
Datenpins angeschlossen werden. Wird ja dann Nibble-weisse übertragen.
Das Display war auch schon an anderen Ports, auch ohne Erfolg.
Danke für eure Bemühungen...
MfG Befedo
In der Fleury-lib kannst du den Datenleitungen einen beliebigen Pin
zuweisen.
Ebenso die Init-Korrektur für die KS0073 aktivieren.
Ich nehme mal an das du die Anpassungen in der lcd.h vorgenommen hast.
Jap, seltsam ist nur wenn ich da was in der Zuordnung vertausche...
1
#define LCD_PORT PORTC /**< port for the LCD lines */
2
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
3
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
4
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
5
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
6
#define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */
7
#define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */
8
#define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */
9
#define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */
10
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
11
#define LCD_RS_PIN 3 /**< pin for RS line */
12
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
13
#define LCD_RW_PIN 2 /**< pin for RW line */
14
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
15
#define LCD_E_PIN 1 /**< pin for Enable line */
z.B. die Zuordnung der Datenleitungen, in abwärtiger Folge. DATA0_PIN 7,
DATA1_PIN 6, usw. wenn ich es in der Zuleitung zum Display verdreht
"hätte". Bleibt das Programm an der Stelle wo es das Display anspricht
hängen.
Grüße, Befedo
Das Programm wartet auf das busy auf DB7, das kommt natürlich bei
verdrehter Zuordnung nicht.
Schon mal das KS0073 auf 1 gesetzt.
Ich habe auch die Fleury-lib in Verwendung und keinerlei Probleme.
Hallo Befedo,
hast du die Hintergrundbeleuchtung angeschlossen? Bei vielen LCDs mit
inverser Darstellung (helle Schrift auf dunklem Hintergrund) kann man
ohne Hintergrundbeleuchtung nicht viel erkennen.
Bei einem nicht initialisiertem LCD (2 Zeilen mit je 16 Zeichen) sollte
sich der Kontrast so einstellen lassen, dass die Punktmatrix der oberen
Zeile sichtbar ist.
Was ist es für ein Display?
Gruß
John
Okay, dass mit der Zuordnug hat sich geklärt, war nur so ne Idee von
mir. Die Hintergrundbeleuchtung ist nicht angeschlossen, ich werde dem
mal nachgehen.
Das Display ist vom uns bekannten Online Auktionshaus, sowas wie i-buy.
Deshalb auch keine Doku zu dem Gerät... leider.
Grüße, Befedo
So, der Tip mit der Hintergrundbeleuchtung war entscheidend! Danke dir
John.
Nun Funktioniert alles wie gewollt, kann also zu der Thread.
Dank nochmal an alle die geholfen haben und euch noch einen schönen
Sonntag.
MfG, euer Befedo