Forum: Mikrocontroller und Digitale Elektronik Artmel Controller für 7" TFT Display


von Markus W. (kornbanane)


Lesenswert?

Hallo Forum,

ich bin auf der Suche nach einem Weg ein 7" TFT Display mit Touch 
(erstmal offen ob resistiv oder kapazitiv) über einen Atmel Controller 
anzusteuern.
Auf dem Display sollen einfache Grafiken, aber auch Bilder angezeigt 
werden. Die Bilder werden sich nicht oft Ändern, es sind mehr 
Hitnergrundbilder. Weiterhin sollen keine Videos abgespielt werden.

Habe schon einiges hier und im Internet gelesen, aber das passende 
leider auch nicht gefunden.

Folgendes habe ich herausgefunden:

Ich könnte natürlich auch ein "interligenes Display" wie z.B. 
http://www.noritake-itron.com/NewWeb/TFT/Overview/Overview.asp
verwenden. Damit habe ich auch schon gearbeitet, kann ich nur empfehlen 
für diesen Preis!

Allerdings will ich das Display selbst direkt ansteuern, auch um offen 
für neue Anforderungen an mein Projekt zu sein.
Wie gesagt würde ich das Display gerne mit einem Atmel µC ansteuern, da 
ich mich derzeit in den XMEGA A3BU einarbeite und auch das Atmel 
Software Framework verwende. Deshalb erhoffe ich mir, das ich 
bestehenden Code (wegen dem Atmel Software Framework) relativ leicht auf 
einen Leistungsstärkeren Atmel µC übertrage, falls dieser erforderlich 
ist.

Nun ist es ja so, das ich bei kleineren Displays, sagen wir 2,8" eines 
mit einem ILI9341 controller hätte nehmen können. Wie z.B:
https://www.adafruit.com/product/2090

Wenn ich es richtig verstanden habe, lässt sich so ein Display (es 
verfügt über einen integrierten Controller) relativ leicht mit einem 
8Bit µC ansteuern.

Bei einem größeren Display gibt es solch einen "simplen" Weg nicht, da 
diese Displays andere anforderungen an die Ansteuerung stellen. Wenn ich 
so ein Display mit einem 8Bit µC ansteuern wöllte, könnte ich solch ein 
Treibermodul zwischen meinem µC und dem Display schalten, wenn ich es 
richtig vertsanden habe:
https://www.adafruit.com/product/1590

Und jetzt meine Frage:

Der eleganteste Weg wäre doch sicherlich, wenn mein µC das Display 
bereits direkt ansprechen kann. Dazu gibt es Leistungsstärkere µC zb. 
haben die Atmel SMART µC solch einen TFT Treiber eingebaut. Also kann 
der µC das TFT selbst direkt ansteuern? Über das Atmel Software 
Framework sollte dies dann hoffendlich auch nicht allzu kompliziert 
sein.

Neben den Atmel SAM µC gibt es auch noch die Atmel UC3 µC. Mir ist nicht 
klar, welcher jetzt besser zu mir passt. Als Hintergrundinformation: Im 
Prinzip reicht mir mein XMEGA A3BU föllig aus. Nur ich will eben ein 7" 
TFT Display am liebsten direkt, also ohne irgendwelche Treiberboards, 
ansteuern.

Vielen Dank für die Hilfe.

von Markus W. (kornbanane)


Lesenswert?

Habe gerade vielleicht etwas passendes gefunden:

Hier gibt es ein Display mit einem SSD1963 Controller:
http://www.sainsmart.com/arduino/arduino-shields/lcd-shields/sainsmart-7-7-inch-tft-lcd-480x800-arduino-due-mega2560-r3-raspberry-pi.html

Dies gibt es auch als Set mit einem Mega2560 µC
http://www.sainsmart.com/arduino/arduino-shields/lcd-shields/sainsmart-mega2560-r3-7-7-inch-tft-lcd-screen-sd-card-slot-tft-shield-for-arduino.html

Dann gehe ich davon aus, das mein Xmega A3BU auch mit dem Display fertig 
werden sollte? Hat jemand schon Erfahrungen mit dem SSD1963 Controller 
und Xmega? Leider lässt sich der Controller nur parallel ansteuern ....

von DerDan (Gast)


Lesenswert?

Die UC3 Familie von Atmel ist echt toll.
Doch leider wird die Linie von Atmel wohl nicht mehr so verfolgt.
Also eher Finger weg!

Auch wenn die STM Macken haben, so gibt es einen STM32F429, welche einen 
2D Beschleuniger für Grafik an Board hat. den würde ich mir an deiner 
Stelle anschauen.

mfg

DerDan

von Philipp K. (philipp_k59)


Lesenswert?

Markus W. schrieb:
> Damit habe ich auch schon gearbeitet, kann ich nur empfehlen
> für diesen Preis!

http://www.buydisplay.com/default/7-inch-lcd-module-capacitive-touch-screen-panel-i2c-spi-serial

Mit nem großen Winbond Flash und Fontchip ist man bei 40$.

In der größe bei der Auflösung wird der RA8875 etwas zu klein.. da hat 
man nur noch wahlweise 256 Farben 2Layer oder 1Layer 65k Farben. 
Zwischen den Layern kann man Filter,BTE wie Flash DMA funktionen 
anwenden.

Die Platinen sind auch sehr minimal, wenn man eine Flashchip benutzt 
muss man den am besten mit einem Adapter verlöten um diesen auch später 
umflashen zu können.

von Uwe (de0508)


Lesenswert?


von W.S. (Gast)


Lesenswert?

Markus W. schrieb:
> ich bin auf der Suche nach einem Weg ein 7" TFT Display mit Touch
> (erstmal offen ob resistiv oder kapazitiv) über einen Atmel Controller
> anzusteuern.

Überlege doch erst einmal, bevor du derartige Vorgaben machst.

"Atmel-Controller" klingt nach AVR und Konsorten, gelle? Es gibt µC 
heutzutage, die einen dedizierten TFT-Controller bereits eingebaut 
haben. Vorreiter war Sharp, damals mit den BlueStreaks, jetzt ist es NXP 
mit den LPC2478..LPC17xx..LPC40xx bis zu den LPC43xx. Auch ST hat 
inzwischen nachgezogen und möglicherwese auch noch andere Hersteller. 
Aber das sind alles eher dickere Chips auf ARM- bzw. Cortex-Basis. Du 
tust deshalb gut daran, dir einen passenden Controller für die Aufgabe 
auszusuchen und nicht umgekehrt.

Ein übliches 7" TFT kommt heutzutage mit 800x480 Pixeln daher und 
braucht pro Pixel wenigstens 16 Bit, also 2 Byte an RAM, wenn man nicht 
von vornherein auf Krampf aus ist.

Nun rechne dir mal den RAM-Bedarf dafür aus.

So ein TFT wird üblicherweise mit einer Pixelrate von etwa 33 MHz 
angesteuert und der RAM, den du vorsehen mußt, muß so an den µC 
angebunden sein, daß der Speicherbus durch diese Display-Grundlast nicht 
bereits ausgelastet ist. Da kommt logischerweise eben nur ein 32 Bit 
breiter Speicher und ein 32 Bit breiter Bus zum Speicher in Frage, sonst 
ist der Ärger mit dem Bus als Flaschenhals vorprogrammiert.

Tja, und ein RAM, das Zugriffszeiten von deutlich weniger als 33 ns und 
obendrein 32 Bit datenbreite aufweist, ist nur als SDRAM zu kriegen - 
DDRAM oder gar LPDDRAM wird m.W. von keinem hier diskutablen µC 
unterstützt.

Merkst du jetzt, wohin die Reise geht? Man kann sich sowas selber 
basteln, ich hab das bereits getan, aber man MUSS sich vorher im Klaren 
sein, welche Zutaten man dsfür braucht.

W.S.

von Lars R. (lrs)


Lesenswert?

W.S. schrieb:
> So ein TFT wird üblicherweise mit einer Pixelrate von etwa 33 MHz
> angesteuert

Wieviel MHz hast Du maximal probiert?

thx Lars

von Markus W. (kornbanane)


Lesenswert?

Vielen Dank für die Antworten,

ja der FT800 sieht schon interessant aus, leider kann dieser soweit ich 
verstanden hab nur Displays von einer Größe bis 5" ansteuern - ich hätte 
gerne ein 7" Display.

Auf dieses hier
http://www.buydisplay.com/default/7-inch-lcd-module-capacitive-touch-screen-panel-i2c-spi-serial

bin ich auch schon gestoßen, sollte ich mir vielleicht mal näher 
ansehen. Hat hier schon jemand Erfahrungen mit? Wie ist das z.B. wenn 
ich ein Bild welches auf der SD-Karte gespeichert ist dastellen will. 
Kann ich dies mit einem Befehl vom µC direkt von SD-Karte in den 
Bildspeicher laden, oder dies erst über den µC von der SD-Karte 
ausgelesen werden und kann dann erst auf das Display übertragen werden.

von Lars R. (lrs)


Lesenswert?

Über den uC.

von Philipp K. (philipp_k59)


Lesenswert?

Ich habe ein kleineres mit dem RA8875 Controller.

Der SD-Karten Slot ist nur auf Pins rausgeführt, im Grunde also garnicht 
angeschlossen. Für direktes DMA lässt sich ein Serial Flash einlöten, 
welcher dann eingelötet nicht mehr programmiert werden kann.. habe mir 
mit nem 8Pin Molex anstelle des ICs einen Steckbaren Adapter gebastelt.

Man kann dann Backgroundbilder und Buttons wie auch Grafiken auf den 
Flash proggen und direkt mit Blocktransfer verschieben, kopieren, Filter 
anwenden und das geht ohne Bildaufbaueffekte.

Wie schon geschrieben bin ich mir nicht sicher ob das bei der von dir 
gewünschten auflösung noch so gut läuft wie bei meinem 480x272.

von W.S. (Gast)


Lesenswert?

Lars R. schrieb:
> Wieviel MHz hast Du maximal probiert?

Ich hab sowas in Betrieb und die Manuals dazu gelesen - offenbar im 
Gegensatz zu dir.

W.S.

von Lars R. (lrs)


Lesenswert?

Dieses Display kann laut Datenblatt mit bis zu 50MHz getaktet werden:
http://www.newhavendisplay.com/capacitive-touch-tft-nhd50800480tfatxlctp-p-6062.html

Das ist mehr, als von Dir angegeben. Kennst Du nur Displays, bei denen 
nur ca. 30 oder 33MHz im Datenblatt stehen? Eine andere Frage ist, ob es 
sich um eine Begrenzung durch die Elektronik handelt, oder ob der 
Hersteller davon ausgeht, dass jenseits davon in Kombination mit dem 
kürzestmöglichen Portch aufgrund der Rise-and-Fall-Zeiten ohnehin nichts 
Sinnvolles mehr anstellen lässt. Ich bin kein Display-Experte. Deswegen 
hab ich ja gefragt.

von Markus W. (kornbanane)


Lesenswert?

Danke nochmal für die Unterstützung. Ich werde mich wohl für ein 
"interligentes" Display entscheinden.
Trotzdem finde ich das Display 
http://www.buydisplay.com/default/7-inch-lcd-module-capacitive-touch-screen-panel-i2c-spi-serial 
mit dem RA8875 Controller sehr interessant. Ist es hier wirklich so, 
dass sich der Flash Memory Chip nicht im eingelöteten Zustand 
programmieren lässt? Ich würde mir also einen eigenen Programmer 
aufbauen müssen? Falls ich auf diesen Chip verzichte, könnte ich doch 
auch alle benötigten Daten auf die SD-Karte legen, wobei dann der 
Transfer zum Display viel länger dauert, da ich dann auf DMA verzichten 
muss. Stimmt das so?

von W.S. (Gast)


Lesenswert?

Lars R. schrieb:
> Ich bin kein Display-Experte.

Ja.

Hier geht es um die Bus-Belastung. Mit 33 Megapixel/s und 16 Bit 
Farbtiefe ist so mancher aus dem Chip herausgeführter Systembus schon 
arg belastet - und nun fängst du an, von 50 MPixel/s zu schreiben. Ist 
kontraproduktiv.

immerhin braucht man auch noch Bandbreite für den sonstigen 
Datenverkehr. Wieviel an Grund-Buslast man sich da gönnt, ist zwaar 
diskutabel, aber ich würde dem Display nicht mehr als etwa 30% 
freiwillig gönnen - sonst schneckt der Rest nur noch daher.

Ach ja, es gibt bei den PIC32-Leutchen von Microchip grandiose 
"Experten", die sowas wie eine TFT-Bedienung per Mischung aus DMA und 
Interrupt-Handlern ausgedacht haben und ganz stolz drauf sind. Ist 
albern, da zwar angeblich nur 2..5% CPU-Zeit gebraucht wird, aber 
tatsächlich der DMA-Verkehr den Systembus fast lahmlegt. Der Grund dafür 
ist, daß der DMA Core ja nicht wissen kann, wozu die Bytes benötigt 
werden und er deshalb immer nur per Timer jeweils ein Pixel 
transferiert. Bei den echten eingebauten TFT-Cores sieht das anders aus: 
da werden die Pixel blockweise vom RAM geholt, im TFT-Core gepuffert und 
von dort aus im richtigen Timing zum Display geschickt. Die blockweise 
Arbeit auf dem Systembus sorgt dafür, daß dafür längst nicht soviel 
Overhead stattfindet wie bei all den Bastel-Lösungen.

Und nochwas zu großen Displays mit eingebautem Controller: Wenn dieser 
einen echten Platz im adressierbaren Speichervolumen hat, dann geht's 
gut. Aber bei allen Displays die mir so bekannt sind, ist das nicht so. 
Stattdessen werden sie über einen Port angesprochen und damit ist dann 
die Benutzung ausgesprochen kompliziert und obendrein langsam, denn 
Pixel per Load-Store von der CPU zu bewegen ist nicht wirklich lustig.

W.S.

von Lars R. (lrs)


Lesenswert?

W.S. schrieb:
> Lars R. schrieb:
>> Ich bin kein Display-Experte.
>
> Ja.
>
> Hier geht es um die Bus-Belastung.

Bei mir nicht. Dachte, mit meiner knappen Frage geht das, aber ich hätte 
mich nicht in den Thread mit hineinhängen sollen. Für den TO ist Dein 
Post sicher trotzdem hilfreich.

: Bearbeitet durch User
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.