Forum: Mikrocontroller und Digitale Elektronik Bascom und DV-20208 LCD, zwei zeichen zuviel angezeigt?


von Matthias B. (matthias_b14)


Angehängte Dateien:

Lesenswert?

Hallo

Ich habe gestern ein Display welches ich bei Pollin erworben habe in 
betrieb genommen. Nach einigem hin und her funktioniert das teil nun 
auch. Leider jedoch nicht ganz perfekt...

Beim Display handelt es sich um ein DV-20208 welches 2x20 Zeichen 
darstellen kann (nicht die Grafikdisplay-Variante davon). Betreibe es im 
4 Bit Modus und habe RW auf GND gelegt.
Nach dem folgenden kleinen Testprogramm sollte das Display eigentlich 
die Zahlen und Buchstaben anzeigen:

$regfile = "m8def.dat"
$crystal = 3686400
$hwstack = 100
$swstack = 100
$framesize = 100

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , 
Db7 = Portb.4 , E = Portb.0 , Rs = Portd.7
Config Lcd = 20 * 2
Cls
Cursor Off

Locate 1 , 1
Lcd "12345678901234567890"
Locate 2 , 1
Lcd "ABCDEFGHIJKLMNOPQRST"

Do

Loop

End

Das funktiioniert an sich auch prima, jedoch passiert es immer das die 
ersten beiden Displaystellen mit anderen zeichen ausgefüllt werden. Ich 
hab mal zwei Beispielbilder angehängt. Nach einem Reset können sich die 
beiden Zeichen auch ändern. Manchmal kommt es auch vor das nur die obere 
oder die untere Zeile nach dem Reset angezeigt wird. Bin jetzt mit 
meinem Latain am Ende. Habe zuvor ein bissl mit einem 4x20er Display 
gearbeitet. Das hatte diese Probleme nicht.

Die Verkabelung hab ich zumindest schonmal auf durchgang geprüft um 
solcherlei fehler auszuschließen.

Was kann ich tun damit der Text ab dem ersten zeichen beginnt?

von Jürgen C. (cjr)


Lesenswert?

Hallo,

füge mal einige Pausen (z.b. Waitms(10)) nach den Displaybefehlen
wie "CLS" und "locate" ein. Möglicherweise kommt das Display mit
der der Datenverarbeitung nich nach.

Gruß Jürgen

von Matthias B. (matthias_b14)


Lesenswert?

Hallo Jürgen

Danke für deine Antwort. Habe das gleich mal ausprobiert. Leider ohne 
erfolg :(. Kann mich dunkel erinnern das ich den umgekehrten Effekt mal 
bei dem 4x20er Display hatte (Also das ein Zeichen weniger angezeigt 
wurde). Da brachte, wie ich grad in alten Codes gesehen hab, den 
gewünschten erfolg. Leider aber bei dem 2x20 Display nicht:(.
Hab ne Wartezeit von 10 und 100 ms versucht. Sowohl vor, nach und auch 
zwischen den befehlen. Der Displaytext ist immer noch um zwei zeichen 
eingerückt wie auf den ersten Bildern. :(

von MWS (Gast)


Lesenswert?

Mach' mal vor das Cls ein LCDInit rein und vorher noch ein Waitms 100.

von Matthias B. (matthias_b14)


Lesenswert?

Hallo MWS

Danke für den Tipp, hab ich gleich mal ausprobiert:

Waitms 100
Initlcd
Cls
Cursor Off

Locate 1 , 1
Lcd "12345678901234567890"
Locate 2 , 1
Lcd "ABCDEFGHIJKLMNOPQRST"

Leider brachte auch das keine erfolge. Im Display erscheint nach wie vor 
schnulli an den ersten beiden stellen :(

von MWS (Gast)


Lesenswert?

Du bist sicher, dass der uC auch mit dem angegebenen Takt läuft ? Wenn 
Du unter $Crystal einen höheren Wert als den tatsächlichen einträgst, 
z.B. 10000000, dann verwendet Bascom für die internen Delays längere 
Zeiten. Damit siehst Du ob's ein Timingproblem ist. Auch würd' ich mal 
schauen was passiert, wenn Du eine Zeile in der Loop immer wieder neu 
beschreibst, natürlich mit 'nem kleinen Delay dazwischen.

von Karl (Gast)


Lesenswert?

Das ist ein ganz spezielles Display. Es kann viel mehr, z.B. chinesische 
Schriftzeichen und macht nur Probleme.

Siehe hier:
Beitrag "HD44780 (Pollin DV20208) Zeichenbreite stimmt nicht"

Ich würde mal probieren, nicht alle Zeichen zu schreiben oder es mal als 
16x2 zu konfigurieren.

von Matthias B. (matthias_b14)


Lesenswert?

So ich hab jetzt mal ausprobiert periodisch aufs display zu schreiben:

Do

Cls
Waitms 2
Locate 1 , 1
Lcd "12345678901234567890"
Locate 2 , 1
Lcd "ABCDEFGHIJKLMNOPQRST"

Loop

Leider sehe ich nun nur noch die ersten beiden Zeichen in der oberen 
Zeile wechseln wechseln. Man sieht die Zahlen dahinter kurz aufblitzen. 
Keine Ahung was das soll:(.
Habe zur sicherheit auch nochmal an der Quarzfrequenz gespielt. Brachte 
aber auch nix:(.

@ Karl

Ja, den Beitrag habe ich schon gelesen. Das dort beschriebene Display 
unterscheidet sich jedoch von meinem. Ich habe ein 2x20er Display. 
Grafikfähig ist das nicht. Habe aber auch mal ausprobiert es als 2x16er 
anzusprechen. Brachte das selbe ergebniss. Leider wird das spezielle 
Verhalten dieses Displays nirgends beschrieben.

von snowfly (Gast)


Lesenswert?

Matthias B. schrieb:
> Leider sehe ich nun nur noch die ersten beiden Zeichen in der oberen
> Zeile wechseln wechseln. Man sieht die Zahlen dahinter kurz aufblitzen.
> Keine Ahung was das soll:(

Ist ja klar wenn du das Dispay alle 2ms neu beschreibst, so schnell ist 
das nicht.
Mach mal ein waitms 200 draus.

Geht vielleicht ein Locate 1,0?

von Matthias B. (matthias_b14)


Lesenswert?

@ Snowfly

Ups, da hab ich mich hier verschrieben. Ich hab da ein Wait 2 und nicht 
ein Waitms 2 stehen gehabt. Also das alle 2 sek. das LCD aktualisiert 
wird. Aber brachte ja nix.

Hab jetzt noch versucht mit Locate 1,0 das ganze hin zu bekommen. Außer 
Zeichensalat in der ersten Zeile bekomme ich wieder nix angezeigt...:(.

Werd jetzt nochmal die Kabel nachmessen. Vielleicht hab ich ja glück...

edit:
Hab grad nochmal die 6 Datenleitungen vermessen. Durchschnittlich 2,5 
Ohm auf einer Datenleitung sollten doch keine Probleme Verursachen oder 
könnte da der Fehler liegen?

von Dietrich L. (dietrichl)


Lesenswert?

Matthias B. schrieb:
> Hab grad nochmal die 6 Datenleitungen vermessen. Durchschnittlich 2,5
> Ohm auf einer Datenleitung sollten doch keine Probleme Verursachen oder
> könnte da der Fehler liegen?

Wenn die wirklich 2,5 Ohm haben, dann sind die ziemlich lang?
Und die Versorgung (GND und Vcc) geht auch darüber? Dann kann das 
Problem auch daran liegen.
Mindestens der GND muss "solide" genug sein, damit die 0V nicht 
rumzappelt. Vcc kann man am Display mit einem Kondensator abblocken.
Bei den Datenleitungen sollte das aber kein Problem sein.

Gruß Dietrich

von Matthias B. (matthias_b14)


Angehängte Dateien:

Lesenswert?

Hallo

Sorry das ich jetzt erst wieder schreib. Hab mir das mit den Kabeln 
nochmal richtig durch den Kopf gehen lassen und mich dazu entschlossen 
das ganze nochmal neu zu verlöten und nun Klingeldrath anstelle von 
Jumperkabeln zu verwenden. Und siehe da ES GEHT!!!! Freude:).

Allerdings ist es schon bemerkenswert das ein Kabelwiderstand eine 
derartige Auswirkung haben kann. Nun, jetzt hab ich wieder was gelernt. 
Ach ja, ich habe übrigends keine langen Kabel verwendet sondern nur rund 
5cm lange Jumperkabel (siehe Bild). Scheinbar aber keinerlei qualität da 
die alle nen Widerstand von knapp über 2 Ohm aufweisen. Werde die jetzt 
nur noch für unkritische Beschaltungen verwenden. Schade eigentlich, 
machten ja das arbeiten auf dem Steckbrett sehr einfach.
Kennt jemand vielleicht ne alternative/ anbieter wo men solche Kabel in 
vernünftiger Qualität bekommen kann.

Danke nochmal für die Hilfe:)

von Dietrich L. (dietrichl)


Lesenswert?

Matthias B. schrieb:

Schön, dass es geht!

> Scheinbar aber keinerlei qualität da
> die alle nen Widerstand von knapp über 2 Ohm aufweisen.

Das ist aber ungewöhnlich! Hast Du richtig gemessen? Bei so kleinen 
Widerständen zeigen die Multimeter schon mal Mist an 
(Übergangswiderstände des Messkabels, intern am Umschalter...). Hast Du 
zum Test die Messspitzen auch mal zusammengehalten und dann ca. 0 Ohm 
gemessen?

Aber wie ich ja schon sagte: Die Datenleitungen sind bei ein paar Ohm 
eher kein Problem. Das Wichtigste sind solide 0V-Verbindungen und 
Stützkondensatoren zwischen 0V und Vcc (die üblichen 100nF Kerkos) nahe 
an den verschiedenen Verbrauchern.
Grund: Digitalschaltungen erzeugen beim Schalten unangenehme 
hochfrequente Stromspikes auf den Versorgungsleitungen. Und da ist die 
Induktivität von 10cm Leitung schon nicht mehr vernachlässigbar! Und an 
der Induktivität fällt dann kurzzeitig eine eventuell zu hohe Spannung 
ab und versaut die Pegel zwischen Datenleitung und 0V, ober das Bauteil 
spinnt, weil die Versorgungsspannung zu weit zusammenbricht.

Gruß Dietrich

von Asko B. (dg2brs)


Lesenswert?

Hallo Matthias

Woran sieht man, das Dein Display nicht die kombinierte
Graphik/Text-Variante ist ?
Ich hatte mit meinem auch kuriose Anzeigeregebnisse.
Und hab meins dann wieder in die Bastelkiste getan, weil
ich es einfach nicht sauber zum laufen bekam.
Laeuft bei Dir die Hintergrundbeleuchtung mit 5 Volt
oder muss es bei Dir auch mehr sein ?
5,7 Volt ist nen doofer Wert. Ich hatte schon ueberlegt
mit zwei Dioden zu hantieren. Eine im Massezweig des LM7805
um die Ausgangsspannung um 0,7V anzuheben, und dann eine
am Ausgang um die erhoehte Spannung fuer die andere
Elektronik wieder genau um diesen Wert zu senken.
Ich hatte mein Display im 4-bit Modus betrieben.
Hast Du 8-bit Modus verwendet ?

Gruss Asko.

von Matthias B. (matthias_b14)


Lesenswert?

Hallo

@Dietrich
Hab den Widerstand der Messkabel aml geprüft. Tatsächlich 0,5 Ohm 
offset. Vermutlich also alles im Rahmen der Messungenauigkeit eines 
günstigeren Multimeters (MS8229 von Pollin). Trotzdem komisch das das 
Display jetzt geht. Wird vermutlich doch eines der Kabel einen weg 
gehabt haben....
Danke für den hinweis. Hab mir darüber noch nicht wirklich viele 
Gedanken gemacht. Na nun weiß ich ja was allein bei so nem Display 
passieren kann.

@asko
Also das es sich bei meinem um ein Textdisplay handelt erkannte ich 
daran das sich genau 20 Kästchen für Buchstaben u.ä. oben und unten 
befinden (wie halt bei nem normalen Textdisplay). Wenn du über den Link 
oben in den anderen Forumsbeitrag schaust solltest du einen unterschied 
zwischen dem Text auf meinem Display und dem dort erkennen können. Hmmm, 
ansonsten könnte man es noch erkennen wenn man den Kontrast sehr weit 
hochschreubt sodass man die einzelnen Pixel erkennt. Bei einem 
Grafikdisplay müsste dann der gesamte LCD schwarz sein während bei nem 
nur Test Display 40 Kästchen mit linien dazwischen erkennbar sein 
müssten.

Alsoo bei mir lauft die Hintergrundbeleuchtung mit knapp 6V recht gut. 
Unter 5,3 sieht man eigentlich nix. Über 6,2V wollte ich nicht gehen, 
ist auch bei 6V schon sehr hell. Ich nutz aber auch noch mein Netzteil. 
WIe ich das ganze später löse wenn ich das mal verbaue weiß ich noch 
nicht. Da muss ich mich erst noch belesen oder hier ein paar schlaue 
leute belästigen:D. Falls du aber eh ne höhere Ausgangsspannung und noch 
ein LM317 haben solltest kannst du das sicher auch damit lösen.

Ich hab das Display im 4 Bit Modus betrieben (Pin 11-14).

von Asko B. (dg2brs)


Lesenswert?

Hallo Matthias

Dann hab ich wohl die Graphik-Variante.
Bei mir sind jedenfalls keine einzelnen "Kaestchen" zu sehen.
Wenn ich den Kontrast veraendere ist ebend alles dunkel.
Beim Zeichen zaehlen kam ich auf 18.
Denn leider werden nur die ersten 8 richtig angezeigt, der
Rest ist ein mischmasch aus den folgenden Zeichen und den
Zeichen aus der zweiten Zeile.
Ich werd das mal wieder vorkramen und nochmal probieren.
Mir gefiel die sichtbare Displayflaeche.

Gruss Asko.

von Matthias B. (matthias_b14)


Lesenswert?

Ja, ich hab auch kurz gehofft das ich die Grafikvariante habe als ich 
über den obigen Forumsbeitrag gestolpert bin. Na hat alles vor und 
nachteile:P.

Wegen dem Zeichensalat könntest du mal in den Beitrag reinschauen. 
Vielleciht musst du auch nur was am Timing ändern. Oder du hast auch so 
ein Kabelproblem wie ich;). Na viel erfolg beim testen:)

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.