Forum: Mikrocontroller und Digitale Elektronik TFT Touch an Atmel AVR


von FLorian U. (florian_u)


Lesenswert?

Hallo,

habe vor mich mal mit touch TFT anwendungen zu beschäftigen.
Habe jetzt schon viel im internet gesucht und mich nach einer einfachen 
möglichkeit ungeschaut. Doch leider scheint das ja nicht soo leicht zu 
sein. Vorallem wenn man ein "rohes" TFT ansteuern will. Also gibt es 
meiner Meinung nach leider keine andere möglichkeit als so eine art 
"intelligentes" TFT zu kaufen, wo man bitmaps und text einfach per 
einfacher komandos anzeigen lassen kann. Zum beispiel von Reichelt die 
electronic assembly teile. Leider recht teuer.
 Was haltet ihr davon? Ist das sinnvoll wenn man einen Prozess mit einem 
MC steuern will und dann eine visualisierung haben will. Eignen sich 
solche Displays dazu?

Dann habe ich noch einen amerikanischen Hersteller gefunden.
http://www.reachtech.com/evaluate/how_can_i_get_started/

hat damit schon mal jemand erfahrung gesammelt? Finde eigentlich das 
hört sich ganz gut. Zumal die Auflösung auch viel besser ist als die der 
EA Teile von Reichelt. Was haltet ihr von den Teilen?

Viele Grüße
Florian

von g457 (Gast)


Lesenswert?

> Was haltet ihr von den Teilen?

Abstand. Zu den Preisen bekommt man schon einen ganzen Stapel 
FriendlyArm inklusive Display und einem anständigen OS.

Aber letztenendes muss das jeder selber wissen wo er sein Geld versenkt 
:-)

von Arc N. (arc)


Lesenswert?

2" oder 42" TFT? Welche Auflösung?
Welche Anforderungen an den Touchscreen? Single/Multi-Touch?
Welche Einsatzumgebung/Anwendung?

Imo guter und günstiger Einstieg:
http://de.mouser.com/ProductDetail/Displaytech/SDT032TFT-TS
Vorteil bei dem Teil, Ansteuerung entweder direkt RGB (16/18-Bit RGB + 
VSync, HSync, Takt) oder SPI oder 8-Bit-parallel
dazu ein ext. Touchscreen-Controller z.B.
http://www.analog.com/en/analog-to-digital-converters/touchscreen-controllers/ad7879/products/product.html
http://www.analog.com/library/analogDialogue/archives/45-06/gesture_recognition.html
(Multitouch (zwei Touchpunkte) mit resistivem Touchscreen)

von oha (Gast)


Lesenswert?

Ein graphic display das etwas Schub haben soll, sollte einen 32bit 
controller angeschnallt haben, also eher einen AVR32 wie einen Mega.

von Martin S. (der_nachbauer)


Lesenswert?

Es gibt auch jede Menge günstiger TFTs in der Bucht - ich stolpere 
zumindest beim Stöbern gerne mal an dem einen oder anderen Angebot 
vorbei.

Es gibt auch viele mit (für die Ansteuerung z.B. mit einem ATmega) 
geeigneten Controllern vorbestückte Ausführungen - einfach mal z.B. nach 
"tft avr" suchen.

von Brumbaer (Gast)


Lesenswert?

Meine Erfahrungen zu dem Thema- ins Unreine geschrieben.

Das erste Kriterium ist die Größe.
Bei 3.x Zoll Displays hat man die große Auswahl.
Es gibt sowohl "große" Systeme wie das Friendly Arm, als auch 
"Intelligente" Module und auch "kleine" Systeme wie die mikromedia von 
mikroelectronics, als auch "nackte" Displays mit eingebautem Controller 
und "ganz nackte" Displays ohne Controller.
Bei 4.x Systeme habe ich keine "kleinen" Systeme mehr gefunden.
Bei 7.x Systemen habe ich nur "große" Systeme und "ganz nackte Systeme" 
gefunden.

Über teuer und preiswert kann man streiten und die Begriffe relativieren 
sich natürlich je nach Projekt. Ich gehe eher von Rest-Systempreisen von 
20 bis 50€ aus als von komplexen Anwendungen, wo das System ohne 
"Displayteil" sowieso schon 500€ kostet.
Ebenso gehe ich von einfachen UI Anforderungen aus, d.h. resistiver 
Touchscreen, kein Multitouch und Anwendung eher Tastenfelder als Bilder 
malen.

Ein ganz nacktes System erfordert entweder eine Graphikkarte oder einen 
Controller mit genug Speicher (nicht zwangsweise auf dem Chip). Für eine 
einfaches Projekt sehr aufwändig. Wenn man aber sowieso ein komplexes 
Projekt hat, mag der Aufwand vertretbar sein.

Aber dann stellt sich gleich die Frage ob ein "großes" System wie das 
Friendly Arm nicht schneller zum Erfolg führt.
Das was gegen "ein großes" System spricht sind die Kosten, 
möglicherweise der Formfaktor und dass man u.U. ein zweites System 
programmieren muss (was organisatorisch aber auch ein Vorteil sein 
kann).
Wenn man etwas mit einem 8 Bitter lösen kann, erscheint ein Friendly Arm 
ein wenig wie die sprichwörtliche Kanone.

Die "intelligenten" Module gibt es in verschiedenen Preislagen 4D hat 
3,5" Dispalysysteme für 60€ oder so, die von electronic assembly sind 
deutlich teurer. Ich habe beide ausprobiert und was mich daran störte 
ist, dass man irgendwie immer an einen Punkt kommt, wo man sagt, das 
Feature fehlt mir jetzt, sei es Transparenz oder eine bestimmte Drehung 
oder was auch immer. Irgendwie hatte ich auch immer das Gefühl die Teile 
sind Fremdkörper im System ob es nun an den Testmöglichkeiten, den 
Programmiermöglichkeiten, der Anbindung oder einfach dem Schreiben und 
Einbinden von Macros  oder was auch immer lag kann ich nicht so richtig 
sagen, auf jeden Fall habe ich es irgendwann gelassen.

Was mir gut gefallen hat und wenn man mit der Displaygröße und dem Preis 
hinkommt sind die "kleinen" Systeme. Ich habe die PIC32 und XMEGA 
Variante der mikromedia Reihe ausprobiert und bin sehr angetan. Die 
Programmierung ist wie gewohnt, der Footprint ist klein, die 
zusätzlichen Features, wie SD Karte, Soundchip usw. sind nützlich. Die 
Performance ist je nach Anwendung und Prozessor gut bis sehr gut. Und 
man spart sich oft den Prozessor, den man sonst in der eigenen Schaltung 
brauchte. Nachteil die "kleinen" Systeme sind teurer als Eigenbau und 
manchmal sind die rausgeführten/belegten Pins unglücklich gewählt - das 
hängt natürlich von der Anwendung ab. Es gibt Libraries für 
Graphicansteuerung und Touchscreen und gegen Aufpreis auch einen UI 
Generator - habe ich aber nie ausprobiert.

Wenn es um Preis und Platz geht, verwende ich 3.x Display mit 
eingebautem Controller. Ich habe die Software für Bildschirmansteuerung 
und Touchscreen komplett neu geschrieben, was etwas weniger als eine 
Woche in Anspruch nahm. Hilfreich war, dass ich schon 
Konvertierungsprogramme für Zeichensätze und Bitmaps hatte, so dass ich 
nur noch die Controller Seite programmieren musste und dass ich aus der 
Steinzeit stamme, wo man schon mal eine Linie von Hand zeichnen oder ein 
Bitblit mit "Verknüpfungen" selbst programmieren musste um das letzte an 
Performance herauszuholen. An einem Mega mit 20 MHz und SPI ist die 
Performance ausreichend, wenn man nicht häufig den kompletten Schirm neu 
zeichnen muss, sondern immer nur die Änderungen zeichnet. Braucht man 
schnelle seitenweise Updates ist es nicht zu empfehlen. Parallel, sollte 
grob um den Faktor 6 bis 8 schneller (Wert aus der Erinnerung - mag 
unter bestimmten Umständen noch höher sein) sein. Das ist dann schon ok.
Bei den beiden letzten Varianten ist die Graphik letztendlich Teil des 
Systems und Teil der "normalen" Programmierung. Man kann natürlich auch 
den Standpunkt beziehen, dass ein getrenntes "UI System" ein Vorteil 
ist, aber ich finde das bei kleinen Anwendungen eher lästig.

Eine weitere Möglichkeit ist der Einsatz eines Rechners - vergleichbar 
einem "großen" System. Nur verwendet man statt eines "embedded Systems" 
ein fertiges "Consumer" Gerät, wie ein Tablett oder ein Handy. Es ist 
allerdings darauf zu achten, dass dies bestimmte Anforderungen an die 
Schnittstellen stellt. Ein iPad ist momentan nur mit WiFi ohne Aufwand 
(es gibt zwar von einem Dritthersteller ein serielles Kabel, das kostet 
aber soviel wie ein WiFi Dongle) anzuschliessen, ein Android Gerät nur 
über Bluetooth (Version 2.3? und später) oder USB (Version 3.x und 
später). Billige Android Tabletts haben oft weder Bluetooth noch Android 
3.0.

Welche Lösung letztendlich die geeignetste ist, hängt von der Anwendung, 
dem Budget, den Zeitvorgaben und den eigenen Fähigkeiten ab.

Eins noch:
Egal welche Lösung man wählt, man muss anfangs reichlich Zeit dafür 
investieren.
Der Aufwand für die Hardwareanbindung der Grafik ist ausser bei der 
"ganz nackten" Variante eher gering und unterscheidet sich nicht 
wesentlich bei den anderen Varianten.
Auch der Zeitaufwand für die Softwareanpassung ist nicht so 
unterschiedlich. Womit man die Zeit verbringt unterscheidet sich zwar, 
aber der Gesamtzeitaufwand ist nicht so unterschiedlich (eigene 
Erfahrung - mag bei anderen Leuten anders sein).
Auf den ersten Blick ist die "Controller" Methode zwar am aufwändigsten, 
aber die Zeit, die man dort mit dem Programmieren der Lowlevel Routinen 
zubringt,  verbraucht man bei den anderen Methoden mit 
Kommunikationsprotokollen und dem Erlernen von Befehlen und dem 
Überwinden von "Features".

MfG
SH

von FLorian U. (florian_u)


Lesenswert?

Danke Brumbaer für deine super ausführliche Nachricht! Echt Top.
Den anderen natürlich auch vielen dank für eure Antwort.

Okay ich hätte mich noch ein bisschen präziser ausdrücken können, aber 
ich wollte halt auch erstmal genau das hören, nämlich wo und wann man 
welches display wählen sollte.

Ich denke was als " große" Systeme genannt wurde. Also ich denke ein 
kompletter embeddec Pc mit betriebssystem ist zu viel.

Auch denke ich der ganz rohe tft scheidet direkt mal aus^^.

Ich wollte mal einfach eine oberfläche mit touch bauen, da bin ich 
garnicht genau festgelegt wofür das sein soll. Will es halt könnnen um 
das später einbauen zu können.Ich dachte da schon so an 5 Zoll (ca.). 
Und die Auflösung sollte vielleicht so 640x800 sein? Also vielleicht 
auch ein bisschen was kleiner. aber ich will nicht das die oberfläche 
"verpixelt" aussieht, also es sollte schon ansehnlich werden. muss auch 
nicht 50 euro kosten. naja 500 ist auch nicht soo erstrebenswert^^.
Zum touch: Brauche kein multitouch.

deshalb dachte ich so ein intelligentes dingen ist am einfachsten. das 
macht ja praktisch alles allein. man zeichnet die bitmaps und fertig. 
man hat keine probleme damit den touchbereich abzufragen und so weiter. 
Man shcickt denke ich nur ascii text hin und schon läuft das. Hört sich 
also nicht so schwer an.

die kleinen systeme die ich mir angesehen habe, fand ich das sie zu 
schlechtg auflösen. Also denke ich das die auch ausscheiden.(???)
bin mir aber nicht sicher, was genau damit gemient war.

dann die tfts mit kontroller. Also so wie ich das sehe, muss man dann ja 
ne grafikkarte auf seinem MC bauen oder? Man kann ja nur pixel schreiben 
und das wars oder? Dh. ich müsste jedes bmp erstmal von meinem MC 
darstellen lassen. Wenn das dann noch flüssig laufen soll brauche ich 
doch schon einen sehr schneller kontroller. Und muss darauf dann eine 
grafikkarten software schreiben. Ich weiß nihct wie schwer das wird.


Zu mir: Ich studiere Eletkrotechnik im 5 sem. Ich denke mal gewissen 
grundkenntnisse sind schon da. aber die erfahrung fehlt.

Viele Grüße
Florian

von Frank K. (fchk)


Lesenswert?

640*800 ist eine ungewöhnliche Auflösung, die wirst Du nicht finden. 
Praktikabel sind 320*240 (QVGA) und 480*272 (PSP-Displays). 
QVGA-Displays gibts mit eingebautem Controller, ILI932* oder HX82**, da 
brauchst Du nur einen externen Adress/Datenbus. Die 480*272 Displays 
gibts nur nackt, da brauchst Du einen Controller, der das kann. Das kann 
z.B. ein ARM7 sein (LPC2478 plus externes RAM, aber achtung, das ist ein 
TQFP208 im 0.5 mm Raster, also viel Spaß beim Löten), oder es gibt von 
Microchip 16 Bit Controller wie dem PIC24FJ256DA210 (*) mit 96k internem 
RAM und der Möglichkeiten, noch mehr extern anzuschließen. Microchip hat 
auch entsprechende Grafikbibliotheken - das wird für Dich am 
einfachsten.

fchk

(*) http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en547869

von Noy (Gast)


Lesenswert?

Hi,

ich habe nun ein ähnliches Problem.
Ich habe mir im Markt diesen TFT gekauft: PD064VT5-LF
Welches ja laut verkäufer einen Controller besitzt (daher dachte ich es 
würde einfacher und es würde mit einem normalen PIC gehen).
Meine Frage wäre nun kann ich dieses mit einem dsPIC30 bzw PIC18F4553
ohne weiteres ansteuern?
Oder bräuchte ich auch eher einen der Grafik PIC's wobei es diese leider 
nur mit 3,6V gibt und ich alles mit 5V betreibe.

von Frank K. (fchk)


Lesenswert?

Noy schrieb:

> Meine Frage wäre nun kann ich dieses mit einem dsPIC30 bzw PIC18F4553
> ohne weiteres ansteuern?

Nein. Vergiss es.

> Oder bräuchte ich auch eher einen der Grafik PIC's wobei es diese leider
> nur mit 3,6V gibt und ich alles mit 5V betreibe.

Auch der von mir erwähnte PIC24 ist für dieses VGA-Display etwas knapp 
dimensioniert. Ich empfehle eher einen ARM dafür, so Richtung 
AT91SAM9261 oder so.

fchk

von Noy (Gast)


Lesenswert?

Kurze Frage dazu:

Woran liegts?
PIC's zu langsam?
bzw. TFT zu groß, hat ja immerhin einen Controller, wenns jetzt noch RAM 
bei hat reicht der PIC immer noch nicht ?

Die PIC24 würden von der angegeben Auflösung das hinbekommen.

Also am besten ein kleineres TFT holen?
Welche größe würde der dsPIC30 noch schaffen, schafft der überhaupt mehr 
als nen 4x20 Zeilen LCD?

von Frank K. (fchk)


Lesenswert?

Noy schrieb:
> Kurze Frage dazu:
>
> Woran liegts?
> PIC's zu langsam?
> bzw. TFT zu groß, hat ja immerhin einen Controller, wenns jetzt noch RAM
> bei hat reicht der PIC immer noch nicht ?

Das Display hat selber keinen Speicher, d.h. der Controller muss das 
Bild wie bei einer Bildröhre regelmäßig wieder auffrischen. Das sind bei 
einem 24 Bit VGA-Display 640*480*3*60=52,7 Megabyte pro Sekunde, die Du 
zum Display in einem exakten Timing hinschicken musst. Das geht nur mit 
passender Hardware und schnellem Speicher. Das in Software hinzubekommen 
ist aussichtslos.

> Die PIC24 würden von der angegeben Auflösung das hinbekommen.

Die mit TFT-Interface ja, gerade noch, aber nur mit 30 fps.

> Also am besten ein kleineres TFT holen?
> Welche größe würde der dsPIC30 noch schaffen, schafft der überhaupt mehr
> als nen 4x20 Zeilen LCD?

Er würde nur eines mit integriertem Speicher und CPU-Interface 
(Adress/Datenbus) ansteuern können. Und hier ist bei 320*240 und 3.5" 
Schluss.

fchk

von Arc N. (arc)


Lesenswert?

Frank K. schrieb:

> Er würde nur eines mit integriertem Speicher und CPU-Interface
> (Adress/Datenbus) ansteuern können. Und hier ist bei 320*240 und 3.5"
> Schluss.
>
> fchk

Es gibt noch sowas
7", 800 x 480, Touch, eingebauter Controller
http://www.newhavendisplay.com/specs/NHD-7.0-800480WF-CTXI-T.pdf
http://www.newhavendisplay.com/app_notes/SSD1963.pdf
Displaytech hat afair noch 320x480 in 3.x"

Sieht man sich mal einige alte ST Demos an 
http://www7.in.tum.de/~brandtf/ataridemos.html (mit etlichen Tricks u.a. 
um höhere Auflösungen zu erreichen als von der Hardware vorgesehen 
(http://dss.in.tum.de/files/brandt-research/fullscreen.txt)) und 
vergleicht dann die Hardware: ST 8 MHz ~ 1 MIPS, keine 
Hardwareunterstützung für die Grafikfunktionen (reine Software) mit 
heutigen Controllern (dsPIC/24, PIC32, Cortex-M3, etc.) ginge da so 
einiges...

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.