LCD Ansteuerung

Gast #4333387
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
Gast #4333442
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
#4334286
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
Gast #4336255
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
Gast #4336267
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.
Gast #4337649
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.
#4338690
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.
Gast #4343001
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.
Gast #4343604
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
#4343616
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. ;-)
#4343647
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.
Gast #4343664
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.
Gast #4350103
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.
Angehängte Dateien:
#4353171
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
#4353277
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?
Gast #4353982
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren