PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD defekt?



iK3
24.01.2009, 20:25
Hallo zusammen,

ich habe mir ein gebrauchtes LCD Display mit Board gekauft, um damit einen DIY Beamer zu steuern. :)

Da der Atmega8, mit dem das Board bestückt war, bei Tests kaputt ging, habe ich mir zwei neue bestellt und eingebaut. Und weil das Ansteuern von LCDs unter Bascom recht einfach ist, habe ich folgenden simplen Code verwendet:



$regfile = "m8def.dat"
$crystal = 1000000

Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2 , Chipset = Ks077
Config Lcdbus = 4

Config Pinb.1 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)
Bel Alias Portb.1

Bel = 1

Cls

Locate 1 , 1
Lcd "Hello World"

Do
nop
Loop


Nur das Ergebnis hat mich etwas verwundert:

http://butterflyrobot.bu.funpic.de/Anzeige.JPG


Jetzt stellt sich mir die Frage: Ist das Teil defekt, oder liegt einfach nur ein Fehler in der Verdrahtung oder im Programmcode vor?

Greetings,

iK3

uwegw
24.01.2009, 20:30
Wie sieht die Anzeige aus, wenn das LCD noch nicht initialisiert wurde?

TomEdl
24.01.2009, 20:39
Versuchs doch mal mit dem Code:


$regfile = "m8def.dat"
$crystal = 1000000

Config Portd = Output

Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2 , Chipset = Ks077
Config Lcdbus = 4
Initlcd
waitms 100

Config Portb.1 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)
Bel Alias Portb.1

Bel = 1

Locate 1 , 1
Lcd "Hello World"

Do
nop
Loop


Gruß
Thomas

iK3
25.01.2009, 16:04
Zuerst einmal Danke! für die schnellen Antworten.

Zum einen der Init-Bildschirm:

http://butterflyrobot.bu.funpic.de/AnzeigeInit.JPG

Das ist die Anzeige, wenn ich einfach nur die Hintergrundbeleuchtung einschalte, wenn das mit uwegw's post gemeint war.

Ich habe natürlich sofort auch das Programm von Thomas ausprobiert und weiß nun nicht, ob mich das LCD auf den Arm nehmen will. Ich habe spaßeshalber einige Male den Strom unterbrochen und jedesmal wurde etwas anderes angezeigt:

http://butterflyrobot.bu.funpic.de/Anzeige1.JPG
http://butterflyrobot.bu.funpic.de/Anzeige2.JPG
http://butterflyrobot.bu.funpic.de/Anzeige3.JPG
http://butterflyrobot.bu.funpic.de/Anzeige4.JPG
http://butterflyrobot.bu.funpic.de/Anzeige5.JPG

Bin schon mal gespannt, was ihr dazu meint, mir fällt kein Kommentar mehr ein. :-k

Greetings,

iK3

TomEdl
25.01.2009, 16:10
Hallo!

Poste doch mal den Schaltplan, vielleicht hast du was falsch angeschlossen!?!

Gruß
Thomas

iK3
27.01.2009, 19:52
Es hat mich ein wenig Zeit gekostet mit Eagle vertraut zu werden, darum die etwas späte Antwort.

Dies ist also der noch unvollständige (und zugleich mein erster) Schaltplan, der zumindest zeigt, wie das LCD angesclossen ist:

http://butterflyrobot.bu.funpic.de/SchaltplanLCD.png

Im übrigen habe ich nachgemessen; das Netzteil liefert saubere 4,95V, daran ändert sich auch über längere Zeit nichts.

Ich habe sämtliche Kabelverbindungen nochmals nachgelötet, um kalte Lötstellen zu vermeiden. (Das Board ist nicht nur mein erster Schaltplan, sondern auch mein erstes Lötobjekt :))

Falls sich der Fehler nicht beheben lassen sollte, nutze ich halt nur die 8 oberen Zeichen. :cheesy:

Greetings,

iK3

TomEdl
27.01.2009, 19:55
Hallo!

Dreh mal dein LCD Display um und lies die Bezeichnungen der dort vorkommenden ICs ab. Es kann nämlich sein, dass ein Controller verwendet wird, der von BASCOM nicht unterstützt wird.

Gruß
Thomas
;)

iK3
27.01.2009, 20:18
Also das Display ist ein TC 1602-09, gibt's bei pollin.de für 7,95€ wie ich im Zuge meiner Recherchen herausgefunden habe.

Ich habe mir auch das dort erhältliche Datenblatt angeschaut, das mir aber leider wenig Neues erzählt hat.

Ich vermute inzwischen ganz stark, dass ich das Teil zusammen mit dem ursprünglichen Atmega8 in die ewigen Jagdgründe getrieben habe, als ich noch überhaupt keine Ahnung von der Platine hatte und einfach nach gut dünken Strom drauf gegeben habe. :-b

Aber ich wäre natürlich genauso glücklich, wenn die Anzeige nur an Bascom liegen würde, dann würde ich die Ausgabe mit Assembler machen.

Greetings,

iK3

TomEdl
27.01.2009, 20:45
Hallo!

Sry, heute komm ich leider nicht mehr dazu, dem Ganzen nachzuforschen (ein paar Sachen fürs Labor morgen sind noch zu erledigen) - aber morgen werd ich mir die Sache genauer ansehen.

Gruß
Thomas
:)

Panzer4000
27.01.2009, 20:57
Hallo @iK3

die ersten 8 Zeichen jeder Zeile werden korrekt wiedergegeben.
die zweiten 8 Zeichen jeder Zeile werden nicht korrekt angesteuert, was vermutlich durch Beschaltung des LCD entstanden ist.
Nimm bitte mal das Datenblatt.
Was macht PD5 an 16 schau mal nach?
Aber Atmega 8 ist korrekt- Programm korrekt.
LCD fehlen 8 Spalten je Zeile kann nur durch Ansteuerung falsch sein.


mfG

McJenso
28.01.2009, 14:26
Hallo,

für mich sieht das nach kaputt aus. Für die Darstellung der funktionierenden Buchstaben werden alle Leitungen benötigt. Würden welche nicht funktionieren oder vertauscht sein, könnten die Buchstaben nicht dargestellt werden. So bleibt ein Fehler im Programm oder halt am LCD. Da der Kontrast in dem nicht funktionierenden Bereich auch recht merkwürdig aussieht tippe ich auf das Display.

Gruß

Jens

felack
28.01.2009, 17:25
Hallo iK3,

sieht nach einem Problem der internen LCD-Adressierung aus, weil die ersten 8 Zeichen immer richtig sind. Probier doch mal die Parameter:

Config LCD = 16 * 1a oder
Config LCD = 20 * 4a

aus ob sich dann was verbessert. In der BASCOM-Hilfe steht die Erklärung zu den Parametern.

felack

iK3
01.02.2009, 16:56
Hallo

@Panzer4000
PD5 liegt nicht an 16, das liegt an der etwas laienhaften Darstellung :)

@felack
Hab ich sofort ausprobiert, aber hat an der Darstellung nur wenig geändert.

Ich habe inzwischen im Netz ein Programm gefunden, um die Werte von Temperatursensoren auszulesen und auf einem LCD anzuzeigen.
Dabei hat sich herausgestellt, dass wenn ich das Display jede Sekunde update, die ersten 8 Zeichen fehlerfrei dargestellt werden. Die Zeichen, die ich sofort nach dem Einschalten und auch ein wenig danach schicke, werden immer verzerrt, aber sobald ich dann so 3 mal Daten gesendet habe, werden die ersten 8 Zeichen oben und unten (!) fehlerfrei angesteuert. Die anderen beiden Hälften zeigen dabei gar nichts oder ein gefülltes Feld.

Ich denke mal, dass ich mich mit den ersten 8 abfinde und mein Programm so einstelle, dass nur diese gebraucht werden.

Vielen Dank an alle, die so schnell Vorschläge unterbreitet haben. =D>

Wenn es gewünscht ist, werde ich bei Gelegenheit auch das fertige BeamerControl.bas hier posten.

Greetings,

iK3

uwegw
01.02.2009, 17:12
Ich denke, das LCD hat wirklich nen Schaden weg. Wenn man ein LCD falsch ansteuert, zeigt es gewöhnlicherweise entweder gar nichts oder ordentliche Zeichen an der falschen Stelle...