MI0283QT-2 mitHX8347 ist echt langsam

OP #1896188
Lesenswert?

Hallo zusammen,

ich habe mir von Watterott das MI0283QT-2 Display mit Adapter gekauft. 
Nach einigem hin und her läuft das Display, ich kann Bilder anzeigen und 
schreiben (Alphabet mal pixelweise definiert).

Mir kommt das Display aber sehr langsam vor. Ich steuere es über SPI an 
und wenn ich den (leicht angepassten) Code von Watterott nehme und das 
Display komplett mit einer Farbe fülle, dann kann ich zuschauem wie sich 
die Farbe über das Display arbeitet. Das ganze dauert ~ 0,5 Sekunden 
(grob geschätzt).

Geht das auch schneller? Hat da jemand Erfahrung mit gesammelt? Ich habe 
im Datenblatt vom HX8347 nichts gefunden und SPI-Takt verstellen bringt 
nichts.

Gruß
Gepi
Gast #1896229
Lesenswert?

Hallo,

welchen Mikrocontroller nutzt du denn bzw. welche SPI Taktrate?

Das Display ist auch bei mir recht langsam (STM32 bei 72MHz, SPI Takt = 
16 Mhz). Allerdings muss man halt sagen (ich gehe mal vom 16Bit Modus 
aus), dass 320 * 240 Pixel a 16 Bit = 150 Kilobyte über eine serielle 
Schnittstelle bei 16 MHz halt ihre Zeit brauchen... Selbstverständlich 
das ganze plus die nicht gerechneten Kommandos.

Also ich denke, das ist langsam by Design.
Gleichzeitig kann man durch Optimierung des Zeichnens viel rausholen - 
musst du wirklich den kompletten Screen neu schreiben?

Ich baue mir gerade eine Hardware auf, bei der ich das Display mal am 
Parallelen Bus über den FSMC eines STM32F103 ansteuern werde - wenn du 
magst, kann ich dir mal das Ergebnis mitteilen, sobald ich es habe - 
dauert aber noch eine Weile weil im Moment das Geld fehlt...

Grüße
Nils
OP #1896296
Lesenswert?

Hallo Nils,

ich habe das Display an einem ATXMEGA128A1, der Controller läuft mit 
16MHz, SPI gerade mit 8 da Prescaler minimal 2 ist. Werde am WE mal auf 
16MHz SPI-Takt gehen aber ich habe wenig Hoffnung. Habe gestern zwischen 
2 MHz und 8 MHz gewechselt und die Geschwindigkeit ist gleich geblieben. 
Liegt also wohl nicht am SPI Takt.

Ich würde schon gerne das komplette Bild ändern. Da kommt später ein 
Menü drauf und je nach Auswahl /es lebe der Touch Screen) kommt dann was 
ganz anderes.

Gruß
Gepi
Gast #1915509
Lesenswert?

Hi gepi

Da ich mit dem gedanken spiele mir eins zu holen interessiert mich dein 
ergebnis...ein bericht währe super.

Wie sieht denn dein code aus?

Ich vermute aber, das es am HX8347 liegt, denn laut DB Seite 170, sind 
bei Write min. 8ns pro Puls möglich...bei 16bit also ~4MHz??
Grüße
Gast #1915520
Lesenswert?

@gebi
Kannst du mal dein Source hier reinstellen. Ich versuche nämlich auch 
gerade das Display in 16bit/type 1 anzusteuern allerdings macht es bei 
mir seit tagen keinen mux.
Wäre echt nett.

mfg
OP #1915848
Lesenswert?

Hallo,

Code ist im Anhang (hoffe das klappt so). Der Code ist so ziemlich 
dasselbe wie der, den man bei Watterott runterladen kann.
Für die parallele Ansteuerung habe ich noch keinen eigenen Code, gerade 
keine Zeit.

Zur seriellen Ansteuerung: Im Datennblatt steht Serial Clock Cycle min. 
20ns.
Gehen wir also vom Minimum aus, dann kann ich den Controller in einer 
Sekunde mit 50 Millionen bits vollballern (theoretisch, so wie ich SPI 
verstanden habe), meine 8MHz SPI-Takt sollte der Controller also können. 
Wenn ich nun bei 8MHz pro Periode 1 bit übertrage und ich pro Pixel mit 
16 bit Farbtiefe 16 bits brauche, dann dürfte es ~154ms dauern bis ich 
das Display in einer Farbe befüllt habe. Ich hab jetzt keine Ahnung ob 
und wenn ja wie lange mein ATXMEGA braucht das SPI Senderegister neu zu 
beschreiben? Evtl kommt da aber noch was drauf.

Jedenfalls hab ich den Controller angesteuert über SPI mit 8MHz und 
brauche ~0,5 Sekunden bis das Display "voll" ist. Das ist mir zu langsam 
wenn ich dem Bild beim Aufbau zuschauen muss.

Code für parallele Ansteuerung gibts bei mikroe.com, muss man eben bissl 
suchen.

Gruß
Gepi
Angehängte Dateien:
Gast #1920033
Lesenswert?

nabend,

also ich hab die letzten Tage leider erfolglos versucht das mi0283qt-2 
parallel mit 16bit (8080) anzusteuern.Ein paar Fehler habe ich gefunden 
z.b. ist TypeI scheinbar nicht möglich wie ich herausgefunden habe was 
in dem speerlichen Datenblatt von Watterott nicht auftaucht (aber dafür 
hier http://www.displayfuture.com/engineering/specs/TFT/MI0283QT-2.pdf). 
Nun habe ich das display mit der konfiguration (IM3:0 = 0010) auf TypeII 
umgestellt allerdings immernoch ohne Erfolg. als Init-Routine ich eine 
ähnliche der von watterott mit der Anpassung für 16bit parallel und 
RGB565.
Bisher habe ich alles überprüft sprich also meine Hardwareverbindungen 
zwischen XMEGA128A1 und TFT, meine Ansteuerungsabfolge etc. der 
Steuerleitungen und und und. Aber nun bin ich im Moment am ENDE meines 
Lateins.
Also hat es irgendjemand geschafft das Display parallel in irgendeiner 
Art und Weise zulaufen zu bringen oder kann mir sagen was ich noch 
überprüfen.... kann.

mfg
jojo
Gast #1921313
Lesenswert?

So heute habe ich mal eine tft_read Routine gebastellt um zu sehn ob die 
Register des HX8347-D auch richtig beschrieben werden und hab dabei 
festgestellt das nicht alles Register den von mir vorher gesendeten Wert 
enthalten warum das so ist kann ich allerdings nicht sagen.
Ich gehe mal nicht davon aus das der Controller des TFT an den Settings 
herumspielt.
Weiter bin ich jetzt bis dato immer noch nicht.
Das Bild ist wie die letzten Tage schon immer noch einfach WEIß was nach 
einem erfolgreichen Init nicht sein sollte.

Dem Video von Watterott nach zu urteilen sollte nach dem Init ein 
"rauschiges Bild" auf dem Display auftauchen.

mfg
Gast #1924722
Lesenswert?

Also ich hab das gute Display jetzt auch mal mit SPI in Betrieb genommen 
und das funktioniert mit der Init bzw. Registerwerten (von Watterrott) 
die ich vorher auch schon für den parallelen modus verwendet haben somit 
ist mal der beweis erbracht es ist nicht tot. im parallelen modus 
allerdings hat es bis zuletzt kein ton von sich gegeben.
#2491336
Lesenswert?

Moin zusammen,

ich habe ein STM32F4-Discovery erstanden. Nettes Teil :)

Würde nun gerne ein TFT (via SPI) anschliessen, und bin über das 
Watterott TFT (http://www.watterott.net/projects/mi0283qt) gestolpert. 
Nun eine einfache (hoffentlich richtige) Rechnung:

Der STM32 läuft mit 168Mhz. Er sollte also sagen wir 48Mhz SPI Takt 
schaffen (< 168/2). Minimale SPI Taktlänge des HX8347 ist lt. Datenblatt 
20ns, also max. 50Mhz Takt. Das würde bei 320x240x16Bit folgende Zeit 
für das komplette Schreiben des Bildschirms (Nur Pixeldaten) geben:
>>> 1000/(48e6/(320*240*16))
25.6ms, entspricht ca. 39 Frames pro Sekunde. Das wäre also schon mehr 
als Videotauglich :).

Ich frage mich nun ob sich die theor. Daten auch in der Praxis 
errreichen lassen. Kommen die verbauten Pegelwandler 74LVC244 (lt. 
Layout der Adapterplatine) da mit (lt. Datenblatt, würde ich sagen ja? 
unsicher). Hat schon jemand hier praktische Erfahrungen gesammelt und 
kann hier berichten?
#2491465
Lesenswert?

Ich sehe gerade im Datenblatt dass der STM32F407VG nur max. 37.5MBit/s 
auf SPI1 kann. SPI2 und SPI3 können max. 21MBit/s. Das entspricht dann 
für SPI1 32 ms pro Frame oder 31 Frames/s.

Hmm hat der TFT Controller eigentlich ein Dual Framebuffer, so dass man 
Puffer A füllen kann und dann umschaltet auf Puffer B (d.h. Bildaufbau 
nicht sichtbar, ... mal schauen.)
#2672934
Lesenswert?

Kai O. schrieb:
> ich habe ein STM32F4-Discovery erstanden. Nettes Teil :)
>
> Würde nun gerne ein TFT (via SPI) anschliessen, und bin über das
> Watterott TFT (http://www.watterott.net/projects/mi0283qt) gestolpert.


Das habe ich auch gerade gemacht und mal ne Anwendung gebaut die einen 
Testbildschirm anzeigt (Farbverlauf)

Der Code ist weder schön noch effizient, was ich aber noch ändern will. 
Der Einstieg mit dem Display auf nem STM32F2 oder F4 ist damit aber 
schnell möglich.
Angehängte Dateien:
Gast #2703683
Lesenswert?

Leider ist diese Lib auf den Compiler von Arduino optimiert.
Damit müsste ich alle Libs, welche im Projekt verwendet werden, auf das 
AVR Studio adaptieren. Das würde ich gerne Vermeiden.
Im AVR Studio existiert ein Beispielprojekt für den HX8347A. Von HX8347A 
zu HX8347D haben sich quasi alle Register geändert und kein Stein ist 
auf dem anderen geblieben...
(Firma: privat) #2865774
Lesenswert?

Hi ich möchte das Thema nochmal aufgreiffen.
Hab das gleiche Problem wie ganz oben

Also ich habe einen MSP430F247 und steuere den mit SPI 16MHZ
und bei mir braucht das ding auch rund 500ms.
Hat irgendwer ne idee an was es liegen könnte?
Hab eig. zum größte Teil den Orginal Treiber verwendet( HX8347)

Was ich festgestellt habe ist, dass ein einzelner draw(color)
ca 8us braucht.
Das sich natürlich bei 320*240*8 extrem bemerkbar macht (das is die 
Hauptbremse würd ich sagen)
Mein erster Ansatz war das ich diese 2* wr_SPI(data) in 1 wr_SPI(data) 
zusammengefasst habe was schonmal 1 call einspart. (hat auch ca. 100ms 
gebracht).
Aber jetzt weiß ich auch nicht mehr weiter... evtl SPI zu lansam? ka..

Hat schon jemand das ding mit SPI vernünftig ans laufen gebracht?

mfg Sogge
(Firma: privat) #2866569
Lesenswert?

Geht aber leider ned hab nur max. 16MHZ, über den externen quarz, zur 
verfügung (die Hardware ist schon fix)
Da der MC nicht mehr kann.

Hat irgendwer noch eine andere Idee? Software technisch? is da noch was 
raus zu holen?
Wie gesagt nutze eig. den orginal Treiber

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