www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LC Display Fehlersuche


Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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_4bitb...]. 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

Autor: Giuseppe G. (Firma: ACS) (gcrax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Das Display 2x16 Zeilen, hängt an einem Atmega32, am Port.C.

JTAG ausgeschaltet?

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Turbotoni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jap, Anpassungen sind geschehen.
#define XTAL 16000000

#define LCD_CONTROLLER_KS0073 0  
/**< Use 0 for HD44780 controller, 1 for KS0073 controller */

#define LCD_IO_MODE      1         
/**< 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.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Datenleitung - Pin Zuordnung ist auch angepasst?

Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jap, seltsam ist nur wenn ich da was in der Zuordnung vertausche...
#define LCD_PORT         PORTC        /**< port for the LCD lines   */
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       3            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       2            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#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

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Befedo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.