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.
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.
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.
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.
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 ?!
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.
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
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.
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
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
Verwendest du ein fertiges Ethernet Modul oder eine alte Netzwerkkarte ?
Handelt sich um ein Wiznet-Modul (www.iinchip.com) W7010 bzw W7000.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.