PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit LCD-Modul TC1602A-09 von Pollin.



Blamaster
06.11.2007, 16:00
Hi,

ich habe mir bei Pollin folgendes Display gekauft:

LCD-Modul TC1602A-09.

Als dieses nun zuhause ankam sah es schonmal etwas anders auf als auf dem Produktfoto.

1. Die Anschlussleiste ist nicht unter dem display und hat 16 pins sondern ist neben dem Display und hat 14 Anschlusslöcher und 2 an der gegenüberliegenden Seite 2 für die Hintergrundbeleuchtung.

So dann hab ich das Display erstmal ohne µc angeschlossen. In der oberen Leiste werden auch die schwarzen Kästchen angezeigt. Kontrast einstellen mit Poti läuft auch ohne Probleme. Soweit so gut, nun wollte ich das Display an meinen Atmega16 (Der auf dem älteren Pollin Evolutionsboard 2.0) sitzt betreiben.

Angeschlossen ist es im 4-Bit modus an PortA des µC um nicht genau zu sagen:

Db4 an µc PortA.0
Db5 an µc PortA.1
Db6 an µc PortA.2
Db7 an µc PortA.3
R/W an µc PortA.4
E an µc PortA.5
R/W auf GND
Db0 - Db4 auf GND

Dann hab ich den µC mit folgendem Code gespeist:



$regfile = "m16def.dat"
$crystal = 1000000
Config Pina.0 = Output
Config Pina.1 = Output
Config Pina.2 = Output
Config Pina.3 = Output
Config Pina.4 = Output
Config Pina.5 = Output

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

Config Lcdbus = 4

Initlcd

Cls

Do
Locate 1 , 1
Lcd "test"
Waitms 500
Loop


Passieren tut dabei allerdings garnichts. Auf dem Pollinboard ist ein externes Quartz drauf, welches ich allerdings mit den Fusebits nicht wirklich angenommen wird. Stimmt die Angabe von $crystal = 1000000 wenn ich den Internen Takt vom Atmega 16 verwenden möchte ?

Das Display scheint sich auch nicht zu initalisieren, da die schwarzen Balken auf dem Display bleiben. (Kontrast ist auch richtig eingestellt).

Leider kann ich momentan nur mit Basecom programmieren. Währe aber auch sehr dankbar wenn mir jemand eine Lösung mit C zeigen könnte wo dann auch das Timing des Display eingehalten werden kann.

Ich hoffe mir kann wer helfen :)

mfg blamaster

Zapo.
06.11.2007, 20:03
hi,

also erstmal konfiguriere mal den Port richtig...
z.b. so

Ddra = &B11111111
Porta = &B11111111

oder mit config porta = output

dann fehlt ein "end" am ende des programms - auch wenn du dich in einer schleife bewegst.

R/W musst du meiner Meinung nach fest auf Low legen - kein PortPin!
wahrscheinlich hast du dich da mit R/S verschrieben

initlcd benötigst du eigentlich nicht. ... stört wahrscheinlich aber auch nicht weiter...

check das nochmal und messe die Pins von µP zu Display durch...

Zapo.

Blamaster
06.11.2007, 20:26
Jo mit R/S und R/W hatte ich mich verschrieben.

Ich hab einfach mal mit einer Led die einzelnen Pins durchgetastet.

Die Led hat dann ziehmlich schwach und schnel geflackert. An 2 Pins hat nichts geflackert da hat sie hell geleuchtet .

Zapo.
06.11.2007, 20:45
hast du das angegeben:

Config Lcdmode = Port
Config Lcdbus = 4

??

Blamaster
06.11.2007, 21:07
Config Lcdbus = 4 hab ich angegeben.

Config Lcdmode = port nein.

Stimmt meine quartz einstellung denn sowenn ich das interne quartz verwenden möchte ?

Zapo.
06.11.2007, 21:19
BASCOM ist doch ideal zum einstellen des Taktes!

wenn du 1 Mhz im Quellcode angibst musst du den Prozessor natürlich auch auf 1 Mhz einstellen ... kontrolliere es indem du oben auf "Manuell Programm" drückst - dann auf die Registerkarte Lock and Fuse Bits klickst und dann musst du ungefähr in der Mitte die Anzeige haben Internal Clock oder Div Clock by 8 enable oder disable oder so....

erklärt sich ja von selbst, oder ? 8 Mhz durch 8 teilen = 1Mhz
internal = intern!

verstanden?

Blamaster
06.11.2007, 21:26
Hi,

wie hoch kann denn der mega 16 getaktet werden mit internem quartz ? 8 Mhz ?

Die Fusebits würd ich wenn dann gerne mit Pony Prog setzen. Weißt du wleche Einstellungen da die richtigen sind ?

Und noch ne Frage zum timing vom Display.

Würde es nicht reichen wenn man zwischen jedem vorgang einfach mal großzügig waitms 100 setzen würde, oder hätte das keinen effekt ?

digitali
06.11.2007, 21:42
Hallo,

also ich habe gerade ein 20*4 an einem ATMega168 geklemmt. Klappte auf Anhieb mit folgendem Minimalcode:



$regfile = "m168def.dat"
$crystal = 16000000

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

Initlcd
Cls
Cursor Off

Locate 1 , 1
Lcd "Hello World"

Do
nop
Loop

End


RW ist bei mir auch auf GND. DB0-DB3 haengen bei mir einfach in der Luft. Das habe ich mittlerweile schon mit ca. 60 verbauten LCD's so gemacht. Laeuft seither problemlos.

Also ich vermute mal das Du noch einen Verdrahtungsfehler hast.

Mit freundlichen Gruessen
Digitali

Blamaster
06.11.2007, 22:37
so neues voner Front :)

Ich hab jetzt nochmal die Verkabelung überprüft und die Pins Db0 - Db3 vom GND genommen.

Dann folgenden code überspielt:



$regfile = "m16def.dat"
$crystal = 16000000

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

Initlcd
Cls
Cursor Off
Locate 1 , 1
Lcd "Hello World"

Do
nop
Loop

End


Dann dem Display Saft gegeben und die schwarzen Balken waren wieder da. Dann hab ich den uµ angeschaltet und die schwarzen Balken sind verschwunden. Das heißt also das Display scheint sich nun zu initalisieren. Die große Frage ist nun nur was kann man daraus schließen ? Text ist auf dem Display immernoch keiner zu sehen ....

Aber wenigstens schonmal etwas :)

Hoffe ihr könnt mir weiter helfen ^^

Zapo.
06.11.2007, 22:44
es ist so wie auch digitali geschrieben hat:

minimalcode, pins in der Luft hängen lassen und einschalten - fertig
inits dauern keine sekunde! du hast entweder ein verdrahtungsfehler drin oder du hast das display bzw. proz. zerstört... tausche mal eine komponente aus... (habe das display ebenfalls und das läuft sehr gut!)

ex535
07.11.2007, 11:28
Bei mir funktioniert dein Programm so:

$regfile = "m16def.dat"
$crystal = 16000000

'Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.0 , Rs = Porta.2
Config Lcd = 16 * 2
Config Lcdbus = 4

Ddra = &B11111111 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Porta = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)

Ddrb = &B11111111 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portb = &B00000000

Initlcd
Cls
Cursor Off
Locate 1 , 1
Lcd "Hello World"

Do
nop
Loop

End

Gruß
Kurt

Blamaster
07.11.2007, 13:04
Ja aber das Display initalisiert sich ja schonmal. Deswegen schließe ich einen Defekt schonmal aus.

Die verkabelung ist auch 100% okay. Die hab ich jetzt mindestns 8 mal überprüft.

Wie sieht denn der aufbau von euerm Display aus ? Sind die Pins da unterm Display rand oder rechts an der Seite ?

Blamaster
07.11.2007, 14:21
Sehr komisch hab nochmal hinten aufs display nach der Displaybezeichnung geschauft.

Dort steht TC1602E - 01 (R) und das Display sieht ganz anders aus als die Produktfotos vom Pollin.

Hab mal nen Foto von dem Display im Anhang:

Kann das jemand bestätigen ?

ex535
07.11.2007, 15:07
Ich habe das Gleiche.

TC1602E-01(R) wurde mit dem ADDON Board geliefert.

Überprüfe deine Lötpunkte.

Gruß
Kurt

Blamaster
07.11.2007, 20:34
Stimmt denn an den Lötpunkten was nicht ?

Zapo.
07.11.2007, 20:42
wessen display ist es ?

ich würd sie sauber löten und mir das richtige datenblatt zum TC1602E-01(R) besorgen!

ich vermute das du irgendwelche pins vertauscht hast..........

check it!

Blamaster
07.11.2007, 20:54
Das im Anhang ist meins. Ich finde leider kein genaues Datenblatt zum TC1602E-01(R). Nichtmal auf der Herstellerseite scheint es auffinbar zu sein :-s

Zapo.
07.11.2007, 21:00
also ich will ja nicht kleinlich sein... aber ich habe mal TC1602E-01(R) bei google eingegeben und den ersten link angeklickt!

das kam dabei raus

(nächstes mal bitte selbst googlen!!!, gelle!?!?)

Blamaster
07.11.2007, 21:15
Das aber wieder nur das Datenblatt zum TC1602E(L) bin mir nicht sicher ob das TC1602E-01(R). Bei mir spuckt google nach dem Suchwort nur 1 Ergebnis auf und das führt auf eine nicht erreichbare Seite.

Mit dem Port A vom µc dürfte es ja eigentlich keine Probs geben oder ? Und was für Dinge kann man denn schonmal ausschließen wenn sich das Display Initalisiert ?

Blamaster
08.11.2007, 21:52
So es gibt mal wieder was neues :)

Hab um zu sehen ob was gesendet wird eine LED von - µC Board zu auf
den jeweiligen Pin gehalten. Dann bin ich auf die Idee gekommen mal die
Reset Taste zu drücken, während ich das Kabel noch am Pin hatte.

Folgendes ist passiert:

http://img204.imageshack.us/img204/825/dsc00098yk9.th.jpg (http://img204.imageshack.us/my.php?image=dsc00098yk9.jpg)

Was kann man daraus nun schließen ? Ich würde Sagen ein Defekt des Display fällt dann wohl raus, genauso wie die Kabelbelegung oder ?

Zapo.
08.11.2007, 22:11
ich bin immernoch der Meinung das die Anschlußkabel (z.B. die Datenleitungen) verdreht angelötet sind!

Blamaster
08.11.2007, 22:17
In welcher Hinsicht vertauscht oder verdreht ? Und wie kommst du da drauf. Das Datenblatt hattest du ja selber oben angehängt

Zapo.
08.11.2007, 22:22
wie ich drauf komme? schau bitte mal auf dein Display... !
sieht für mich so aus als würden Daten oder Steuersignale einfach nicht am richtigen Ort zur richtigen Zeit sein! ... (vorausgesetzt es ist nix defekt!)

Blamaster
09.11.2007, 13:21
Deswegen Tippe ich ja mal aufs Timing. Also das die Abfole des µC zu schnell ist und das Display nicht hinterherkommen tut.

Blamaster
09.11.2007, 15:19
Die Kabel schließ ich mittlerwiele auch ganz aus, da ja nicht willkürlich Zeichen gesendet werden, sondern der Zusammenhang schon da ist:

Also Hallo Weld scheint dann schon i wie übertragen zu werden

http://img440.imageshack.us/img440/8412/dsc00099jq1.th.jpg (http://img440.imageshack.us/my.php?image=dsc00099jq1.jpg)

Die Sache ist halt nur die das er nichtmal das von alleine ausgibt sondern nur durch masse an LCD Pin und Reset drücken.

digitali
09.11.2007, 19:59
Wie sieht's mit der Spannungsversorgung aus? Ist es vielleicht ein Billig-Steckernetzteil mit unsauberer Spannung? An der ganzen Schaltung auch die typischen Entstoermassnahmen gemacht?

Mit freundlichen Gruessen
Digitali

Rofo88
09.11.2007, 20:44
Wie lang sind die Kabel vom Display bis zum µC? Wenn es am Timing liegen sollte kann man mal in Bascom die Frequenz höher stellen dann generiert Bascom längere pausen.

Blamaster
09.11.2007, 21:03
@ Rofo hört sich gut an, kannst du das nochmal genauer erklären ?

@ Digitali. Das kann auch gut Sein. Das ganze ist an einem nicht eigengebautem "eigenbau" Netzteil angeschlossen. Was würde sich denn als Spannungsquelle empfehlen ?

Rofo88
09.11.2007, 21:25
Wie sieht denn den Netzteil aus?? Ein 8705 mit den passenden Kondensatoren sollte für ne stabile Spannung reichen und kostet nich die Welt.

zum Timing mit Bascom : die Zeit die die Signale vom µC am Display anstehen müssen sind größer länger als der µC eigentlich braucht. Also macht das Programm zwichen den einzelnen Befehlen zum Display ein paar pausen. Wenn man Bascom jetzt sagt das der Takt 25 MHz ($crystal) ist aber real nur 16MHz sollte es größere pausen generrieren. Alternativ könnte man den Takt des µCs auch kleiner einstellen.

Ich glaube zwar ned das es am Timing liegt weil die Zeichen von Hello World ja auch ankommen aber versuchen kann man es ja.

MfG

Blamaster
09.11.2007, 21:37
Die Frage ist ja einfach die wieso kommt nix auf dem Display an, wenn ich es nur anschließe ?

Wieso ist erst was zu sehen wenn ich praktisch ein Massekabel an bin DB5 lege und reset drücke.

Rofo88
09.11.2007, 21:52
Versuche doch mal das Display auf nen anderen Port zu legen wie PortD oder so.

Zapo.
09.11.2007, 22:54
das geht mit jedem Port! - auch das timing ist bei diesen Displays sicherlich nicht der Grund...
wenn so chaotische Sachen angezeigt werden stimmt evt. der interne takt nicht bzw. steht auf ext. und es hängt kein passender oder überhaupt kein Quarz dran! - versuche den internen Takt auf 1 bzw. 8 Mhz einstellen und vergiss logischerweise auch die Quelltextzeile nicht zu ändern. ($crystal....)

Rofo88
09.11.2007, 23:06
Das es mit jedem Port funktioniert ist schon klar aber es kann ja sein das der Port nen treffer hat oder da irgendwo ein wackliger drinn is drumm mal nen anderer Port versuchen.

blackstripes
10.11.2007, 09:30
Also ich habe auch ein Problem mit dem TC1602A-09.
Bei mir ist die Anschlussleiste allerdings unter dem Display.
Ich habe alles probiert, alle anschlußmöglichkeiten und so weiter!
Ein Kollege hat sich es angeguckt und meinte es wird nicht initialisiert.
Ich habe die Library von Peter Fleury und das LCD Test Programm dazu und es läuft einfach nicht!

lg

Zapo.
10.11.2007, 10:56
so leute.. siehe Bild...

LCD-Modul TC1602A-09

von Pollin für 7,95 Euro

funktion --> einwandfrei! genau das was ich auch bestellt hatte!

Blamaster
10.11.2007, 14:38
Wieso sieht mein Display eigentlich anders aus als das TC1602A-09 von Zapo oO. Kann es dann auch sein das mein TC1602A-09 ne andere Pin Belegung hat oder sowas ?

Zapo.
10.11.2007, 17:52
du hast ein TC1602E
ich ein TC1602A-09
(deshalb sehen die Teile auch anders aus!)

Datenblatt habe ich dir schon bereitgestellt.
Datenblatt meines Displays ist bei pollin runterzuladen!

du solltest dein Datenblatt zum anschließen benutzen..!

Zapo.

Blamaster
10.11.2007, 17:58
Ich hab mein Datenblatt zum anschließen benutzt ;) Nur das scheint ja auch nicht wirklich zu funzen.

Habs jetzt alternativ nochmal mit einem Mega8 versucht. Das brachte allerdings auch keinen Unterschied.

Kann mir irgenjemand von euch erklären wie ich die Flurey Lib Compiliere ?

Das ist der letzte Versuch den ich mit diesem Display noch versuchen werde.

blackstripes
11.11.2007, 17:22
@ zapo

Kannst du mir dein Programm bereit stellen mit dem du das Display ansprichst? Damit ich mal vergleichen kann, vielleicht finde ich ja dann meinen Fehler!
Arbeitest du mit Assembler oder C?

lg

Zapo.
11.11.2007, 18:30
ich benutze BASCOM - schaue auf die erste Seite, mehr ist es nicht!

man muß nur das Display nach Datenblatt anschließen - D4-D7 und die Steuersignale - Hintergrundbel. nicht vergessen und fertig!

Blamaster
11.11.2007, 21:04
Wieso sollte man die Hintergrundbeleuchtung nicht vergessen ?

blackstripes
18.11.2007, 13:56
Also ich konnte mein problem lösen! Ich programmiere allerdings mit C!
Ich habe jetzt einfach nen ATMega 16 genommen genauso angeschlossen und siehe da es funktioniert sofort!