44780 LCD memory mapped an AVR bei 14,7MHz?

Gast #453622
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
#453655
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,
Gast #453668
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...!
Gast #453672
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
Gast #453678
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.
Gast #453694
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ß?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren