PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anschluss eines 4x20 LCD



gulliver
17.08.2005, 14:49
Hallo Leute

Bin auf der Suche nach einer Anschlussmöglichkeit für ein 4x20-LCD von Reichelt. Es hat zwei Anschlussreihen, die sich nur in den EN-Pins unterscheiden. Ich habe auch das Problem der nur zweizeiligen Anzeige.
Meine Frage:
Kann ich die gleichnamigen Pin einfach parallel schalten, oder fackelt mir das Display dabei ab?

Habe schon den halben Tag nach einer Antwort gesucht, bisher aber vergebens. Nachdem ich diesen Thread

https://www.roboternetz.de/phpBB2/viewtopic.php?t=5832

gelesen habe, bin ich völlig verwirrt. Die Datenleitungen sind im Bild an den unteren 4 Bit angeschlossen, sollten aber an den Oberen angeschlossen sein, oder irre ich mich da. Besonders nach dem Kommentar von tobimc "Hardware sieht soweit gut aus". Nun weiss ich aber nicht, ob er sich genau auf dieses Bild bezieht. Er ist aber als Robbi-Experte ausgewiesen, also kann ich davon ausgehen, daß er kompetent ist.

Ich hoffe, jemand kann mit einer kurzen und klaren Antwort meine schlaflosen Nächte beenden. Danke schon mal im voraus.

mfg gulliver

fwallenwein
17.08.2005, 15:56
Verrätst Du uns wie Dein Display heisst ?
Es macht es einfach leichter zu antworten, wenn man weiss um was es geht ? :-b



Gruss
Frank


--
Hallo Werkstatt - mein Auto macht so komische Geräusche. Was kostet die Reperatur ?

ProgDom
17.08.2005, 16:11
Normalerweise sind die Datenleitung an den oberen 4Bit angeschlossen.
Du kannst auch nocheinmal hier schauen: http://www.mikrocontroller.net/tutorial/lcd
Vielleicht hilft dir das auch ein wenig.

gulliver
17.08.2005, 23:22
Es ist das 4x20-LCD von Reichelt unter der Bestellnummer LCD 204B LED,
Controller: LSI KS0076B.
Ich möchte mir eine Platine dafür anfertigen um Anzeigen im 4- und 8-Bit-Modus zu realisieren, also so etwas wie eine Experimentierplatine.

Da die Anschlüsse doppelt sind, weiß ich nicht, ob ich sie einfach parallel anschließen kann. Aus dem Datenblatt ist dies nicht ersichtlich und verheizen möchte ich das Teil schon garnicht (kostet ja immerhin über 20 Euronen).

Ich habe alle möglichen Links durchgekämmt, aber nur etwas über Initialisierung und Ansteuerung gefunden. Nirgens habe ich etwas über die hardwaremäßige Geschichte in Erfahrung bringen können. Vielleicht stelle ich mir aber auch nur zu dämlich an und sehe den Wald vor lauter Bäumen nicht.
Mikrocontroller.net ist mir auch sehr vertraut.

mfg Roger

fwallenwein
17.08.2005, 23:49
Es ist das 4x20-LCD von Reichelt unter der Bestellnummer LCD 204B LED,
Controller: LSI KS0076B.
Da die Anschlüsse doppelt sind, weiß ich nicht, ob ich sie einfach parallel anschließen kann. Vielleicht stelle ich mir aber auch nur zu dämlich an und sehe den Wald vor lauter Bäumen nicht.
mfg Roger



Es hat zwei Anschlussreihen, die sich nur in den EN-Pins unterscheiden


Hallo Roger,
vielleicht sehe auch Ich den Wald vor lauter Bäumen nicht - ABER :

Ich hab mir mal das Datenbaltt geholt.
Ich kann da keine Unterschiedlichen EN Pins entdecken.
Für mich steht da :

Pin 1,17 VSS
Pin 2,18 VDD
...
Pin 6,22 E
Pin 7,23 DB0
usw.


und für mich bedeutet das, dass die Pins parallel geschaltet sind und Du nur eine von beiden Pinreihen anschliessen musst.

... oder hab ich die unterschiedlichen EN Pin's doch irgenwo übersehen.
Wo hast Du denn das gelesen ?

Gruss
Frank

gulliver
18.08.2005, 09:33
Hallo Frank

Mit EN meinte ich Enable,also die E-Pins 6 und 22. Ich habe das nur mit einer Pinreihe angeschlossen und ich kriege es einfach nicht dazu, mir alle 4 Zeilen anzuzeigen. Darum dachte ich in meiner Ausweglosigkeit, daß ich jeden Controller einzeln ansprechen muß. Das würde aber bedeuten, daß ich noch einen Port, einen zweiten Satz Steuerleitungen (RS, R/W u. E) und vielleicht noch einen Datenport benötigen würde. Das wäre ja völlig unsinnig und ich dachte mir, vielleicht muß ich jeden Controller über E einzeln einschalten, was aber nichts gebracht hat.

Ich habe es mir aber noch nicht getraut, diese beiden Pinreihen einfach parallel anzuschließen. Deshalb wollte ich mal von jemandem, der solch ein LCD schon in Betrieb hat, hören, wie das Teil denn nun verlötet wird.

Instinktiv würde ich die Pinreihen parallel schalten, denn das würde ja in dieser rationalen Welt einen Sinn machen, aber wie gesagt ich traue mich nicht.

Deinen letzten Ausführungen entnehme ich aber aber genau dieses und es ist wahrscheinlich meine Initalisierung. Ich habe aus dem Netz noch keine LCD-Routine 1:1 übernehmen und nach entsprechender Anpassung des Include-Pfades, des MC, der Ports usw. zum Laufen bekommen. Darum bin ich ziemlich frustriert.

mfg Roger

cavegn
18.08.2005, 09:45
hi

hast du die library von P. Fleury schon versucht? die funktioniert bei mir einwandfrei:
http://homepage.sunrise.ch/mysunrise/peterfleury/avr-software.html#libs

die lib sollte auch mit deinem lcd controller funktionieren

cu

chris

gulliver
18.08.2005, 13:02
Hallo Chris

Die lib von Fleury habe ich mir schon angesehen. Dabei habe ich zwei Feinde: englisch und C, ich komme mit beiden nicht so richtig klar.
Außerdem ist es ja nur eine Bibliothek. Ich brauche ein komplettes Assemblerprogramm, in dem eine LCD von der Initalisierung bis zum Datenhandling beschrieben ist, und das auch noch im 4-Bit-Modus. Es sollte bei dem, der es ins Netz stellt auch laufen und nicht eben mal schnell aus dem Gedächtnis dahergeschrieben und dann mit dem Kommentar "so müßte es gehen" oder so ungefähr versehen sein. Das hilft einem Neuling überhaupt nicht.
Im 8-Bit-Modus habe ich keine Probleme (allerding mit einem 2x16 LCD von Reichelt), nur das 4-zeilige LCD will nicht mit mir spielen.


In diesem Programm erscheint in der ersten Zeile "AT90S2313" und in der zweiten Zeile "LCD-Routine". Ich mußte es mal so ausdrücken, weil ich nicht mehr weiß, wer die Quelle ist. Der eine oder andere von euch wird es bestimmt schon mal in der Mache gehabt haben und kennt es womöglich.

Es ist eine 8-bittige Version. Diese lief bei mir aber auch nicht so richtig. Der ganze Initialisierungsteil fehlte und es ging gleich zur Sache. Das merkte man nach einem Reset. Dann sollte es eigentlich ganz sauber von vorn anfangen und nicht Wortbruchstücke mitten in der Zeile anzeigen. Dies hatte ich aber einigermaßen in den Griff bekommen.

Bei mir steckt der Wurm im 4-Bit-Modus. Vielleicht sollte ich das ganze Internet einfach mal vergessen, tief Luft holen und nur mit dem LCD-Datenblatt arbeiten und mir selbst das Programm erarbeiten, denn je mehr ich im Netz recherchiere um so verwirrter werde ich. Aber warum soll ich das Fahrrad noch mal erfinden, wenn es dieses schon tausendfach gibt.

mfg Roger

cavegn
18.08.2005, 13:21
hi

willst du generell nicht in c programmieren oder hat das andere hintergründe?
wenns aus performance-gründen ist, würde ich empfehlen, in c zu programmieren und bei den zeitkritischen aktionen wenn notwendig assember zu verwenden - aber im normalfall ist auch c genügend schnell.

ist schon so - ich hab dir ne lib angegeben - aber ausser dass sie in c geschrieben ist, kann sie alles, was du voraussetzt.

du musst im headerfile ein paar (selbsterklärende) defines anpassen, dannach reicht der folgende code, um den 4-Zeilen modus zu aktivieren und etwas auf's display zu schreiben:

lcd_init(LCD_DISP_ON);
lcd_clrscr();
lcd_puts("Zeile1\n");
lcd_puts("Zeile2\n");
lcd_puts("Zeile3\n");
lcd_puts("Zeile4\n");

wenn du wirklich asm willst, könntest du auch n demoprogramm in c schreiben, das ganze kompilieren und schauen, was der compiler für asm-code daraus generiert.

cu

chris

gulliver
18.08.2005, 14:05
Hallo Chris

Ich würde gern in C programmieren, nur es ist mir zu umständlich und auch zum Teil undurchsichtig. Es würde für mich wieder Einarbeitung, Handling mit dem Compiler, die Make-Dateien usw bedeuten. Da ich mit Assembler angefangen habe, möchte ich auch dabei bleiben, auch wenn man dabei ziemlich schreibwütig werden kann.

Wenn ich das Prozedere der Compilierung in C beherrsche und mit den AVR's in Assembler locker umgehen kann, werde ich wohl in C einsteigen, denn einige Sachen lassen sich in C oder einer anderen Hochsprache doch einfacher lösen. Pascal dagegen ist übrigens sehr einfach im Umgang. Jetzt bin ich aber noch in der tiefsten Lernphase mit Assembler, mit dem ich übrigens schon ganz gut zurechtkomme, ich meine mit der Programmierung.

Übrigens, die Quelle von meinem eben erwähnten Programm ist das AVR-Microcontroller-Praxis-Buch von Volpe, Elektorverlag. So etwas Oberflächliches auch noch als Fachbuch zu bezeichnen ist ja der Hammer.
Frust ist da, wie in meinem Fall, vorprogrammiert.

mfg Roger

gulliver
20.08.2005, 15:42
Es hat sich erledigt, es lag am Steckbrett. Das Problem hat sich in Luft aufgelöst und darum möchte ich diesen Beitrag schließen.

Vom LCD hatte ich erstmal die Schnauze voll und habe mich zwischendurch mal mit was ganz anderem beschäftigt. Den 2313 hatte ich nur gegen einen 8515 gewechselt, also das darin enthaltene Programm wurde nicht geändert.

Heute hatte ich wieder mal Antrieb, mir mit diesem verfl.. LCD zu beschäftigen. Alles verklemmt, überprüft und siehe da - es zeigte sich eine ganz anderes Bild der Anzeige. In dem Moment wußte ich, wo der Hund begraben liegt.

Als Verbindungen benutze ich flexible Litze, an die Stiftleisten gelötet sind (Reichelt, Best.Nr. SL 1X...). Diese passen sehr gut und stramm ins Steckbrett und weiten anscheinend dessen Federkontakte.
Dann ist es kein Wunder, wenn die Schaltungen sich hin und wieder etwas seltsam verhalten. Werde wohl auf stabile Drahtenden umstellen müssen.

Hätte ich nicht neu aufgebaut, dann wäre ich bis zum Nimmerleinstag mit dem LCD beschäftigt und vor lauter Frust womöglich noch suizidgefährdet.

mfg Roger