Forum: Mikrocontroller und Digitale Elektronik 3.5" TFT-Display an Atmega128


von Thorsten Wurm (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ih bin im Moment am Verzweifeln. Ich habe ein Powertip 3.5" Display, 
dass ich mit einem Atmega128 ansteuern will. Leider tut das Ding nicht 
das, was es soll. Datenblatt des Displays kann man hier finden: 
http://www.data-modul.com/de/products/tft_displays/single_tft_small/Powertip_0350_PH320240T-006-I-Q.pdf?nav=pn&nav=pn

Im Anhang ist mein Programm für den Atmega. Wenn ich das Display mit 
Strom versorge, dann schaltet das Display kurz nach dem Einschalten auf 
ein schwrzes Bild und mehr passiert nicht. Eigentlich sollte der 
Bildschirm mit einer Farbe gefüllt werden.

Hat jemand mit diesem Display bzw. dem Controller von Himax (HX8238a) 
Erfahrung und kann mir sagen, wo mein Fehler liegt bzw. mir ein 
Beispielprogramm schicken?

Mfg,
Thorsten Wurm

von Marius S. (lupin) Benutzerseite


Lesenswert?

Sehr ambitioniert das Display in BASSCOM an zu steuern...

Der Display controller hat keinen Speicher (du musst das Bild 
kontinuierlich aktualisieren), keine Ahnung was dein Programm macht 
(BASSCOM ist mir zu "kompliziert") aber ich gehe davon aus, dass deine 
Dotclock viel zu niedrig ist um irgendwas sehen zu können.

Entweder kaufst du dir einen µC mit Displaycontroller (z.B. nen 
Grasshüpfer) oder du schließt einen externen an.

Anscheinend versuchst du ja auch nur ein mal ein Bild auf dem Display an 
zu zeigen und gehst danach in ne Endlosschleife. Also selbst wenn die 
Kommunikation mit dem Display funktioniert würde nur 1 mal nach Power-Up 
ein einzelner Pixel durch das Display laufen und dann wäre alles wieder 
schwarz (oder der letzte Pixel würde noch weiter angesteuert werden, 
ganz genau weiss ich das nit).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> wo mein Fehler liegt
Der Fehler liegt darin, dass du das Timing aus dem Datenblatt nicht in 
Software umgesetzt hast. HSYNC, VSYNC, die Pixeldaten und insbesondere 
der DOTCLK müssen sich mit der dort angegebenen Frequenz /ständig 
wiederholen/   :-o

Interessant dürfte auch die Anmerkung unterhalb der Tabelle 2.3 sein.
10MHz-30MHz Pixelclock in Basic, das wird spannend...

von Thorsten Wurm (Gast)


Lesenswert?

Hallo,

vielen Dank für die schnellen Antworten.
Dazu habe ich aber noch zwei Fragen:
1: lupin schreibt, dass der Display-Controller keinen eigenen Speicher 
hat. Ich hatte das aber so verstanden, dass die einzelnen Pixel so lange 
angezeigt werden, bis sie entweder überschrieben werden oder das Display 
halt resettet wird. Ist das dann eher wie bei einem Fernseher zu 
verstehen, soll heißen, dass ich den einzelnen Pixel dann 25 mal in der 
Sekunde ansteuern muss?

2: lkmiller schreibt, dass der Dotclk 10-30Mhz sein soll. Heißt das, 
sobald die Frequenz kleiner als 10 Mhz ist, dass dann das Display 
sowieso nicht mehr arbeitet.
Die Hardware ist so aufgebaut, dass ein Atmega128 (16Mhz Takt) das 
Display steuern soll. Dieser muss aber noch die Bilddaten von einer 
Speicherkarte lesen. Das würde ja auf jeden Fall bedeuten, dass ich die 
Dotclk-Frequenz weit unter 10 Mhz haben würde. Kann das dann überhaupt 
noch funktionieren?

Mfg,
Thorsten Wurm

von gast der gäste (Gast)


Lesenswert?

nein kann nicht funktionieren, vergiss dein vorhaben (sorry der harte 
ausdruck)

ja du musst permanent das display refreshen, es hat keinen speicher und 
es verliert den inhalt.

wen hsync, vsync und pxlclk nicht snychron im richtigen (hohen) 
taktlaufen wird das nichts mit dem anzeigen -> für einen avr OHNE 
Hardeware Block welches ein TFT utnerstütz und Framebuffer gehts nicht 
-> meist erst bei Derivaten mit DRAM zu finden weil das ja auch gleich 
mal ein paar MByte sind ... (Stichwort Double and Trippl Buffering)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> lkmiller schreibt, dass der Dotclk 10-30Mhz sein soll.
Neinein, nicht ich schreibe das.
Das Datenblatt des Displays schreibt das  :-o

> Heißt das, sobald die Frequenz kleiner als 10 Mhz ist, dass dann das
> Display sowieso nicht mehr arbeitet.
Es wird schon nocht tun, aber je weiter du von dieser Frequenz weggehst 
umso seltsamer werden die Effekte...

> Ich hatte das aber so verstanden, dass die einzelnen Pixel so lange
> angezeigt werden, bis sie entweder überschrieben werden oder das Display
> halt resettet wird.
Das Display hat keinen eingebauten Oszillator und braucht einen 
durchgehenden Pixeltakt, um die interne Logik korrekt weiterzuschalten. 
Wenn du den Pixeltakt an einem stehenden Bild wegnimmst, dann fehlt der 
Refresh, und du wirst kurz darauf Schlieren/Regenbogen... auf dem 
Display sehen.

> Kann das dann überhaupt noch funktionieren?
Eher nein  :-(

von Marius S. (lupin) Benutzerseite


Lesenswert?

Das es nicht ganz aussichtslos ist wird hier gezeigt:
http://www.youtube.com/watch?v=z4NxPw6Hj18

Allerdings unterscheiden sich da ein paar Punkte:
* ASM statt BASSCOM
* Das Display wird unterhalb der eigentlichen DotClock betrieben
* Da nur zwei 8 Bit Ports verbunden sind gehe ich davon aus, dass das 
Display nur mit 8 Bit Farbe statt der möglichen 24 Bit betrieben wird

Zusätzlich könnte man den AVR noch übertakten...

Ich denke wenn man on the fly ein VGA Signal erzeugen kann, dann kann 
man auch on the fly ein TFT Display ansteuern.

Sag mal wo hast du das Display her und wieviel hat es gekostet?

von Thorsten Wurm (Gast)


Lesenswert?

Hallo,
das Display habe ich von Display Devices aus München. Hat so um die 15€ 
gekostet. Gibt es aber auch bei Data-Modul oder bei Electronic Assembly.

Mfg,
Thorsten Wurm

von Holle (Gast)


Lesenswert?

Hallo,

ich habe mal vor nicht allzulanger Zeit etwas gelesen von Fujitsu 16FX 
Controllern, dort wurde mittels DMA ein externer Videobuffer und ein TFT 
angesteuert (1/4 VGA glaub ich). Ein Distri hat mir auch ein 
funktionsfähige Applikation vorgelegt. Vllt kommst Du damit etwas 
weiter, denn:

günstige Evalboards (rund 100Euro)
kostenloser Compiler
kostenlose Toolchain (über RS232)

Allerdings weiß ich nicht mehr genau wo das im Netz zu finden ist!?

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.