Forum: Mikrocontroller und Digitale Elektronik 44780 LCD memory mapped an AVR bei 14,7MHz?


von Markus (Gast)


Lesenswert?

Hi,
ich plane gerade an einer Platine bei der ich eigentlich ein ASCII 
Display memory mapped an einen mit 14,7456MHz getakteten AVR anschließen 
wollte. Mir ist aber gerade brühwarm eingefallen das ich das vor ein 
paar Jahren mal mit einem AT90S8515 auf dem STK200 schonmal gemacht 
hatte und das es dabei Probleme gab. Wenn ich mich richtig erinnere hat 
es nur bis 4MHz funktionieriert, bei 8MHz musste ich ein Waitstate 
aktivieren.

Bevor ich jetzt stundenlang erfolglos rumprobieren und Zeit verplempere 
frag ich lieber mal kurz ob neuere Displays damit eher klar kommen oder 
ob es einen anderen Weg gibt. Ich möchte nämlich ungern einen extra Port 
für das Display opfern oder den AVR runterzutakten.

Hat da jemand nen Tip? Ich weiß leider nicht genau um welchen 
Displaytreiber es sich handelt.

Gruß
Markus

von Michael S. (mst)


Lesenswert?

Hallo Markus,

die wait-states haben doch eigentlich nichts mit einem evtl. busshare 
(memory mapped) zu tun...

System bei mir: CAN128@10MHz bei 3,3V mit 128kx8 SRAM@8ns;

Ich betreibe einen CAN128 und ein HD44... irgendwas Controller am selben 
BUS. Eigentlich keine Probleme. Das einzige worauf du achten musst, das 
EMIF darf in irgendwelchen INT's nicht auf den BUS zugreifen wollen 
solange du auf's display schreibst. Hatte da Anfangs etwas 
schwierigkeiten, aber mit konsequentem logischen Organisieren des ext. 
Spreicher gehts... :)

Gruß Micha,

von psavr (Gast)


Lesenswert?

Auf jeden Fall musst Du die im Datenblatt des 44780 angegebenen Timings 
einhalten,vermutlich geht das bei 14.7456 MHz nicht ohne Waitstates!

Aber das sollte ja überhaupt keine Rolle spielen, das Display ist auch 
dann noch um ein vielfaches schneller als "Mensch" lesen kann...!

von Markus (Gast)


Lesenswert?

Mhm, ok, danke. Dann werd ich es doch mal ausprobieren. Welche 
Schaltungsvariante empfehlt ihr mir? Möchte die Adresse einigermaßen gut 
auflösen ohne gleich ein GAL einzusetzen. Hab zb bei Peter Fleury was 
gefunden, aber das ist nur die Minimalbeschaltung

von Matthias (Gast)


Lesenswert?

Das gleiche Versuche ich auch gerade, aber mit 16MHz.
Ein Blick ins Datenblatt gibt da viele Antworten. Worauf du eingentlich 
nur achten musst ist :
Beim Initialisieren genug Zeit lassen, was aber kein Problem ist da das 
Display ja nur einmal initialisiert wird und es da egal ist ob es 10ms 
länger dauert.
Die meisten Timings sind kein Problem. Nur auf das Enable musst du 
aufpassen. Da will das Display 250ns für High und genauso viel für Low.
Bei 14,7456MHz dauert ein Takt 68ns.Also musst du nach dem du Enable 
High bzw. Low geschalten hast noch ein paar NOP Befehle einfügen.

von Markus (Gast)


Lesenswert?

Hm, mit NOPs das Timing für den externen Bus zu verlängern geht doch gar 
nicht, zumindest würde es mich wundern. Das Timing von ALE, RD und WR 
ist festgelegt. Oder gibt es was das ich noch nicht weiß?

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
Noch kein Account? Hier anmelden.