mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik M16C und LCD (memory mapped)


Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !!

Ich arbeite an einem Projekt bei dem der M16C/62P verwendet wird. Jetzt
soll "auf die schnelle" noch ein LC-Display zum Schaltplan
hinzukommen. Konkret geht es um eines mit dem ST7036-Controller. Dieses
ist, wenn ich mich nicht irgendwo arg verschaut habe, kompatibel mit den
HD44780ern.

Um das Display jetzt einzubinden habe ich zwei Möglichkeiten; entweder
über das serielle Interface dieses Controllers (SPI) oder aber über den
Adressraum. Letzteres wäre mir auf jeden Fall lieber.

Bin aber jetzt draufgekommen (bzw hatte ich es vergessen, da ich das
bis jetzt immer nur über die Portpins direkt gemacht habe), daß die
Ansteuerung des LCDs über den Adress/Datenbus etwas anders zu machen
ist als für "gewöhnliche" Bausteine wie zb. RAMs.

Meine Frage ist nun, wie man das am besten bewerkstelligt, wenn das
Display an die (bzw AB der) Adresse 0x28000 (d.h. /CS1 wird aktiv und
steht auch zur Verfügung;  Memory Expansion Mode) eingeblendet werden
soll. Ob 4-, oder 8-Bit Modus ist eigentlich egal.
Folgende Leitungen stehen also zur Verfügung: /CS1, D0:D7, A0:A15 (bzw
A0:A19), /WR und /RD
Rein prinzipiell ist es mir klar, aber das ganze sollte mit so wenigen
zusätzlichen Bauteilen wie nur möglich auskommen und auch sicher
funktionieren.

mit besten Grüßen,
Thomas B.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke kaum, dass es funktionieren wird.
Der 44780 ist sehr langsam. Selbst mit einem T6963 LCD musste ich
maximale Wait States einfügen, damit es ging.
Beim 44780 wird es am besten sein, dieses per Software anzusteuern, da
kannst du das Timing besser steuern.

Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade schade.
Ist der M16C denn wirklich so viel schneller als der C167er ? Denn da
hatte ich schon mal ein Display, das über die Adresse angesprochen
wurde (wenn ich mich recht erinnere war das ein kitCON C167
Starterkit).

Werds dann halt doch über die serielle Anbindung machen müssen; find
ich irgendwie schade, jetzt wo ich (im Gegensatz zum 8051er) endlich
mal nen richtig großen Adressraum zur Verfügung hab ;)

mit freundlichen Grüßen,
Thomas B.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der M16C kann 4MB ist schon ganz OK (könnte aber mehr sein, bzw. ein
DRAM Controller wäre schön).
Du kannst es ja mal versuchen mit maximalen Wait States.
Mit 1 Wait State lief das 6963 LCD nur mit 10 cm Kabel und ab und zu
Fehlern. Mit maximalen Wait States ging es dann auch mit 30cm Kabel.

Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja also das Display wird bei mir grad mal 3 bis 5 cm vom Prozessor
entfernt sein; auf einer Top-Platine mit LEDs und Tastern.

Was für eine zusätzliche Beschaltung hast du da für dein Display ??
Direkt an den Bus ranhängen kann ich das Teil ja glaub ich nicht, oder
?!

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise reicht es WR und RD mit einem NAND Gatter zu verknüpfen um
das Enable Signal für den 44780 zu erzeugen.
Da ja genügend freie Adressen vorhanden sind, kann man etwas
verschwenderisch sein und RS und RW je eine eigene Adressleitung
spendieren.

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Vorteile hat es denn einen 44780 in den Adressbereich
einzublenden? Wird es dadurch viel einfacher, als das ganze in Software
zu machen?

Danke schon mal für die Antwort

Gruß
Volker

Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi !!

@Volker

Naja einfacher. Bessere Kontrolle hast, wie auch Benedikt schon
geschrieben hat, wenn mans über die Portpins macht; allerdings muss man
diese eben mal frei haben.
Memory Mapped find ich irgendwie vom Programmieren her komfortabler,
weil man hier die gewünschten Befehle und Daten einfach an die
festgelegte Adresse schreibt und fertig.....
Allerdings muss das ganze Ding mal richtig angeschlossen sein und vom
Timing her auch funktionieren (dieses is ja dann durch den
Adress/Datenbus vorgegeben).... genau das war/ist ja mein Problem und
der Grund für diesen Post ;)

@Benedikt

Besten Dank, werd das mal gedanklich so verdrahten und mir das Timing
dann näher anschaun. Blick mich da im bei den Timingdiagrammen im
Datenblatt vom M16C noch ne 100% durch...

Grüße,
Thomas B.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

für den Adr. - und Datenbus gehen doch viel mehr Portpins drauf, als
wenn man das Display direkt (über Ports) ansteuert?
Oder verstehe ich das falsch?
Vielen dank für eine Antwort/Erklärung.

Grüße
Lutz

Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lutz !

Ja das stimmt schon, daß für den Bus mehr Pins draufgehn als wenn man
das LCD direkt ansteuert.
Allerdings ist es bei mir so, daß ich den Bus sowieso brauche. Habe
diverse Peripherie dranhängen: CF-Karte, RAM, Ethernet-Modul, eventuell
dann jetzt LCD. Jeder von denen bekommt eben einen eigenen Adressbereich
zugewiesen über den ich das Ding dann ansprechen kann (Die CS-Signale
macht man sich dann selber oder nimmt , wie im Falle vom M16C, schon
die verfügbaren).

Grüße,
Thomas

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwendest du ein fertiges Ethernet Modul oder eine alte Netzwerkkarte ?

Autor: Thomas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Handelt sich um ein Wiznet-Modul (www.iinchip.com) W7010  bzw W7000.

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.