Grafik-LCD Controller mit AVR und VRAM

#905326
Lesenswert?

64Kx4:  ArtikelNr 41264-ZIP120, steht aber MB81461 drauf.
256Kx4: ArtikelNr 524258AZ-10.

Für letztere war nur ein japanisches Pinout und ein Datasheet vom 
TC524258B aufzutreiben, aber das dürfte sich nicht signifikant 
unterscheiden.

Die ZIP-Gehäuse sind netterweise ziemlich lochraster- 
prototypenfreundlich, denn die Pins lassen sich problemlos so 
zurechtbiegen, dass sie in Präzisionssockelleisten passen. Und 
platzsparend sind sie zudem auch.
#909803
Lesenswert?

Man kann das Gatter-IC auch einsparen, indem der Shift/LCD-Takt per 
Software erzeugt wird. Dann allerdings, um Zeit zu sparen, vorzugsweise 
mit maximalem Takt (8-10MHz), was zwar weit über dem offiziellen Takt 
des Displays liegt, aber trotzdem problemlos funktioniert.

Bei der Erzeugung der Displayspannung ist hier der Anschluss eines 
separaten Kontrastpotis vorgesehen. Ein Poti im Wandler ist dafür u.U. 
nicht sonderlich praktisch, denn das sollte sehr dicht am Wandler 
sitzen.

Als Controller ist so ziemlich jeder AVR ab 40 Pins und 16KB ROM 
einsetzbar, also auch ATmega16/32 - insbesondere auch der ATmega162 mit 
seinen 3 zusätzlichen Portpins.

Anzahl und Grösse der ins Programm integrierbaren Fonts ist natürlich 
von der ROM-Kapazität begrenzt. Mit grossem 48x32-Font sind 64KB 
erforderlich, für die 3 kleinen Fonts (8x6,10x8,12x8) reichen 16KB aus.
Angehängte Dateien:
#920441
Lesenswert?

Spricht nichts dagegen, die sehen im Prinzip genauso aus wie die schon 
erwähnten Typen, nur breiter. Zwar sind ein paar Pinbezeichnungen 
anders, aber die üblichen Modi sind alle dabei und gleich gesteuert wie 
bei den 64Kx4 und 256Kx4.

Ist zwar EDO statt FPM, aber das ist egal.

Da Byte-Enables vorhanden sind, könnten die sogar mit pinsparendem 
8bit-Bus seitens des Controllers arbeiten. Wenn man die 16bit Breite für 
SVGA/TFT braucht.

Wenn du die gesamte Kapazität brauchst, also auch A8, dann musst du halt 
den Code etwas umstricken, denn in dem hier gezeigten Code sind nur 8 
Adressbits drin und das macht den Zyklus etwas einfacher und schneller.
#920527
Lesenswert?

Bei Benedikt wird der Speicher als externes SRAM vom AVR selbst 
angesteuert, daher gilt das Zeitverhalten eines externen SRAMs aus dem 
AVR Datasheet. Ich weiss aber nicht, ob man da wirklich 15ns benötigt, 
oder ob er einfach nur so ein Ding rumliegen hatte.

Bei mir wird das VRAM fast (SC per Timer) bis ganz (SC per Software) vom 
AVR zu Fuss gesteuert, d.h. mit Pingewackel in Software. Was kein 
Problem ist, weil man pro Zeile nur einen einzigen VRAM Transfer-Zyklus 
(plus Refresh) benötigt, den Rest macht das VRAM per SC ja selber.

Lies dir mal durch was ein VRAM ist, dann wird's evtl. klarer.
#920537
Lesenswert?

Andreas Kaiser wrote:
> Bei Benedikt wird der Speicher als externes SRAM vom AVR selbst
> angesteuert, daher gilt das Zeitverhalten eines externen SRAMs aus dem
> AVR Datasheet. Ich weiss aber nicht, ob man da wirklich 15ns benötigt,
> oder ob er einfach nur so ein Ding rumliegen hatte.

Das Datenblatt schreibt eigentlich ein noch strengeres Timing vor. Es 
gehen aber bis etwa 35ns, darüber gibt es Problem. Dies liegt daran, 
dass bei 16MHz ein Takt nur 62,5ns lang sind und in dieser Zeit die 
Daten auch noch eingelesen werden müssen.

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