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, Anpassungen sind geschehen.
1 | #define XTAL 16000000
|
2 | |
3 | #define LCD_CONTROLLER_KS0073 0
|
4 | /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
|
5 | |
6 | #define LCD_IO_MODE 1
|
7 | /**< 0: memory mapped mode, 1: IO port mode */
|
Danke der Nachfrage^^ Ach ja, weil vorhin die Frage kahm. Das ganze ist in C, was schon an den Fornulierungen a lá Header Dateien zu erkennen ist.
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
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.