Forum: Mikrocontroller und Digitale Elektronik Hilfe beim LCD


von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Moin Moin und Mahlzeit,
ich habe ein LCD vom Typ: YM-1602C.
Wie man auf dem Anhang sehen kann, zeigt es nicht das was ich sehen 
will.
Laut Datenblatt ist es wohl nicht richtig inizialisiert.
Aber wir finden den Fehler im C Code nicht.
Das Display hat einen SPLC780 und soll HD44780 kompatibel sein.
Daher haben wir den Code aus dem Tutorial genommen und die Portpins 
angepasst.
Weiß jemand einen Rat?

von Michael U. (amiga)


Lesenswert?

Hallo,

Hellseher befragen?

Ich befürchte, hier im Forum hat keiner eine so gut funktionierende 
Galskugel, daß er sowohl Deinen Schaltplan als auch den geänderten Code 
erkennen kann...

Was erhoffst Du also bei der Fragestellung?
Die Bestätigung, daß das Display wohl nicht initialisiert wird, kann ich 
Dir geben.

Gruß aus Berlin
Michael

von Florian K. (Gast)


Lesenswert?

Kommt mir irgendwie bekannt vor...
Hast du sicher richtig initialisiert? So vom Gefühl her sieht das aus 
nach nur 1 Zeile initialisiert und dann der Kontrast viel zu hoch. Hast 
du ein Poti am Kontrasteingang?

von Stefan_KM (Gast)


Lesenswert?

Welcher Controller nimmst du denn?
Bei den AVR gibt es eine fertige Bibliothek für die Ansteuerung eines 
Alpha- numerischen Display mit 2x16 oder 2x24 Zeichen.

von Florian K. (Gast)


Lesenswert?

Noch eine Idee: Im Bild sind nur 4 Datenleitungen zu sehen. Wenn der 
Code aber für 8 bit Busbreite ist, geht im 1. Init.-Schritt u.A. die 
Information "2 Zeilen" verloren.

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Anbei erst ein mal der C-Code. Schaltplan folgt.

@Florian: Ich habe ein Poti am Kontrasteingang und auch wenn ich es 
runter drehe ändert sich nichts.

@Stefan: Ich nehme den ATMega32. Die Konstillation ist identisch mit der 
des E-Blockdisplaymoduls. Wenn ich dieses verwende, läßt es sich 
initialisieren.

@Florian 2ter Eintrag: Der Code ist für den 4Bit Betrieb gedacht. Siehe 
Dateianhang

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Anbei Schaltplan. Kontakte habe ich schon zig mal überprüft, man ist ja 
auch nur eine Mensch.

In der C Datei sind auch die #Defines angepasst.

Schon mal Danke für Eure Antworten, geht ja ratzfatz hier.

von Michael U. (amiga)


Lesenswert?

Hallo,

nicht alles durchgeschaut, aber in der Init:

   LCD_PORT &= 0xF0;          //löscht P0..3 => 0bxxxx 0000
   LCD_PORT |= 0x03;          //             => 0bxxxx 0011
   LCD_PORT &= ~(1<<LCD_RS);        // RS auf 0 =INSTRUKTION
//   LCD_PORT &= ~(1<<LCD_RW);        // RW auf 0 =INSTRUKTION

Wer setzt hier wo RW auf 0 für schreiben?

Gruß aus Berlin
Michael

von Gast (Gast)


Lesenswert?

Wenns das nicht war, leg mal die anderen 4 Datenleitungen auf GND.

von Gast (Gast)


Lesenswert?

Hallo Michael,

danke für deine schnelle Antwort. Aber RW ist immer konstant auf GND, da 
ich nur auf das Display schreiben möchte und nichts auslesen muss. Dies 
wird auch im Schaltplan deutlich.

MfG auch Michael

von Benedikt K. (benedikt)


Lesenswert?

Gast schrieb:
> Wenns das nicht war, leg mal die anderen 4 Datenleitungen auf GND.

Das ist unnötig bzw. kontraproduktiv: Die Pins haben einen internen 
Pullup. Wenn schon, dann also an Vcc.

von Gast (Gast)


Lesenswert?

> Das ist unnötig bzw. kontraproduktiv: Die Pins haben einen internen
> Pullup. Wenn schon, dann also an Vcc.

Hat leider auch nicht geholfen.

von holger (Gast)


Lesenswert?

void lcd_init(void)
{
   // ben�tigte PortPins auf Ausgang schalten
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);

   // Initialisierungsroutine 4Bit-Modus 0x3, muss 3mal hintereinander 
gesendet werden
   _delay_ms(15);


Geh da mal mit dem Delay höher auf 50 oder mehr.
Obwohl ich bei dem Aufbau eher auf Hardwarefehler tippe.

von Benedikt K. (benedikt)


Lesenswert?

Das mit der Pause hat holger schon erwähnt, davon abgesehen sieht die 
init gut aus.
Der SPLC ist etwas zickig, das war der einzige Controller der mit meiner 
Standardsoftware nicht ohne weiteres laufen wollte (von getesteten >20 
LCDs).
Hier gibts z.B. einen Thread dazu:
Beitrag "LCD --> klappt nur bei DB7 anfassen"

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

danke für Eure so zahlreichen Antworten. Es scheint aber am Display zu 
liegen, da ein Baugleiches, was ein Kollege besorgt hat, funktioniert.
Werde das Display umtauschen.

MfG Michael

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
Noch kein Account? Hier anmelden.