Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung


von Knebel (Gast)



Lesenswert?

Hallo,

ich verstehe mein Problem aktuell nicht =)

Habe das Einsteigerset von myAVR MK2 Plus. Mit LCD Anzeige.

Testprogramm läuft. Kann dies auch anpassen.

Nun habe ich noch das Pollin Evaluations-Board 2.0.1
Und ein LCD von Reichelt. LCD Module 202A Series.

Controller KS0076 soll aber mit dem HD Controller 44780 "kompatibel" 
sein.

Nun habe schon einiges versucht. Auch das LCD Beispiel aus dem Forum.

Jedoch bekomme ich das LCD Modul von Reichelt nicht ans laufen.

Nun habe ich das LCD Modul von Reichelt an das MK2 Plus angeschlossen. 
Denn das LCD Modul von myAVR funktioniert, in der Hoffung dass das LDC 
Modul von Reichelt auch funktioniert.

Ist jedoch negativ.  Beide Reihen nur mit schwarzen Balken.

Wie kann ich herausfinden ob das Modul richtig initialisiet wurde?


Bin erstmal von AVR Studi auf BASCOm gewechselt da es einfacher ist das 
LCD ans laufen zu bekommen.

1
$regfile = "m8def.dat"
2
$crystal = 3686400
3
4
Display Off
5
6
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , _
7
E = Portd.3 , Rs = Portd.2
8
9
Config Lcd = 16 * 2
10
11
Config Portd = Output
12
13
Do
14
15
Waitms 1000
16
17
Cls
18
19
Display On
20
21
Cursor On
22
23
Locate 1 , 1
24
25
Lcd "Hallo"
26
27
Locate 2 , 1
28
29
Lcd "Michael"
30
31
Loop
32
End


Habe das Display wie folgt angeschlossen:

1 VSS --> GND
2 VCC --> 5V
3 VEE --> 0 bzw.über ein Poti auch schon mal geregelt
4 RS  --> PORTD.2
5 RW  --> GND
6 E   --> PORTD.3
7 DB0 --> frei
8 DB1 --> frei
9 DB2 --> frei
10 DB3 --> frei
11 DB4 --> PORTD.4
12 DB5 --> PORTD.5
13 DB6 --> PORTD.6
14 DB7 --> PORTD.7


Ich glaube ja das ich was bei dem LCD Modul von Reichelt was falsch 
mache.

Nutzt jemand auch dieses LCD Modul? Wenn ja kann mir dieser eventuell 
ein funktionierendes Programm schicken?

Im Anhang noch Datenblätter zum Reichelt Modul und zum MK2 KIT.


Hoffe ihr könnt helfen.

Gruß

Knebel

von Knebel (Gast)


Angehängte Dateien:

Lesenswert?

Noch das Datenblatt vom LCD Module 202A

von Joe (Gast)


Lesenswert?

Diese Variante läuft.

'2a---------------- LCD - Displayausgabe konfigurieren 
-------------------------
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

Config Lcd = 16x2
Config Lcdbus = 4

cls


Hast du den Kontrast richtig eingestellt ?
Siehst du Kästchen?

Joe

von Teo D. (teoderix)


Lesenswert?

Knebel schrieb:
> Habe das Display wie folgt angeschlossen:

Entschuldige die Frage aber man stößt hier auf so einiges :)

WIE hast Du das angeschlossen? Gelötet, gesteckt, gedröselt... (Photo?)
Auch schon 15x kontrolliert?
Die Pin-Reihenfolge verwechselt?
...

von Won K. (Firma: Outside the Asylum) (the_sane)


Lesenswert?

Knebel schrieb:
> Ist jedoch negativ.  Beide Reihen nur mit schwarzen Balken.

Das klingt nach zu hoch gedrehtem Kontrast. Hast Du da eine 
Einstellmöglichkeit?

von Knebel (Gast)


Angehängte Dateien:

Lesenswert?

Eine Steckerleiste habe ich ans LCD Modul gelötet, der Rest ist 
gesteckt.

Anbei 3 Fotos.5V & GND hole ich mir vom Pollin-Board
Habe ein 5K Poti um den Kontrast einzustellen.

Die Steuerleitung hole ich mir vom myAVR MK2 Plus Platine.

von Knebel (Gast)


Lesenswert?

Links am Flachbandkabel (Rote Makierung) ist der Anschluss 1 vom LCD

von Teo D. (teoderix)


Lesenswert?

Is nur ein Balken zu sehen! = nicht initialisiert.
Überprüf noch mal die Verkabelung, insbesonders die etwas schräg 
geratenen Schneidklemmen.

von Heino M. (heinom)


Lesenswert?

Hallo Knebel,

kann es sein dass Du anstelle eines 2 x 16 Zeichen Displays
> Config Lcd = 16 * 2

ein 2 x 20 Zeichen angeschlossen hast?

> Nun habe ich noch das Pollin Evaluations-Board 2.0.1
> Und ein LCD von Reichelt. LCD Module 202A Series.

202A heißt doch 20 x 2 oder nicht? Meiner Meinung nach musst Du das dann 
auch dem entsprechend konfigurieren:
Config Lcd = 20 * 2

die Anschlüsse sollten gleich sein, aber checke diese zur Sicherheit 
nochmals und gib mir dann mal ne Rückinfo

danke

: Bearbeitet durch User
von knebel (Gast)


Lesenswert?

Hallo,

also das mit dem 20 * 2 stimmt natürlich. ups

Ändert aber auch nichts am Resultat.

Ich werde erst vorraussichtlich am Freitag zum Aufbau kommen.

Denn vorhin wollte ich das Flachbandkabel "gerade" auf die Klemmleiste 
vom LCD setzen und dabei ist mir ein Schneidebein abgebrochen.

Nun muss ich erst das Flachbandkabel von unten anlöten.

Schaffe dies erst Freitag.

Melde mich zurück.

Danke & Gruß,

Knebel

von Profi Frickler (Gast)


Lesenswert?

knebel schrieb:
> Nun muss ich erst das Flachbandkabel von unten anlöten.

Wie lang ist dein Flachbandkabel?

LCDs sind ziemlich empfindlich auf Pegelstörungen da sie selbst
sehr hochohmige Eingänge haben.

Pegelstörungen können (je nach Kabellänge) auftreten durch Reflexionen
an den Kabelenden, eben wenn das Kabel "lang" ist.

Zudem versagt beim langen Flachbandkabel auch die Spannungsentkopplung,
das heisst die Spannungsschwankungen die auf dem LCD auftreten werden
durch Abblock-Cs auf der Hauptschaltung mit länger werdender Leitung
immer weniger gepuffert. Es empfiehlt sich daher die Spannungsversorgung
nochmal mit ein, zwei Abblock-Cs direkt auf dem LCD zu verbessern.

von M. K. (sylaina)


Lesenswert?

Profi Frickler schrieb:
> Wie lang ist dein Flachbandkabel?

Wie man an den Bildern oben sehen kann ist das Kabel nicht lang genug, 
dass da Probleme mit zu erwarten sind. Das sind doch besten Falls 50 cm 
lang. Total unkritisch.

von Heino M. (heinom)


Lesenswert?

nenne mir mal die Bestellnummer von Reichelt zu diesem Display, es kann 
sein dass ich das gleiche habe. Wie gesagt überprüfe die Anschlüsse 
beider Displays zueinander nochmals.

: Bearbeitet durch User
von Profi Frickler (Gast)


Lesenswert?

Michael K. schrieb:
> Wie man an den Bildern oben sehen kann

Kann man nicht. Es fehlt jeglicher Massstab sowie eine
Gesamt-Ansicht des Kabels.

Michael K. schrieb:
> Das sind doch besten Falls 50 cm lang. Total unkritisch.

Genau das (50cm) wäre bereits absolut kritisch.
Bei dir geht das sicherlich auch noch mit 2 Metern.
Falls du es jemals gemacht hast .....

Aber jedem das seine ..... jeder ist seines eigenen
Glückes Schmied.

von Heino M. (heinom)


Lesenswert?

das Display wird wahrscheinlich nicht korrekt initialisiert. Das 
wiederum deutet auf die Kabel bzw. die Anschlüsse hin. Also vielleicht 
auch mal andere Kabel nehmen und austauschen.

von M. K. (sylaina)


Lesenswert?

Profi Frickler schrieb:
> Kann man nicht. Es fehlt jeglicher Massstab sowie eine
> Gesamt-Ansicht des Kabels.

Da liegt ein handelsübliches Steckbrett. Die sind bestenfalls 30 cm 
lang. Und wer aus zwei Bilder nicht eins machen kann um so etwas banales 
wie eine Kabellänge abschätzen zu können…also Profi würde ich so einen 
Frickler nicht nennen.

Profi Frickler schrieb:
> Genau das (50cm) wäre bereits absolut kritisch.

Für eine Festplatte ja aber nicht für ein Display.

Profi Frickler schrieb:
> Bei dir geht das sicherlich auch noch mit 2 Metern.
> Falls du es jemals gemacht hast .....

2 Meter noch nicht aber 50 cm (und länger) schon oft, war bei einem 
Display noch nie das Problem. Die Kabellänge ist hierfür total 
unkritisch bei üblichen LCDs.

von knebel (Gast)


Lesenswert?

Hallo,


bin erst gestern wieder zum porgrammieren gekommen.

Also ich habe mir noch folgendes LCD bei reichelt bestellt:

EA DIP162.

Der Code von oben funktioniert einwandfrei. Bekomme also dieses LCD 
Modul ans laufen.

Beim alten LCD Modul habe ich nun ein Flachbandkabel an die Anschlüsse 
gelötet. Somit besteht hier eine feste Verbindung.

Das Flachbandkabel ist max 15cm.

Irgendwas geht bei der Initalisierung schief.

Sehe in der 1.Zeile nur Balken.

Dies bedeutet, dass die Initalisierung nicht richtig ist?

Gibt es einen Link zu LIBs die ich in BASCOM einbinden kann? (z.B. 
Flury?)

Ich denke das der Kontroller anders angesteuert werden muss.
1
$regfile = "m8def.dat"
2
$crystal = 3686400
3
4
Display Off
5
6
Config Portd = Output
7
Config Lcd = 20 * 2
8
9
10
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , _
11
E = Portd.3 , Rs = Portd.2
12
13
Config Lcdbus = 4
14
Config Lcdmode = Port
15
16
'Initlcd
17
18
Do
19
20
Waitms 1000
21
22
Cls
23
24
Display On
25
26
Cursor On
27
28
Locate 1 , 1
29
30
Lcd "Hallo Michael!"
31
32
Locate 2 , 1
33
34
Lcd " Wie geht es dir?"
35
36
Loop
37
End

Habe die Display Größe nun richtig angegeben. Ist ein 20*2 Display.

Habe gelesen das auch Config Lcdmode = Port angegeben werden muss.

Aber es funktioniert alles noch nicht.

Die Bestell Nummer von Reichelt vom neuerem LCD Modul LCD 
Dot-Matrix-Modul, 2x20 Zeichen, blau ELECTRONIC ASSEMBLY EA W202B-NLW

Artikel-Nr.: LCD 202A BL


Mein LCD Modul heißt aber noch LCD 202A LED
3568230-820




Anbei ein Link zum gleichem Thema.

Sogar der Messaufbau kommt meinen sehr Nahe.

Pollin Board --> Steckbrett  --> LCD Modul

Beitrag "LCD 202A Conrad und Atmega 8"

Hoffe wir bekommen es noch ans Laufen.

von Georg G. (df2au)


Lesenswert?

knebel schrieb:
> Dot-Matrix-Modul, 2x20 Zeichen, blau ELECTRONIC ASSEMBLY EA W202B-NLW

Ein Blick in das Datenblatt zeigt, dass hier für das E-Signal maximal 
25ns Anstiegszeit zulässig sind. Und die Displays sind wirklich sehr 
empfindlich für diesen Parameter.

von Heino M. (heinom)


Lesenswert?

Zeig mir mal ein Bild von der Rückseite des Displays.

von Bastler (Gast)


Lesenswert?

Warum ist das Initlcd auskommentiert ?

von Philipp L. (philipp_l89)


Lesenswert?

Kurzer Hinweis meinerseits: je nachdem in welchem Modus Du das LCD 
betreibst bzw. über wieviele Pins du es ansteuerst (8bit oder 16bit 
Ansteuerung) musst Du die nicht benutzten Pins auf GND legen. :-)

von Georg G. (df2au)


Lesenswert?

Philipp L. schrieb:
> die nicht benutzten Pins auf GND legen

Ein oft gehörter Satz, der dennoch falsch ist. Laut Datenblatt ist "no 
connection" die bessere Wahl.

von spess53 (Gast)


Lesenswert?

Hi

>Kurzer Hinweis meinerseits: je nachdem in welchem Modus Du das LCD
>betreibst bzw. über wieviele Pins du es ansteuerst (8bit oder 16bit
>Ansteuerung) musst Du die nicht benutzten Pins auf GND legen. :-)

Ein 2x20 Display kann nur im 4-Bit- und 8-Bit-Mode betrieben werden. 
Außerdem besitzen die Datenpins des Displaycontrollers interne 
Pull-Up-Widerstände. Da ist GND kontraproduktiv.

MfG Spess

von Philipp L. (philipp_l89)


Lesenswert?

Georg G. schrieb:
> Philipp L. schrieb:
>> die nicht benutzten Pins auf GND legen
>
> Ein oft gehörter Satz, der dennoch falsch ist. Laut Datenblatt ist "no
> connection" die bessere Wahl.

Ich weiß, dann lass mich bitte meine Aussage korrigieren: Meine 
Erfahrung mit den EA Displays zeigt, dass im Gegensatz zu den Angaben im 
Datenblatt, nicht benuttzen Datenbus Pins auf Grund gezogen werden 
sollten. Bei allen 10+ Char Displays von EA die ich bisher verwendet 
habe ging es nur dann. ;-)

von J. H. (joho62)


Lesenswert?

Also bei mir sieht die ganze Ansteuerung so aus:
1
'------------------------------------------
2
Ddrd = &B11111100
3
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
4
Config Lcd = 20 * 4
5
Cls
6
Cursor Off
7
Do
8
'-----------------------------------------
9
Loop
10
End

Kein Display Off (wozu soll das gut sein?)
Kein Display On (macht BASCOM selbst)
Und auch kein Busmode oder Lcdmode.

Das geht seit Jahren mit vielen verschiedenen Displays.

von Joe (Gast)


Lesenswert?

Für die Displays mit seitlichem Anschluss gibt es zwei 
Anschlussvarianten.

Wenn + und - richtig angeschlossen sind, das sieht man hier, dann werden 
die Drähte des Flachbandkabels

1. Der Reihe nach "normal versetzt", wie bei aufgepressten 
Kabelverbindern angeschlossen.

oder

2. + und - bleiben wie unter 1. und die anderen Anschlüsse müssen 
paarweise getauscht werden.

Genaueres findet man im Datenblatt.

von Joe (Gast)


Lesenswert?

J. H. schrieb:
> Und auch kein Busmode oder Lcdmode.

Auf diese Einstellungen kann man nur dann verzichten, wenn diese bei den 
Optionen in BASCOM voreingestellt sind.

von knebel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche mal auf alle Fragen zu antworten.

@  Georg G.:  Habe ich bis jetzt noch nicht betrachtet

@  Heino M:  Bilder im Anhang

@  Bastler: Ich habe Initlcd auskommentiert, da ich gelesen habe, dass 
ansonsten Config Lcdmode = Port von BASCOM resetet wird.

@  J. H.: Bei programmieren geht das neue LCD Modul aus. Es erfolgt ein 
Neustart. Das alte LCD Modul was nicht läuft, bleibt permanent an und 
ich sehe nur schwarze Balken in der ersten Reihe. Hatte gehofft das ich 
damit ein Reset beim LCD Modul vornehmen kann und es dann funktioniert.
Bzgl BUSMODE, LCDMODE diese Befehle sind durch unterschiedliche 
Forum-Beiträge die ich gelesen habe hinzugefügt, in der Hoffung das es 
läuft.

@ all:   Habe die nicht benutzten Datenleitungen soll auf GND als auch 
offen gelassen bei 4BIT-Mode, Hat nicht beeinflusst. Sollte es auch 
nicht.

von Georg G. (df2au)


Lesenswert?

Hast du dir die Signalform am E-Eingang mit einem Scope angesehen? Die 
Aussage mit "maximal 25ns Flankensteilheit" war kein Witz. Ic hatte 
schon diverse Displays von EA, die da extrem empfindlich waren. Die 
Billigware aus Fernost ist deutlich genügsamer.

von J. H. (joho62)


Angehängte Dateien:

Lesenswert?

Die Default-Einstellungen von BASCOM sind für LCDBus= 4Bit
und für LCDmode= PIN, was meistens zutreffend ist.
Beim PIN-Mode kann ich für jeden LCD-Pin einen mir genehmen
Portpin am µC auswählen.

von werner a. (werner31)


Lesenswert?

Bevor du weiter mit Code experimentierst schließ das LCD richtig an.
Du hast lt. Foto keine GND Verbindung hergestellt.
!!!! Minus der Spannungsversorgung vom MyAVR ist nicht identisch
mit GND vom Prozessor.

von Heino M. (heinom)


Lesenswert?

Man kann es nicht richtig sehen, aber kann es sein dass das Kabel am 
Display Anschluss an PIN13 einen Schluss zum PIN15 macht? Das könnte im 
schlechtesten Fall nicht unerheblich sein, auch wenn PIN15 nur die Anode 
für die Displaybeleuchtung ist. Warum hast Du eigentlich die 4 Kabel von 
PIN11 bis PIN14 angelötet, wenn Du das Display nur im 4Bit-Modus 
betreiben willst?

> Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 ,
> Db7 = Portd.7 , _
> E = Portd.3 , Rs = Portd.2

: Bearbeitet durch User
von Heino M. (heinom)


Lesenswert?

Die schlimmsten Fehler sind die, die man sich selbst einbaut ohne es 
bemerkt zu haben. Deswegen würde ich mal den programmierten Atmega und 
wirklich nur das notwendigste alles auf ein Steckbrett drauf knallen, 
also ohne Pollin oder My AVR Board, denn es kann ja sein, dass schon da 
der Fehler drauf ist und über die Leitungen bis zum Display weiter 
gegeben wird. Hast Du die Boards selbst gelötet (Bausatz) oder sind die 
fertig gekauft und auch geprüft?

von Knebel (Gast)


Lesenswert?

Hallo,

den E-Eingang habe ich mir noch nichts angeschaut.

Habe aber auch noch kein Oszi.

Das mit dem Kurzschluss werde ich prüfen.

Bzgl der Boards. MyAvr und das Pollinboard sind Fertigmodule. Habe Sie 
nicht gelötet.

Werde es aber trotzdem auf einem Steckbrett aufbauen.

Melde mich wieder.

Danke.

von Heino M. (heinom)


Lesenswert?

Und wie weit bist Du mit Deinen Test´s und Ergebnissen?

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.