PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD (TC1602A 08(R)) funktioniert nicht



derfagottist
03.03.2014, 13:35
Hi!

Ich habe von einem Freund ein LCD geliehen bekommen und wollte das mal mit Bascom an einem Atmega8 ausprobieren. Angeschlossen habe ich das soweit (siehe angehängter Schaltplan) und ich bekomme auch eine Ausgabe, die allerdings nicht mit dem Programm übereinstimmt, welches "Hello World." ausgeben sollte. Es kommen nämlich in ZWEI Zeilen seltsame Balken.

Also, folgende Hardwarekonfiguration liegt vor:

Atmega8 mit 3,79545 Mhz
LCD TC1602A 08(R)

Und natürlich ein PC zum proggen...

Wenn ihr Fragen und evtl. schon eine Lösung habt, dann meldet euch!

LG
Jonas
27664

Sauerbruch
03.03.2014, 13:42
...dann zeig´ uns doch mal das Programm! Sonst wird´s etwas schwierig mit der Fehlersuche...

P.S.: den Trimmer hast Du schon mal komplett hin- und herbewegt?

derfagottist
03.03.2014, 14:03
Gut, dann das Programm:



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


Config Portd.6 = Output
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cursor Off

Main:
Do

Cls
Locate 1 , 2
Lcd "Hello World."
Waitms 500

Loop

End

LG

Edit: Den Trimmer hab ich mit zwei Widerständen ersetzt... Also, du meinst doch das Kontrast Poti, richtig?

nikolaus10
03.03.2014, 15:34
Welche Widerstaende hast du denn genommen ?

Wie sehen die Zeichen denn aus?

KR

derfagottist
03.03.2014, 15:50
Also, von - zum Kontrast Pin 220 Ohm und von + zum Kontrast Pin 4 Ohm

Es sind 5 schwarze dicke Balken und 1 halb so großer Balken, die dauerhaft nach Programmstart im ca. 1/2 Sekundentakt blinken und das über BEIDE Zeilen...

LG

BMS
03.03.2014, 17:10
Hallo,
mit 220 Ohm und 4 Ohm kommen am Kontrastpin niemals die vom Schaltplan geforderten 1,5V oder weniger zustande.
Spannungsteiler: Ukontrast=5V*(R unten)/(R oben+R unten)=5V*220 Ohm / (220 Ohm + 4 Ohm)= 4,91 V.
Der Widerstand vom + zum Kontastpin muss deutlich größer sein als der Widerstand vom - zum Kontrastpin.
Der Spannungsteiler darf gern hochohmiger sein, im Moment fließen unnötige 5V/224 Ohm=22 mA.
Lieber im Kiloohmbereich wählen - nimm doch z.B. 3,3k und 10k (10 von + nach Kontrastpin, 3,3k von - nach Kontrastpin) oder ähnlich.
Wie ist die Spannungsversorgung realisiert?
Grüße, Bernhard

Sauerbruch
03.03.2014, 17:44
Also, du meinst doch das Kontrast Poti, richtig?

Richtig. Und da würde ich auch dringend empfehlen, ein Poti zu verwenden. Der Spannungsbereich mit dem man einen vernünftigen Kontrast bekommt ist meistens sehr klein, mit einem fixen Spannungsteiler dürfte dieser Bereich nur schwer zu treffen sein.

Im Übrigen sieht das von Dir geschilderte Verhalten genau so aus, als wäre der Kontrast zu hoch.

Dadurch, dass nach dem CLS gleich wieder den LCD-Befehl kommt, müsste die Schrift praktisch durchgehend zu sehen sein (bzw. die schwarze Blöcke). Wenn Du jetzt hinter das CLS noch ein Waitms 500 setzt, müsste die Schrift auch an- und ausgehen.

derfagottist
04.03.2014, 16:14
Moin!

Also, ein Poti (2,5k Ohm) ist bestellt.


nimm doch z.B. 3,3k und 10k (10 von + nach Kontrastpin, 3,3k von - nach Kontrastpin) oder ähnlich.
Hab ich gemacht. Ergebnis: Ich bin genauso schlau wie vorher, denn es kommt genau die gleiche Anzeige... Dabei hab ich nochmal die Balken nachgezählt: Es sind insgesamt 8 schwarze, leicht vor sich hin blinkende, dicke Balken.
Ich weiß nicht was ich da falsch gemacht habe. :confused:

Allerdings habe ich überlegt, ob ich mir nicht 1. ein neues Display anschaffe (kann man da nehmen was man will oder habt ihr ´ne Empfehlung für für mich?) oder ob es am Controller auf dem LCD liegen könnte, dass ich nur schwarze Balken angezeigt bekomme.

Danke für schon vorab für eure Hilfe!!!

LG
Jonas

Sauerbruch
04.03.2014, 16:33
Allerdings habe ich überlegt, ob ich mir nicht 1. ein neues Display anschaffe

Nein nein nein - ich würde unbedingt erstmal versuchen, die Kontrast-Spannung mit einem Poti einzustellen. Dann wirst Du sehen, dass man ganz schnell in einem Bereich ist, in dem der Kontrast so hoch ist, dass alle Punkte des LCDs schwarz sind. Ein optimaler Kontrast ist wirklich "Millimeterarbeit".

Wenn Du nicht tatenlos rumsitzen willst bis das Poti da ist, könntest Du eine einstellbare Spannung auch mit der PWM-Funktion des ATMega8 erzeugen. Dazu bräuchtest Du ein bisschen Hardware: Idealerweise 2 Taster (für Spannung rauf und runter), einen Kondensator, einen Widerstand, und vielleicht noch ein Multimeter um das Ergebnis zu überprüfen.

Weitere Details bei Interesse :-)

derfagottist
04.03.2014, 16:38
Ja Interesse hab ich schon, allerdings sollte man da vielleicht besser einen neuen Theard aufmachen und außerdem hab ich keine Zeit das alles zu testen und so, zumindest im Moment nicht. :D

Dann warte ich mal bis das Poti da ist. (Könntet ihr mir bitte trotzdem preiswerte LCDs empfehlen am besten mit 16*2 oder 20*4 Zeichen, denn ich würde schon gerne mal ein eigenes haben, denn dieses ist ja nur geliehen ;))

LG

Sauerbruch
04.03.2014, 16:47
und außerdem hab ich keine Zeit das alles zu testen und so, zumindest im Moment nicht. :-)

Das kenn´ ich...

Günstige LCDs habe ich schon öfter mal bei Pollin gekauft (einfach mal googeln), da gibt´s immer wieder mal echte Schnäppchen.

nikolaus10
05.03.2014, 07:59
Ja Interesse hab ich schon, allerdings sollte man da vielleicht besser einen neuen Theard aufmachen und außerdem hab ich keine Zeit das alles zu testen und so, zumindest im Moment nicht. :D

Dann warte ich mal bis das Poti da ist. (Könntet ihr mir bitte trotzdem preiswerte LCDs empfehlen am besten mit 16*2 oder 20*4 Zeichen, denn ich würde schon gerne mal ein eigenes haben, denn dieses ist ja nur geliehen ;))

LG

Oha,
Mit geliehenen Displays sollte man wissen was man tut

KR

oberallgeier
05.03.2014, 08:26
... warte ich mal bis das Poti da ist. (... preiswerte LCDs empfehlen... 16*2 ...Ich hole mir die immer von CSD (hier klicken für Werbung :-/ ), Typ DEM16226SYH-LY; (http://www.csd-electronics.de/200/cgi-bin/shop.dll?AnbieterID=2) für sechs und einen halben Steine nicht zu teuer. Als Poti nehme ich ein 3,3 mm x 3,3 mm Teilchen in SMD, das ich (etwas fummelig) direkt auf die LCD-Platine löte - siehe dieses Video, Sekunde 5-6, (https://www.roboternetz.de/community/threads/62904-Servomesstester-(Servotester-und-–messaufbau)?p=585511&viewfull=1#post585511) über der linken, oberen, schwarzen Ecke vom Poti. Wird eh meist immer nur einmal eingestellt. Manchmal nutze ich auch (klappt immer) einen festen Spannungsteiler - auch in SMD.

Bei Pollin gibts natürlich auch zwei-Euro-Schnäppchen oder dieses sagenhaft günstige 8x2 (http://www.pollin.de/shop/dt/NzczOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_C0802_04.html) , SEHR schick!

derfagottist
10.03.2014, 13:58
Moin!

So, das Poti ist vor wenigen Tagen angekommen und ich hab natürlich gleich ein wenig damit rumprobiert. Und siehe da! Es funktioniert immer noch nicht besser. Ich kann zwar jetzt den Kontrast mehr oder weniger stufenlos einstellen, allerdings bekomme ich nur die schon beschriebenen schwarzen Balken angezeigt...

Habt ihr noch eine Idee woran es liegen könnte???

LG
Jonas

PICture
10.03.2014, 15:10
Hallo!

Ich kenne sowohl AVRs als auch dein Display nicht. Von dir beschriebene "Symptome" deuten auf fehlerhafte Initialisierung des Displays bzw. zu schnelle Taktfrequenz für den Displaycontroller. ;)

Sauerbruch
10.03.2014, 16:35
Manchmal dauert es auch eine kurze Zeit, bis die Betriebsspannungen auf den einzelnen Komponenten stabil, sind (z.B. wenn sie mit ´nem Kondensator gepuffert werden). Versuch´s doch mal mit einer kurzen Pause (z.B. Waitms 500) vor dem Config LCD-Befehl. Ist aber nur so ein "Bauchgefühl"...

Die Taktfrequenz stimmt, d.h. der Controller läuft mit ´nem externen Quarz?

derfagottist
10.03.2014, 19:27
Jup, der Atmega8 läuft über ein externes Quarz.

Das mit dem Waitms werd ich nochmal ausprobieren. Und ich hatte die Tage auch mal ein wenig Zeit und hab dann mal hier im Forum ein wenig geguckt, und hab auch einige Einträge zu LCDs gefunden und mich interessiert es jetzt wie es genau mit den "manuellen" initialisieren funktioniert. Könntet ihr mir da evtl. weiterhelfen???

LG
Jonas