mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C167 und HD44780


Autor: Marc Reibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei der Suche nach einer Lösung meines Problemes bin ich hier im Forum 
gelandet. Ich hab mir vor einiger Zeit ein C167-Board gebastelt, was 
auch ganz gut funktioniert. Nun war ich es leid ewig über RS232 zu 
"debuggen" und hab ein 2x16 LCD bzw ein 2x40 LCD angeschlossen. Beide 
alternativ. Beide über Port 2.
P2.0 bis P2.7 als Daten und P2.8-P2.10 als RS,RW und E.
Nach einigem fummeln gibt er auch die ersten Texte aus, doch Starten die 
Zeilen immer mit einem nicht von mir geschriebenen Zeichen. Auch 
funktioniert der Set-DRAM-Addressbefehl und einige andere nur nach 
zweimaliger Anwendung hintereinander.
z.B. ... Schreiben a, schreiben l, clear display, clear display.
Ich bin da ziemlich ratlos und hoffe Ihr könnt mir weiterhelfen.

MfG,

Marc

Autor: Meiserl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BUSY-Flag vom Modul eingelesen?
Vielleicht schickst du dem Modul schon Daten bevor es sie noch
verarbeiten kann.

Oder am einfachsten mal probieren zwischen dein Befehlen
ein Pause einfügen.

Autor: Marc Reibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Hmm,

busy Flag funktioniert nicht so richtig.
Irgendwie hab ichs noch nicht raus, den Port zum lesen auf Input zu 
setzen. Und folgendes hab ich vergessen zu sagen. Auch bei normaler 
Textausgabe gibt er nur das vorletzt ausgegebene Zeichen aus.
Wenn ich also "Hallo Welt" an das Display schicke, kommt nur "Hallo 
Wel". Ich hab ja fast das Flachbandkabel und damit verbundene 
Timingprobleme in Verdacht. Alle Beispiele von anderen langsameren 
Controllern konnte ich vergessen, da war der C167 zu schnell für das 
Display. Auch mit beliebigen Wartezeiten von 50 ms bis 500 ms hab ich 
alles Probiert. Er gibt dann zwar Text aus, aber mit den beschriebenen 
Symptomen :(.
Keiner hier, der mal ein Assemblerbeispiel hätte, das wissentlich auf 
nem C166 C167 oder ST10 läuft ?
Erfahrungen mit Timingproblemen oder Flachbandkabeln ?
So langsam bin ich am verzweifeln ;)


MfG,

Marc

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marc,

> Auch mit beliebigen
> Wartezeiten von 50 ms bis 500 ms hab ich alles Probiert. Er
> gibt dann zwar Text aus, aber mit den beschriebenen Symptomen
> :(.

versuch mal den Enable-Puls länger zu machen, indem du zwischen löschen 
und setzen des Enable-Bits eine Wartezeit einfügst.

MfG
Andreas

Autor: Marc Reibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

hab mir alle Ratschläge zu Herzen genommen und nochmal die
Bustimings des HD44780 Datenblatts mit meinem Code abgestimmt.
Das Listing im Anhang sollte das Display initialisieren und
"Hallo" ausgeben ( mit Busyflagauswertung ). Doch irgendwie
kommt nie das selbe Raus. Mal kommt nix, mal nur ein HLL, doch meist nur 
der Standart, den ich auch ohne Busyflag erhalten habe:
Das Zeichen 255 gefolgt von Hall, ohne o :((.
Woher kommt das Phantomzeichen 255 und wieso verschluckt der ein paar 
Buchstaben ? Noch immer Timing ? Ist doch eigentlich nach Spec.

Achja, die Portbelegung :
P2.0-P2.7 D0-D7
P2.8 RS
P2.9 RW
P2.10 E

Vielleicht noch ein paar Vorschläge ?

Thanx

Marc

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Marc,
ich hatte bei meinem Reichelt 4x16 (bis gestern) auch jede Menge 
Probleme. Display Controller KS0070B.
Was mir letztlich Erfolg gebracht hat, waren 10k Pullup-Widerstände an 
den Datenleitungen.
Hab das Ding über 20 cm Flachbandkabel angeschlossen. Kann sein, daß 
darüber Störungen reinkommen.
Vielleicht hilft's ja auch bei Dir.

Good Luck, Gunter

Autor: Ingo Busker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe das Display in den Datenbus/Adressbus gehängt - einfacher kann 
man den Zugriff kaum realisieren. CS-Leitungen sollen ja genug vorhanden 
sein.
Das Problem mit dem Lesen hat sich dann auch erledigt, ansonsten 
muesstest Du das Port-Direction-Reg immer manuell umschalten.

Wenn Du ein langen Flachbandkabel verwenden musst, wäre ein Bustreiber 
eine gute Idee, um den Daten/Adressbus nicht über riesige Entfernungen 
zu führen (wäre wohl keine so gute Idee).

Man kann auch auf das Busy-Flag verzichten, muss allerdings dem Display 
genung Zeit zum Ausführen der Befehl lassen...

Bis dann,
           Ingo!

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hast du jetzt schon eine Lösung für dein Problem?
Würdest du mir mal deinen Code schicken?
Hab da einen Bekannten der da mit Sicherheit ne Lösung kennt.
Wenn du Interesse hast dann den Code an:
karsten-mueller87@gmx.de

MFG

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>hast du jetzt schon eine Lösung für dein Problem?
Nach 8 Jahren? Nee, der sitzt bestimmt noch vor'm Rechner und wartet auf 
ne Antwort ;)

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh :-D

hab nur des Anfangsdatum gelesen und nciht das Jahr:
Aber danke für den Tipp ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.