Display Reichelt TFT-DIS 4,3 LCD-Modul Fragen zum Timing

OP #1981471
Lesenswert?

Um das Suchen für andere zu vereinfachen hier erst mal ein paar Begriffe 
nach denen andere suchen könnten:
ELECTRONIC DATA TECH GET0430G0DM6

Reichelt hat ja zur Zeit eine Reihe von relativ günstigen digital 
ansteuerbaren LCD-Modulen.

Weiß jemand, wie weit man die Module untertakten kann? Laufen die Module 
auch mit unregelmäßigen Takt, sprich kann man beispielsweise ein paar 
Pixel senden, und dann eine Pause einlegen?
Gast #1981715
Lesenswert?

>Weiß jemand, wie weit man die Module untertakten kann? Laufen die Module
>auch mit unregelmäßigen Takt, sprich kann man beispielsweise ein paar
>Pixel senden, und dann eine Pause einlegen?

Die EDT-Module kann man unter- und übertakten. Beim Untertakten wird 
Flimmern auftreten (<20-30Hz) und ein Neubeschreiben erfolgt "zackig". 
Beim Übertakten wird die Schrift irgendwann unscharf.
Man kann durchaus die Bilddaten als "bursts" ausgeben, zwischen denen 
eine Pause liegt.

Hast Du eine bestimmte Anwendung im Auge, die Deine Anfrage präzisiert?
Gast #1981750
Lesenswert?

Hast Du mal gerechnet?

480 x 272 = 130560. Soviel Byte Speicher braucht man für ein Bild auf 
4,3" Display bei 8Bit/Pixel (256 Farben). Bei 60Hz Wiedergabe werden ca. 
9MHz Taktfrequenz benötigt. Falls man nur 15Bilder/s ausgeben will, muß 
die mittlere Taktfrequenz etwa 2,3MHz betragen. Welcher ATmega soll das 
denn leisten?

Um den Controller für die Anzeige zu sparen, braucht man einen 32Bit 
Prozessor (oder sehr schnellen 16Bit) mit zusätzlichem DMA-Controller. 
Alles andere ist Krampf!
OP #1981789
Lesenswert?

Ähm, 480x272 kann man auch als 30x17 Zeichen mit 16x16 Pixel Buchstaben 
ansehen. Dann bist Du bei 510 Bytes plus Farbe. Nicht jeder braucht 
Vollgraphik.

Über SPI kann man mit einem 16 MHz ATMega Pixel mit 8MHz ausgeben. Da 
allerdings nur ein Bit.

Beschränkt man sich darauf vorgefertigte Blöcke aus dem ROM auszugeben, 
so kann man alle 4 Taktzyklen ein Zeichen ausgeben. Plus 8 Taktzyklen am 
Anfang des Blocks. Beschränkt man sich auf 4 Bit Farbtiefe so kann man 
die 8 Taktzyklen auch noch während der Ausgabe der Zeichen unterbringen.

Grob skizziert sähe der Code dafür so aus: (die Zahlen dahinter geben 
die Nummer des Taktzyklusses an)
1
LPM r16,Z+    ;1-3 
2
OUT PortX,r16 ;4  Pixel
3
SWAP r16      ;5
4
LD r17,X+     ;5-7
5
OUT PortX,r16 ;8  Pixel
6
LPM r16,Z+    ;9-11
7
OUT PortX,r16 ;12 Pixel
8
SWAP 16       ;13
9
MUL r17,r18   ;14-15 ;in r18 steht die Breites des Blockes drin
10
OUT PortX,r16 ;16 Pixel
11
LPM r16,Z+    ;17-19
12
OUT PortX,r16 ;20 Pixel
13
SWAP r16      ;21
14
ADD r0,r19    ;22   in r20,r19 steht der Grundpointer drin
15
ADC r1,r20    ;23
16
OUT PortX,r16 ;24 Pixel
17
LPM r16,Z+    ;25-27
18
OUT PortX,r16 ;28 Pixel
19
SWAP r16      ;29
20
MOVW Zh:Zl,r1:r0 ;30
21
NOP !!!!!!!!  ;r31
22
OUT PortX,r16 ;32 Pixel

Mit dem NOP kann man beispielsweise noch ein Dummy-Byte an den SPI 
geben, damit der den Takt erzeugt, oder eine externe Schaltung 
rücksetzen. In diesem Beispiel werden 8 Pixel, jeweils im Abstand von 4 
Taktzyklen ausgegeben. Sprich mit 4MHz auf einem 16 MHz Controller. 
Dieses Codestück würde man dann per Macro häufig hintereinander in den 
Flash-Speicher speichern. Der Font bräuchte, wenn man ihn komplett 
implementiert, 32768 Bytes.
Gast #1981809
Lesenswert?

Wenn ich mal so blöd fragen darf, wozu?
Das ganze mit einem AVR anzusteuern ist einfach langsam, erlaubt wohl 
kaum nen Grafik Modus (animationen ja schon garnicht) und du musst das 
Datenblatt des Displays dafür wohl eher als "guter Rat" interpretieren. 
Außerdem brauchst du einen AVR mit viel Speicher und so, da ists dann 
auch schon nicht mehr so billig.
Einfacher und besser wäre ein CPLD dafür. Da hängst du einen kleinen 
externen S(D)RAM ran als Grafikspeicher und schon hat sich das. Wenn du 
einen kleinen CPLD nutzt kannst du das bestimmt auf die größe eines DIP 
AVRs bringen.
Naja gut, flüssige Animationen kriegst du auch damit nicht hin, weil du 
dafür wohl eher einen doppelten Framebuffer bräuchtest und ein 
schnelleres Interface als SPI, sonst kriegst du die Displaydaten da kaum 
schnell genug rein um 60, ja sogar 30 FPS zu schaffen.
Ich habe übrigens ein ähnliches Display bei Dealextreme bestellt, auch 
480x272 Pixel, allerdings 24bit Farben und habe dafür schonmal einen 
Treiber in VHDL geschrieben, im Simulator läufts, habe leider das 
Display noch nicht geliefert bekommen. Das ist jedenfalls kein Problem, 
ich kann mal testen ob das in einen CPLD passt (wenn nicht habe ich 
verdammt schlecht programmiert).
OP #1981824
Lesenswert?

Naja:
a) Ein CPLD ist ein externer Chip der in der Regel nur in SMD-Gehäusen 
=> nicht Hobbytauglich verfügbar ist. Dazu kommt noch der Aufwand dazu 
eine Entwicklungsumgebung zu bekommen.
b) Wenn Du meinen obigen Beitrag gelesen hättest, so würdest Du sehen, 
dass man damit problemlos auch schon mit kleineren Controllern schnelle 
Graphiken machen kann.

Beispielsweise gibts da Uzebox.
http://www.youtube.com/watch?v=-lRbSeZ7c6Y
Gast #1981852
Lesenswert?

>a) Ein CPLD ist ein externer Chip der in der Regel nur in SMD-Gehäusen
>=> nicht Hobbytauglich verfügbar ist.
Und für das Display brauchst du natürlich keine SMD Technik oder? Mal 
ehrlich, wenn man schon eine Platine macht kann man auch noch einen 
kleinen Chip mehr draufklatschen.

>Dazu kommt noch der Aufwand dazu
>eine Entwicklungsumgebung zu bekommen.
Naja, nimm halt nen CoolRunner2 oder sowas, die Xilinx ISE gibts gratis, 
zumindest die Version, die dir locker reicht.

>b) Wenn Du meinen obigen Beitrag gelesen hättest, so würdest Du sehen,
>dass man damit problemlos auch schon mit kleineren Controllern schnelle
>Graphiken machen kann.
In deinem Post geht es um Text. Und schon dafür brauchst du schon einen 
riesigen AVR, mindestens 64k Flash. Die haben dann in etwa 60 Pins, wenn 
du das in DIP nimmst hast du schonmal einen riesen Displaycontroller.

Ich sage nicht dass es mit einem AVR nicht möglich ist, ich sage nur 
dass es mmn. wenig sinn macht weil du kaum Luft nach oben hast. Am 
Schluss hast du dann ein flimmerndes Textdisplay oder so.
Uzebox läuft übrigens auf einem gut 28MHz AVR.
Gast #1981863
Lesenswert?

>Naja, das Problem dabei ist,

dass auch kompiziertes Spielzeug seinen Preis hat.

>Ich habe übrigens ein ähnliches Display bei Dealextreme bestellt, auch
>480x272 Pixel, allerdings 24bit Farben

Ich staune immer, wofür Leute 24Bit Farben brauchen. Eine noch so kleine 
Blickwinkeländerung bringt die Farben doch schon ins Schwanken.
OP #1981865
Lesenswert?

> Naja, nimm halt nen CoolRunner2 oder sowas, die Xilinx ISE gibts gratis,
> zumindest die Version, die dir locker reicht.

Xilinx ISE ist zwar vielleicht "gratis" aber das ist Software ohne 
Quellcode. Die ist aufwändig zu installieren. Und ich hab da keine Lust 
stundenlang irgendwelchen Installationsproblemen hinterher zu suchen.

FPGAs und CPLDs werden dann interessant, wenn es mal wirklich freie 
Entwicklungssysteme dafür gibt.

Und das was ich bislang im Bereich Video mit ATMegas gemacht habe war 
eigentlich ganz viel versprechend. Mehr braucht man in der Regel ja 
nicht.
OP #1981869
Lesenswert?

Entwickler schrieb:
> Ich staune immer, wofür Leute 24Bit Farben brauchen. Eine noch so kleine
> Blickwinkeländerung bringt die Farben doch schon ins Schwanken.

Klar, wobei ich aber eher glaube, dass es denen um das 
Quantisierungsrauschen geht. Will man Farbübergänge oder Photos 
darstellen nervt das wirklich... aber dann würde ich wahrscheinlich 
wirklich was schnelleres nehmen als einen ATMega.
Gast #1981895
Lesenswert?

>Klar, wobei ich aber eher glaube, dass es denen um das
>Quantisierungsrauschen geht.

Da rauscht eher etwas im Kopf, das Teil mit der größten Zahl muß das 
beste sein. Ich denke dabei immer an die Millionen von Fliegen auf dem 
Haufen.

Für eine "normale" technische Anwendung (Schrift, Grafik, 
Bedienterminal) reichen meines Erachtens 8 bis 64 Farben locker aus.
OP #1981911
Lesenswert?

Entwickler schrieb:

> Da rauscht eher etwas im Kopf, das Teil mit der größten Zahl muß das
> beste sein. Ich denke dabei immer an die Millionen von Fliegen auf dem
> Haufen.

Naja, besonders in Kombination mit MPEG-artiger Kompression merkt man 
schon sehr deutlich ob man 6 Bit oder 8 Bit pro Kanal hat.

> Für eine "normale" technische Anwendung (Schrift, Grafik,
> Bedienterminal) reichen meines Erachtens 8 bis 64 Farben locker aus.

Absolut, das ist auch die Anwendung die ich potentiell machen würde.
Persönliche Seite #1981932
Lesenswert?

Das Display ist ein ganz normales controllerloses Gerät mit
Standard CMOS 18-Bit Schnittstelle (DCLK, HSYNC, VSYNC).

Das wird "ähnlich" angesteuert, wie ein Röhrenmonitor. Also Zeile für 
Zeile, Punkt für Punkt. Um ein Pixel zu ändern, musst Du immer ein 
komplettes Bild übertragen. Wenn Du bei der Übertragung Pausen machst, 
verschwindet das Bild wieder. Es muss also kontinuierlich aus einem 
Framebuffer in das Display übertragen werden. Nur dann kannst Du mit 
einem AVR einzelne Pixel im Framebuffer setzen/löschen.

Du brauchst also einen Controller.

Oder schau Dir mal Displays mit I2C-Schnittstelle an. Die haben den 
Controller eingebaut. Für schnelle Animation, kann ich mir das aber 
nicht vorstellen.
Gast #1981936
Lesenswert?

>Ich staune immer, wofür Leute 24Bit Farben brauchen. Eine noch so kleine
>Blickwinkeländerung bringt die Farben doch schon ins Schwanken.
Das ding hat mich incl. Touchpanel 17€ gekostet, ist so günstig weil die 
in Massen für Sonys PSP produziert werden. Da nehm ich doch lieber für 
17€ ein 24bit Display als für 50€ ein 8bit Display, zumal ich das ja in 
meinem FPGA eh umrechnen kann.
Nur weil ich 24bit darstellen KANN muss ich das ja nicht auch tun.

>Xilinx ISE ist zwar vielleicht "gratis" aber das ist Software ohne
>Quellcode. Die ist aufwändig zu installieren. Und ich hab da keine Lust
>stundenlang irgendwelchen Installationsproblemen hinterher zu suchen.
Also ich weiß nicht was du hast. Die Xilinx ISE ist in etwa so 
kompliziert zu installieren wie Firefox. Sowohl auf Linux alsauch auf 
Windows. Da ists komplizierter einen GCC aufzusetzen.

>Und das was ich bislang im Bereich Video mit ATMegas gemacht habe war
>eigentlich ganz viel versprechend. Mehr braucht man in der Regel ja
>nicht.
Wenn ich mir für 50€ ein Display kaufe will ich darauf aber auch mehr 
darstellen als ein paar Zahlen und Buchstaben. Sonst hätte ich ja wohl 
ein kleineres/billigeres/einfacheres (Text-)Display gekauft.
Gast #1981972
Lesenswert?

>für 50€ ein 8bit Display

Wo gibt es denn so ein Display und zu dem Preis?

>Sonst hätte ich ja wohl
>ein kleineres/billigeres/einfacheres (Text-)Display gekauft.

Und die gibt es als TFTs mit so hohem Kontrast?
Ab einer gewissen Auflösung (>128 x 64) würde ich auch dann TFT nehmen 
wenn ich nur schwarz-weiß brauche. Dabei ist mir der Preis egal, wenn 
dafür die Anzeige gut ablesbar ist.
Persönliche Seite #1982428
Lesenswert?

Christian Berger schrieb:
> Schön dass man inzwischen das SRAM mit in den Controller bekommt. Aber
> so vom Funktionsumfang ist das Teil schon ein klein wenig arm. So wie es
> aussieht ist das ein reiner Framebuffer.

Ja.
Für Grafikbefehle ist dann noch ein Prozessor mit etwas Intelligenz 
notwendig.

zB: ebay 200536473202

Da hast Du alles komplett.

Ansonsten alles in FPGA gießen. Habe davon aber leider keine Ahnung.
Sonst würde ich es wohl damit machen.

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