Forum: Mikrocontroller und Digitale Elektronik STM32F429 LTDC Nutzen, welche Displays sind möglich?


von Christian (Gast)


Lesenswert?

Hallo liebe Forengemeinde,

ich möchte den LTDC eines STM32F429 nutzen um ein Display anzusteuern. 
Nun lese ich mich seit 2 Tagen durchs gesamte Netz und bin total 
verwirrt. Im Wesentlichen habe ich folgende Fragen:

- Kann ich dieses Display am STM32F429 nutzen?
http://www.reichelt.de/TFT-DIS-7-0-MT/3/index.html?&ACTION=3&LA=446&ARTICLE=101753&artnr=TFT-DIS+7%2C0+MT&SEARCH=7%22+touch

--> Wenn ja, wie initialisiere ich es? Ich finde im angegebenen 
Datenblatt kaum Informationen dazu... Oder haben WVGA-Displays immer 
eine automatische Initialisierung?


Weiterhin bin ich total verwirrt was es überhaupt für Möglichkeiten 
gibt. Oftmals sieht man ja, dass Displays mit den Controllern SSD1289 
und SSD1963 am STM32F4-Disco verwendet werden und irgendwie über den 
FSMC-Bus gesteuert werden. Kann ich diese Displays auch am LTDC des 
STM32F429 betreiben? Oder sind das vollkommen verschiedene Dinge???


Ich wäre sehr dankbar wenn mir jemand einmal kurz aufzeigen kann wo mein 
Verständnisproblem bzw. die Ursache meiner Verwirrung liegt. Es ist 
bestimmt sehr einfach, aber ich komme einfach nicht dahinter.



Viele Grüße
Christian

von holger (Gast)


Lesenswert?

>Ich wäre sehr dankbar wenn mir jemand einmal kurz aufzeigen kann wo mein
>Verständnisproblem bzw. die Ursache meiner Verwirrung liegt.

Der LTDC ist der Displaycontroller. Für ein Display
deiner Grösse brauchst du noch externes RAM.

Such mal nach STM32F429 LTDC VGA. Das kommt deiner
Geschichte am nächsten. Statt der R2R DACs müsstest
du dann theoretisch die digitalen IOs direkt an
das Display anschliessen. So weit zur Theorie;)

von Christian (Gast)


Lesenswert?

Okay, laut dem Datenblatt soll aber ein HIMAX HX8262-A nzw ein HIMAX 
HX8678-A als Referenz für das Timing und Weiteres herangezogen werden.

Oder sehe ich das auch wieder falsch?

Danke schonmal für den Tip!


Viele Grüße
Christian

von holger (Gast)


Lesenswert?

>Okay, laut dem Datenblatt soll aber ein HIMAX HX8262-A nzw ein HIMAX
>HX8678-A als Referenz für das Timing und Weiteres herangezogen werden.

Ja und? Dann lies halt die Datnblätter der Controller.

Im Prinzip kannst du das Display so wie auf dem STM32F429
Discovery anschliessen. Dotclock, Enable, Hsync, Vsync
und die RGB Leitungen. Konfigurieren musst du das Display
nicht, also fallen die anderen Leitungen weg.

Das Timing einzustellen im LTDC könnte dann knifflig werden.

Und der FPC Connector ist sicher auch nicht jedermanns Sache.

Einfach ist was anderes, aber gehen wird das irgendwie.

von Christian (Gast)


Lesenswert?

@holger:

Kannst Du mir einen Tipp geben wie es einfacher geht?

Ich versuche auchs chon seit 2 Tagen hinter ein Beispiel mit dem 
STM32F429-Disco zu kommen wo das TFT vom Disco-Board angesteuert wird. 
So wie ich es sehe ist es ja die gleiche Schnittstelle wie die von 
meinem beabsichtigten Board. Daher dachte ich, ich könne mich an dem 
Beispiel orientieren. Seltsamerweise wird das Display auf dem 
Disco-Board aber auch initialisiert und alles...
Und ich weiss noch nicht so recht wofür der Beispielcode das externe 
SDRAM nutzt... Ich bin nur noch verwirrt je mehr ich versuche es zu 
verstehen...


Macht es deiner Meinung nach Sinn ein Display mit einem SSD1963 oder 
Ähnliches einzusetzen? Bevor ich jetzt vollkommen die falsche Richtung 
einschlage...


Viele Grüße
Christian

von Uwe B. (derexponent)


Lesenswert?

Hi Christian,

willst du ein STM32F429-IC oder das STM32F429-Disco Board einsetzen ?

beim Disco-Board hängt am FMC-Bus schon das SD-RAM
bin mir nicht sicher ob du da noch ein Display zusätzlich
drannklemmen kannst

eins zuerst :

FMC-Schnittstelle != LTDC-Schnittstelle

beim Disco-Board hängt wie schon geschrieben
das SD-RAM am FMC-Bus und wird für das Display
als Graphic-Puffer benötigt

Die LTDC-Schnittstelle sendet die Daten
aus dem SD-RAM ans Display
(mit H-Sync und V-Sync wie bei einem PC-Monitor)

hier ein Beispielschnippsel für den LTDC :
1
  //---------------------------------------
2
  // Timer konfig
3
  // HSync = 10       VSync = 2
4
  // HBP   = 20       VBP   = 2
5
  // HFP   = 10       VFP   = 4
6
  // 
7
  // Portrait  : W=240, H=320
8
  //---------------------------------------
9
  LTDC_InitStruct.LTDC_HorizontalSync = 9;       // HSync-1
10
  LTDC_InitStruct.LTDC_VerticalSync = 1;         // VSync-1
11
  LTDC_InitStruct.LTDC_AccumulatedHBP = 29;      // HSync+HBP-1
12
  LTDC_InitStruct.LTDC_AccumulatedVBP = 3;       // VSync+VBP-1
13
  LTDC_InitStruct.LTDC_AccumulatedActiveW = 269; // HSync+HBP+W-1
14
  LTDC_InitStruct.LTDC_AccumulatedActiveH = 323; // VSync+VBP+H-1
15
  LTDC_InitStruct.LTDC_TotalWidth = 279;         // HSync+HBP+W+HFP-1
16
  LTDC_InitStruct.LTDC_TotalHeigh = 327;         // VSync+VBP+H+VFP-1
17
18
  LTDC_Init(&LTDC_InitStruct);

mehr ist da nicht einzustellen,
man muß die Auflösung vom Display kennen und das Timing
(falls das nicht stimmt wird schrott angezeigt, oder gar nichts)

der Controller auf dem F429-Disco (ILI9341)
hängt per SPI-Schnittstelle an der CPU
und wird beim initialisieren auf die richtige Betriebsart (RGB)
gestellt und andere sachen die zum Betrieb notwendig sind.
Nach dem Init wird der ILI nicht mehr angesprochen

Gruss Uwe

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Wir haben das kleine Display vom STM32F429-DISCO runtergeschmissen und 
an den entsprechenden Ausgängen ein 7"-Display (800x480) angehängt.

Ein Foto unseres ersten Testaufbaus findest Du hier:
Beitrag "Re: Cortex M7 zu überzüchtet"

Wie Uwe schon schrieb, wird das auf dem Board befindliche zusätzliche 
RAM (8MB) als Speicher für den Displaycontroller genutzt.

Bei diesem Board benötigst Du also keinen anderen Grafikcontroller 
(SSD1963 etc.). Der Controller im Chip macht eigentlich nichts anderes 
als ständig die Daten vom RAM zum Display zu schieben und die 
entsprechenden Taktsignale auszugeben.
Dadurch kann man die sehr preiswerten "dummen" Displays einsetzen (um 
die $10). Den Preis von Reichelt kann man nur als üble Frechheit 
bezeichnen.

Hier gibt es sogar eine 1024x600-Version für einen Zehner:

http://www.aliexpress.com/item/CLAA070NT01CW-LCD-New-original-7-screen-for-tablet-inside-liquid-crystal-display-screen/32271663807.html

Touchscreenfolien zum Draufkleben gibt es da auch ohne Ende.

Man kann mit Tricks übrigens auch bei großen Displays ohne zusätzliches 
RAM auskommen, also wirklich nur mit dem STM32F429. Ich hatte das im 
Beitrag zum Foto mal erläutert.

: Bearbeitet durch Moderator
von m.n. (Gast)


Lesenswert?

Chris D. schrieb:
> Dadurch kann man die sehr preiswerten "dummen" Displays einsetzen (um
> die $10). Den Preis von Reichelt kann man nur als üble Frechheit
> bezeichnen.

Dann zeig doch mal Deine Preisliste, damit auch Deine üblen Frechheiten 
sichtbar werden.
Bei den von Reichelt vertriebenen Displays handelt es sich um 
Ausführungen von EDT für Glyn, die von 3,5" - 7" alle die gleiche 
Steckerbelegung haben und damit untereinander kompatibel sind. Ferner 
ist eine passende Stromversorgung für die Hintergrundbeleuchtung 
vorhanden.

@Christian
Für die ersten Erfahrungen könntest Du auch eine kleineres Display 
nehmen, was ohne ext. Speicher auskommt. Ich hatte mal 5,7" QVGA aus der 
besagten Glyn-Serie angeboten: 
Beitrag "[V] 5,7"-TFT QVGA, gebraucht"

Eine ganz einfache Ansteuerung dazu funktioniert schon am ext. Datenbus 
vom STM32F407: 
http://mino-elektronik.de/TFT-direct-drive/TFT-direct-drive.htm#tft-1 
ff.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

m.n. schrieb:
> Bei den von Reichelt vertriebenen Displays handelt es sich um
> Ausführungen von EDT für Glyn, die von 3,5" - 7" alle die gleiche
> Steckerbelegung haben und damit untereinander kompatibel sind. Ferner
> ist eine passende Stromversorgung für die Hintergrundbeleuchtung
> vorhanden.

Alles gut und schön - aber ein paar MC33063, ein Touchcontroller und 
SMD-Spulen rechtfertigen mMn trotzdem nicht diesen Preis. Die 
Displaybeleuchtung schließt man einfach nur an oder nimmt für 10ct noch 
einen Transistor plus Vorwiderstand und regelt die Helligkeit über PWM. 
Im Übrigen waren bisher alle Displays der AT-Serien, die wir bezogen 
haben, ebenfalls in der Steckerbelegung kompatibel.

Und zum Basteln am STM32F429 reichen die allemal: die liefen hier auf 
Anhieb.

von TriHexagon (Gast)


Lesenswert?

Ich hätte da auch noch eine kleine Frage die zum Thema passt.

Warum ist auf dem 32F429IDISCOVERY Board in dem Display noch ein ILI9341 
Controller eingebaut? Der STM32F429 hat doch schon einen 
Displaycontroller. Da hätte ST doch ein bisschen Geld sparen können oder 
das Board noch billiger anbieten können, oder? Oder wollte man noch die 
Möglichkeit bieten, das Display über SPI/FMC ansteuern zu können?

von m.n. (Gast)


Lesenswert?

TriHexagon schrieb:
> Warum ist auf dem 32F429IDISCOVERY Board in dem Display noch ein ILI9341
> Controller eingebaut?

Vermutlich, weil dieses Display für < 1 $ zu bekommen war. Für den 
Anwender vom Discovery-Board ist das eher nervend, da hier das parallele 
Interface vom ..429 genutzt wird.

@ Uwe.B.
Oder siehst Du irgendeinen Sinn darin?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

m.n. schrieb:
> Vermutlich, weil dieses Display für < 1 $ zu bekommen war. Für den
> Anwender vom Discovery-Board ist das eher nervend, da hier das parallele
> Interface vom ..429 genutzt wird.

:-) So sagte es fast wörtlich damals der ST-Mensch am Telefon - der 
hatte sich nämlich zuerst auch gewundert und dann intern nachgefragt.

> @ Uwe.B.
> Oder siehst Du irgendeinen Sinn darin?

Ich zumindest eher nicht.

: Bearbeitet durch Moderator
von Markus H. (dasrotemopped)


Lesenswert?

hier mal meine Quick+Dirty Lösung für ein Display am STM32F429-LTDC :
http://www.dasrotemopped.de/index.php?var=projekte&nr=17

Bevor man sich ein teures TFT kauft ist das STM32F429-Disco 
Board+Lochraster VGA eine ideale Spielwiese für erste Schritte. 
Besonders, da man davon ausgehen kann, das das Board OK ist !
Die Timings für 800x480 funktionieren nur an einen 16:9 Monitor, die 
beiden anderen Auflösungen kann jeder Monitor. Für VGA kann man den ILI 
getrost ignorieren.

Vor dem Proggen unbedingt CubeMX installieren und DM00105879.pdf lesen.

Gruß,

dasrotemopped.

@ TriHexagon : das TFT auf dem Disco Board kann in mehreren Modi 
betrieben werden, die per Lötbrücken umgestellt werden. Per Lötbrücken 
kann man auf dem Board noch viel mehr verstellen, SB9 sollte man als 
erstes überbrücken.

von m.n. (Gast)


Lesenswert?

Chris D. schrieb:
> Ich zumindest eher nicht.

Für mich ist da sogar ein Punkt, der mich von eingehender Nutzung des 
429 Discovery-Boards abhält. Ich mag lieber schlanken, funktionalen 
Code. Zudem ist mir das Display zu klein und zu schlecht abzulesen.

@ Chris:
Deine 'rabiate' Art, das Display zu entfernen/-sorgen gefällt mir 
eigentlich ganz gut. Allerdings ist es auch ein wenig fummelig, einen 
40-pol. Adapter anzuschließen.

von m.n. (Gast)


Lesenswert?

Markus Horbach schrieb:
> Vor dem Proggen unbedingt CubeMX installieren

Für mich ein Grund, die Finger davon zu lassen ;-)

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

m.n. schrieb:
> Chris D. schrieb:
>> Ich zumindest eher nicht.
>
> Für mich ist da sogar ein Punkt, der mich von eingehender Nutzung des
> 429 Discovery-Boards abhält. Ich mag lieber schlanken, funktionalen
> Code. Zudem ist mir das Display zu klein und zu schlecht abzulesen.

Ja, das war auch wirklich das erste, was ich nach dem Auspacken gemacht 
habe: Display runter ;-)

> @ Chris:
> Deine 'rabiate' Art, das Display zu entfernen/-sorgen gefällt mir
> eigentlich ganz gut. Allerdings ist es auch ein wenig fummelig, einen
> 40-pol. Adapter anzuschließen.

Das Runterlöten ist eigentlich nicht so schwer (zumal das Display dann 
eh in die Tonne wandert): einfach schön mit Flussmittel einpinseln und 
dann mit einer dicken Lötkugel langsam drüberwandern und gleichzeitig 
mit einer Zange die Folie abziehen.

Den (bei mir 50-poligen) Adapter habe ich "extern" aufgebaut und diesen 
dann über die Header des Discovery verdrahtet (siehe obigen Link zum 
Foto) - das erspart das Gefummel direkt auf dem Discovery. Passende 
Adapterplatinen gibt es auch beim Ali.

von Uwe B. (derexponent)


Lesenswert?

m.n. schrieb:
> @ Uwe.B.
> Oder siehst Du irgendeinen Sinn darin?

ich vermute mal ST wollte beim F429-Board einfach die Möglichkeiten
vom DMA2D zeigen und dafür muss das Display am LTDC-Port hängen

damit sind dann Überblend-Effekt, Alpha-Channel und
so Zeug möglich...und das kopieren von RAM-Teilen
per DMA2D läuft unanhängig von der CPU oder TFT-Controller

ich persönlich würde das Display nicht per FMC betreiben wollen :-)

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Uwe B. schrieb:
> ich vermute mal ST wollte beim F429-Board einfach die Möglichkeiten
> vom DMA2D zeigen und dafür muss das Display am LTDC-Port hängen
>
> damit sind dann Überblend-Effekt, Alpha-Channel und
> so Zeug möglich...und das kopieren von RAM-Teilen
> per DMA2D läuft unanhängig von der CPU oder TFT-Controller

Es ging um den ILI9341, der dafür nicht notwendig ist.

Uwe B. schrieb:
> ich persönlich würde das Display nicht per FMC betreiben wollen :-)

Weshalb auch, wenn ein TFT-Controller auf dem Chip ist.

von TriHexagon (Gast)


Lesenswert?

Markus Horbach schrieb:
> @ TriHexagon : das TFT auf dem Disco Board kann in mehreren Modi
> betrieben werden, die per Lötbrücken umgestellt werden. Per Lötbrücken
> kann man auf dem Board noch viel mehr verstellen, SB9 sollte man als
> erstes überbrücken.

Dass heißt man kann den ILI9341 einfach umgehen? Sorry, beschäftige mich 
erst seit gestern mit dem Board und blicke noch nicht ganz durch, aber 
nach dem Schematic nachzuurteilen sieht es auf dem ersten Blick so aus.

Markus Horbach schrieb:
> Bevor man sich ein teures TFT kauft ist das STM32F429-Disco
> Board+Lochraster VGA eine ideale Spielwiese für erste Schritte.
> Besonders, da man davon ausgehen kann, das das Board OK ist !
> Die Timings für 800x480 funktionieren nur an einen 16:9 Monitor, die
> beiden anderen Auflösungen kann jeder Monitor. Für VGA kann man den ILI
> getrost ignorieren.

Oh an VGA habe ich gar nicht mehr gedacht. Da geht einem ja das 
Bastlerhertz auf ;).

m.n. schrieb:
> Markus Horbach schrieb:
>> Vor dem Proggen unbedingt CubeMX installieren
>
> Für mich ein Grund, die Finger davon zu lassen ;-)

Es ist echt ein bisschen Overbloat, aber zumindest fürs Initialisieren 
ist es Gold wert. Es gibt ja zum Glück immer noch die Möglichkeit direkt 
in die Register zu schreiben.

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Chris D. schrieb:
> Ja, das war auch wirklich das erste, was ich nach dem Auspacken gemacht
> habe: Display runter ;-)

Und du grinst dann noch mit einem zugekniffenen Auge?

Also, wenn ich das lese, wird mir schlecht. Wozu geiert ihr denn 
eigentlich auf der Embedded nach solchen Boards, wenn ihr sie als 
allererstes schlachtet?

Mein Vorschlag ist immer wieder, sich zunächst ein Projekt vorzunehmen 
und danach eine dazu passende Leiterplatte zu machen. OK, die kostet 
dann auch nen Herstellungspreis, aber dafür hat man dann deutlich mehr 
und besseres als mit irgend einem kleinen Eval-Board.

Jaja, ich kann es vestehen, wenn jemand so eine Art 
Universal-Steuerbaugruppe haben wollen, wo sie neben einem µC und dessen 
I/O auch noch einen Bildschirm, SD Karte, USB usw. haben wollen, damit 
sie dies für Bastelzwecke einsetzen können. Ein Eval-Board mit Display 
drauf ist dafür ganz OK, aber selbiges runterzureißen und dann Strippen 
dran? So einen Drahtverhau kriegt man nie wieder in Form.

Ich habe ja ein Verständnis für Leute, die beruflich was anderes machen 
oder bereits emeritiert sind oder Schüler mit schmalem Taschengeld - und 
die deshalb keinen Zugriff (mehr) auf die üblichen Distributoren haben 
und sich deshalb leider an die üblichen Halsabschneider der Branche 
halten müssen und ein Eval-Board benutzen müssen, weil eben DIESES der 
einzige Weg für sie ist, weigstens etwas auf die Beine zu kriegen.

Ja, mir kommt da der Ärger hoch, weil auf diese Weise ganz gewiß ne 
Menge Leute mit Ambitionen sich an verrammelten Einkaufswegen aufreiben 
müssen. Ich hatte ja nicht umsonst das Projekt "Lernbetty" hier 
angefangen, damit auch Leute mit ganz kleinem Budget etwas Benutzbares 
in die Finger kriegen können.

Ich hatte auch mal dran gedacht, hier sowas wie einen Nachfolger für die 
Lernbetty zu plazieren, ein Beispiel sieht man auf dem Bild. (die Box 
stammt von Glyn, da passen Display+LP prima rein) Das 7" Display hat ca. 
22 Euro gekostet, aus China via ebay. Ich meine, das kann man sich 
leisten. Die LP ist genau so groß, hat einen NXP-Chip drauf und 16 MB 
RAM (32 bittig).

Ich bin ohnehin mehr für NXP als für ST, denn technisch hat NXP schon 
immer mehr drauf gehabt und ST war immer nur der Nachzügler. Jahrelang 
haben die von ST kein SDRAM-Interface, keinen 32 Bit breiten externen 
Bus und keinen Displaycontroller gehabt. Selbst jetzt hakelt es bei 
denen immer noch.


Und jetzt muß ich hier lesen, wie selbst Leute aus der Branche wie du 
sowas sinnlos zerbastelst. Zestörungswut?

W.S.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Chris D. schrieb:
>> Ja, das war auch wirklich das erste, was ich nach dem Auspacken gemacht
>> habe: Display runter ;-)
>
> Und du grinst dann noch mit einem zugekniffenen Auge?

Natürlich - ich habe mir nur zu dem Zweck das Board gekauft.

Und selbstverständlich kann ich dann auch entscheiden, das Ding 
runterzuwerfen, weil es mich bei meinem Vorhaben stört.

Ganz ehrlich - was soll man mit einem 2,4"-Briefmarkendisplay mit 
Touchfunktion in einer ernsthaften Anwendung anfangen?

Wir wollten einen 429 mit RAM und ST-Link und erstmal schauen, wie 
unsere Grafikroutinen auf großen Displays laufen - da gibt es nichts 
Günstigeres als das Discovery.

> Also, wenn ich das lese, wird mir schlecht. Wozu geiert ihr denn
> eigentlich auf der Embedded nach solchen Boards, wenn ihr sie als
> allererstes schlachtet?

Es wurde nicht geschlachtet sondern genau eine Komponente durch eine 
andere ersetzt, die für unsere Zwecke sinnvoll ist.

> Mein Vorschlag ist immer wieder, sich zunächst ein Projekt vorzunehmen
> und danach eine dazu passende Leiterplatte zu machen. OK, die kostet
> dann auch nen Herstellungspreis, aber dafür hat man dann deutlich mehr
> und besseres als mit irgend einem kleinen Eval-Board.

Wir brauchten hier erstmal etwas, um uns mit dem 429-LTDC vertraut zu 
machen - und das Disco leistet alles, was wir benötigen.

> Jaja, ich kann es vestehen, wenn jemand so eine Art
> Universal-Steuerbaugruppe haben wollen, wo sie neben einem µC und dessen
> I/O auch noch einen Bildschirm, SD Karte, USB usw. haben wollen, damit
> sie dies für Bastelzwecke einsetzen können. Ein Eval-Board mit Display
> drauf ist dafür ganz OK, aber selbiges runterzureißen und dann Strippen
> dran? So einen Drahtverhau kriegt man nie wieder in Form.

Das Argument verstehe ich nicht. Es geht hier doch nicht um ein 
Endprodukt sondern ein Entwicklungssystem, an dem ich schnell Änderungen 
vornehmen können muss - und genau das leistet das Disco: da habe ich 
alle Anschlüsse rausgeführt und kann nach Belieben experimentieren. Und 
wer es nicht lose mag, der kann die Sachen auch problemlos fixieren.

> Und jetzt muß ich hier lesen, wie selbst Leute aus der Branche wie du
> sowas sinnlos zerbastelst. Zestörungswut?

Für uns hier ist das sehr sinnvoll gewesen, weil wir so problemlos ein 
7" anschließen konnten.

Deine Bedürfnisse sind eben nicht zwangsläufig die Bedürfnisse anderer.

Selbstverständlich wird auf Experimentierboards bei Bedarf gelötet und 
umgestrickt.

Für mich ist ein Discovery kein heiliger Gral, der unbedingt unversehrt 
bleiben muss, sondern einfach nur ein Experimentier-PCB.

Für 25€ fackel ich nicht lange damit, ein Display runterzuwerfen, das 
ich sowieso nie benötigen werde, weil es für sinnvolle Anwendungen viel 
zu klein ist.

von m.n. (Gast)


Lesenswert?

W.S. schrieb:
> Und jetzt muß ich hier lesen, wie selbst Leute aus der Branche wie du
> sowas sinnlos zerbastelst. Zestörungswut?

Da Du mich nicht meinst, kann ich ja entspannt antworten.
Mein 429 Discovery-Board habe ich ganz regulär vom Distributor erstanden 
(nicht mit lange anstehen verwechseln ;-) Daß das Display nichts taugt, 
konnte ich erst danach feststellen. Daher kommt der Wunsch (Zwang), es 
auszutauschen.
Mit NXP hast Du ja recht, wenn es nur ums TFT geht. Wenn man hohen 
Prozessortakt und viel RAM auf dem Chip möchte, ist STM32 eben ein Stück 
voraus. Das war auch der Grund, warum ich mit ARM etwas angefangen habe. 
Wenn es um 'Schönheit' und Nutzen der Hardware geht, hat für mich immer 
noch Renesas die Nase vor. Gut, ist ein anderes Thema.

TriHexagon schrieb:
> Dass heißt man kann den ILI9341 einfach umgehen? Sorry, beschäftige mich
> erst seit gestern mit dem Board und blicke noch nicht ganz durch, aber
> nach dem Schematic nachzuurteilen sieht es auf dem ersten Blick so aus.

Einfach umgehen? Eben nicht! Du mußt ihn aktivieren, damit er nicht mehr 
stört; gäbe es ihn nicht, wäre Alles bestens.

von TriHexagon (Gast)


Lesenswert?

m.n. schrieb:
> TriHexagon schrieb:
>> Dass heißt man kann den ILI9341 einfach umgehen? Sorry, beschäftige mich
>> erst seit gestern mit dem Board und blicke noch nicht ganz durch, aber
>> nach dem Schematic nachzuurteilen sieht es auf dem ersten Blick so aus.
>
> Einfach umgehen? Eben nicht! Du mußt ihn aktivieren, damit er nicht mehr
> stört; gäbe es ihn nicht, wäre Alles bestens.

Ja stimmt, geht leider nicht, sah zuerst so aus. Jetzt muss ich das Ding 
zuerst über Serial Interface Mode zum RGB Interface Mode schalten -.- .

von W.S. (Gast)


Lesenswert?

m.n. schrieb:
> Mein 429 Discovery-Board habe ich ganz regulär vom Distributor erstanden

Jaja, glaub ich dir doch. Aber die nächste Embedded ist ja bald. Bei den 
beiden letzten hab ich die Geier in hellen Scharen um die Stände von ST 
sich drängeln sehen, die Visitenkarten schwenkend.. Mal sehen, wie es 
heuer sein wird..

Aber mal zu den STM32ern: Das mit dem hohen Takt war deinerseits wohl 
ein Scherz. Wenn man mal nachschaut, wieviele Waitstates man bei höheren 
Taktfrequenzen vorsehen muß - trotz Flashrom-Accelerator-Dingens, merkt 
man schnell, daß da bei ST ne Menge Augenwischerei und Schaumschlägerei 
betrieben wird.

Das Nächste ist der externe Bus: bislang eben nur 16 bittig und erst 
seit vorigem Sommer gibt's die ersten Muster im 208er Gehäuse mit 32 
bittigem Bus. Das Blöde dabei ist, daß dort noch Macken drin sind und 
man bei SDRAM keine statischen externen Teile anschließen darf. Bei 
NXP ist z.B. der LPC2478 schon steinalt und der LPC4088 schon seit 
Jahren erhältlich - sogar bei TME für jedermann.

Bei den STM32F429-Discovery ist m.W. ein viel kleinerer Chip verbaut und 
demzufolge der externe Bus höchstwahrscheinlich nicht 32 bittig - und 
das trotz des Displayes. Flaschenhals, sag ich nur. Was soll das? Wenn 
Chris schreibt "wie unsere Grafikroutinen auf großen Displays laufen", 
dann kommt mir nur das Kopfschütteln.

W.S.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Das Nächste ist der externe Bus: bislang eben nur 16 bittig und erst
> seit vorigem Sommer gibt's die ersten Muster im 208er Gehäuse mit 32
> bittigem Bus. Das Blöde dabei ist, daß dort noch Macken drin sind und
> man bei SDRAM keine statischen externen Teile anschließen darf. Bei
> NXP ist z.B. der LPC2478 schon steinalt und der LPC4088 schon seit
> Jahren erhältlich - sogar bei TME für jedermann.

MWn nur bis 512kB Flash - und das ist für unsere Anwendung zu wenig.

Aber: der Op hat nach dem LTDC des STM32F429 gefragt. Da hilft ihm ein 
NXP-Verweis wenig.

Und: was wir hier im Forum sicher nicht brauchen, ist noch ein 
Glaubenskrieg über Controllerfamilien. Da gibt es schon reichlich.

Jede Familie hat ihre Vor- und Nachteile und jeder hat andere gründe, 
warum er gerade diesen Typ einsetzt.

Wir sind bspw. mit der STM32-Familie und ihrer feinen Granulierung sehr 
zufrieden und kennen deren Macken. Die parallele Einarbeitung in eine 
zweite Familie und deren Macken lohnen sich für uns definitiv nicht - 
dafür machen wir zu wenig Umsatz mit der reinen 
Elektronik/Mikrocontrollern. Bei anderen Unternehmen wie bei Dir kann 
das natürlich ganz anders aussehen.

> Bei den STM32F429-Discovery ist m.W. ein viel kleinerer Chip verbaut und
> demzufolge der externe Bus höchstwahrscheinlich nicht 32 bittig - und
> das trotz des Displayes. Flaschenhals, sag ich nur. Was soll das? Wenn
> Chris schreibt "wie unsere Grafikroutinen auf großen Displays laufen",
> dann kommt mir nur das Kopfschütteln.

Warum? Das Display läuft hier ohne irgendwelche Verrenkungen und der 
LTDC werkelt komplett im Hintergrund.

Für uns war es hier einfach das Ziel, unsere Grafikroutinen bzgl. 
ChromeArt usw. testen zu können. Und das können (bzw. konnten) wir mit 
dem Board sehr gut.

Das gesparte Geld fliesst dann in andere Dinge :-)

: Bearbeitet durch Moderator
von m.n. (Gast)


Lesenswert?

W.S. schrieb:
> Aber die nächste Embedded ist ja bald. Bei den
> beiden letzten hab ich die Geier in hellen Scharen um die Stände von ST
> sich drängeln sehen, die Visitenkarten schwenkend.. Mal sehen, wie es
> heuer sein wird..

Ich gehe mindestens schon 20 Jahre nicht mehr auf Messen. Der Aufwand 
lohnt sich einfach nicht! Falls doch einmal, zahle ich lieber den vollen 
Eintrittspreis, als meine Daten sonstwo abzuliefern: Wohlstandskind 
eben.

> Aber mal zu den STM32ern: Das mit dem hohen Takt war deinerseits wohl
> ein Scherz. Wenn man mal nachschaut, wieviele Waitstates man bei höheren
> Taktfrequenzen vorsehen muß - trotz Flashrom-Accelerator-Dingens, merkt
> man schnell, daß da bei ST ne Menge Augenwischerei und Schaumschlägerei
> betrieben wird.

Ich beiße jeden Morgen in eine faule Zitrone und hasse Scherze!

Ich kenne die RX von Renesas mit 100 MHz Flash-Zugriff. Im Vergleich 
dazu sind die STM32F4 (grob) proportional zur Taktfrequenz schneller. 
Meinem obigen Link folgend kann man die Zeiten für Zeichenausgabe auf 
einem TFT sehen: RX610 @ 100 MHz / STM32F407 @ 168 MHz.
Selbst bei ISR-Aufrufen stören die waitstates nicht, da parallel zum 
Sichern der notendigen Register schon der Flash-Zugriff für den ISR-Code 
stattfinden kann.

wg. ext. Busbreite: ich habe eine Schaltung mit ..429 in Arbeit, bei der 
ich einen 100pol. µC nehme. Den breiten ext. Bus brauche ich nicht. Was 
ich gut finde, ist die FLUT.

Chris D. schrieb:
> Aber: der Op hat nach dem LTDC des STM32F429 gefragt. Da hilft ihm ein
> NXP-Verweis wenig.

Glaubst Du, der meldet sich noch mal?

von Christian J. (Gast)


Lesenswert?

Hi,

ich pappe mich mal hier dran, da ich das Display auf dem F429 sehr nett 
finde und auch benutze, zusammen mit der Lib von Zilen Majerle.

Aber mal generell zum Verständnis: Arbeitet das Ding im DMA Betrieb? Ich 
habe da herumk gesucht und keine Treffer für DMA gefunden, weder im Lib 
Code von Tilen als auch im ST StdPeriphLib. Jedenfalls sehe ich es auf 
dem Display, wenn ich im Memory Debug eine Zahl ändere sofort an einem 
Pixel, auch wenn der Debugger steht.

Und wenn DMA: Wer schaufelt sich da die Daten rein? Das Display vom 
SDRAM oder schiebt der Controller sie rüber?

von Uwe B. (derexponent)


Lesenswert?

@Christian,

der F429 hat einen LCD-Controller
(der unabhängig von der CPU läuft)

dieser sendet (einmal eingestellt)
die Bildinformationen zyklisch vom externen SDRAM
an das Display (ähnlich einer Grafik-Karte)
mit VSync, HSync und RGB-Daten

wenn die CPU ein Pixel im Grafik-RAM verändert,
wird dieses beim nächsten Display-Refresh angezeigt

Der LTDC kann auch zwei Layer "Pages" gleichzeitig verwalten
(sozusagen zwei komplette Bildschirminhalte)
diese können dann etweder einzeln angezeigt werden
(damit ist ein Grafik-Frame Buffer realisierbar)

oder sie können beide gleichzeitig angezeigt werden
wobei hier die Transparenz von einem Layer eingestellt werden kann

von Christian J. (Gast)


Lesenswert?

Uwe B. schrieb:

> dieser sendet (einmal eingestellt)
> die Bildinformationen zyklisch vom externen SDRAM
> an das Display (ähnlich einer Grafik-Karte)
> mit VSync, HSync und RGB-Daten
>
> wenn die CPU ein Pixel im Grafik-RAM verändert,
> wird dieses beim nächsten Display-Refresh angezeigt

Hi,

heisst das umgekehrt auch, dass der Bus zum SDRAM derweil blockiert ist 
für die CPU? Ich habe noch einen großen Struct im SDRAM liegen, mein 
"Spielfeld". Das würde aber auch in das CCRAM passen oder auch ins 
normale RAM. Meine Anwendung modifiziert ja das SDRAM über einfache 
Umrechungen der x,y Koordinaten.

von W.S. (Gast)


Lesenswert?

Christian J. schrieb:
> heisst das umgekehrt auch, dass der Bus zum SDRAM derweil blockiert ist
> für die CPU?

Ah.... JA. Du hast es herausgefunden.

Ja, so ist es. Die Video-Daten müssen aus dem RAM in die Zwischenpufer 
des TFT-Controllers geschaufelt werden nd von dort aus zum eigentlichen 
Display.

Das belastet natürlich den Bus, insbesondere das externe Businterface. 
Eben deshalb ist es ja so wichtig, dieses nicht zum Flaschenhals werden 
zu lassen. Und daher eben meine Ansicht, daß für sowas vorzugsweise eben 
ein 32 bittiger externer RAM nebst 32 bittigem Bus in Frage kommt.

Rechne doch einfach mal aus, was da an Datenströmen zustande kommt:
bei einem 7" in WVGA kannst du ca. 30..40 MPixel/s veranschlagen, jedes 
zu 16 Bit (bei 565 Farbe). Macht rund 60..80 MByte/s, die da geschaufelt 
sein wollen. Wenn der externe Bus dann noch zu etwas taugen soll, müßten 
darüber hinaus nochmal 60..80 MByte/s (oder mehr wenn's geht) zur 
Verfügung stehen. das wäre dann das Kontingent, aus dem sich die CPU 
bedienen kann.

W.S.

von Christian J. (Gast)


Lesenswert?

W.S. schrieb:

> Ja, so ist es. Die Video-Daten müssen aus dem RAM in die Zwischenpufer
> des TFT-Controllers geschaufelt werden nd von dort aus zum eigentlichen
> Display.

In de Tat. Meine Spielrei mit meinem "Game of Life", was eine optimierte 
Berechnung hat, die nur das "Delta" berechnet und auch nur das darstellt 
zeigt, dass ich beo Verwendung des CCRAM und SRAM1 nahezu die 10 fache 
Geschwindigkeit erreichen kann. Über 20 Generationen / s spult der durch 
bei dieser rechenintensiven Simulation, wo jeder Befehl in der 
Kernschleife gleich spürbar wird.

De facto ist das SDRAM bei Verwendung des Grafik Displays also ein 
Schleichspeicher und eigentlich nicht mehr zu verwenden :-(

Wuselt ganz schön:

https://www.youtube.com/watch?v=DXGynpIPawA&feature=youtu.be

von Uwe B. (derexponent)


Lesenswert?

Christian J. schrieb:
>
> De facto ist das SDRAM bei Verwendung des Grafik Displays also ein
> Schleichspeicher und eigentlich nicht mehr zu verwenden :-(
>

kommt halt immer auf die Anwendung an
ich konnte mich bei allen meinen Projekten jedenfalls über
die 8MB RAM nicht beschweren

bei meinen Grafik-Anwendungen reicht ein Zugriff
alle 50ms auf das Display RAM und es müssen ja nicht immer
alle Pixel neu gezeichnet werden

egal wie...dein Video sieht gut aus,
jetzt fehlt noch über den Touch die Startpixel setzen/löschen
zu können :-)

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Hi Christian,

eine andere Möglichkeit, die sich gerade bei ständig wechselnden 
Inhalten (im Idealfall Videos) anbietet, habe ich neulich hier 
skizziert:

Beitrag "Re: Cortex M7 zu überzüchtet"

Wenn man das programmtechnisch löst, kommt man so auch bei 7" ganz ohne 
externes RAM aus.

Das kann eine interessante Option sein, falls der Controller 
leistungsmäßig nicht am Anschlag ist.

: Bearbeitet durch Moderator
von Christian J. (Gast)


Lesenswert?

Chris D. schrieb:
> eine andere Möglichkeit, die sich gerade bei ständig wechselnden
> Inhalten (im Idealfall Videos) anbietet, habe ich neulich hier
> skizziert:

Hi,

das kenne ich von meinem C64 als ich noch Asm programmierte auf dem, so 
mit 16 glaube ich. Beim STm32 bin ich noch nicht in die Tiefen der 
Hardware rein, erstmal Programme die fast ohne Hardware auskommen, ISRs, 
die Ansteuerung des durchaus komplexen Displays (laut Init in der 
StdPeriphLib) etc kommen später.

Ich habe bisher noch nicht herausgefunden wo denn genau der DMA 
eingestellt wird und wie man den Bereich ändern kann auf den er zeigt. 
Das Display haut ja wohl auch die meisten GPIOs weg, so dass nur noch 19 
freie übrig bleiben.

Weiss jemand wo man die Geschwindgkeit einstellen kann mit der das 
Display refreshed wird? In den StdPeriphLibs meine ich?

GOL wird erst interessant, wenn man die "Hand Gottes" programmiert, also 
Mutationen, Alterung, zufälliges Leben usw. Normalerweise endet ja alles 
im Stillstand aber dann nicht mehr, es "lebt" immer weiter. Ich fange 
mit nur 100 Zellen an. Der RNG sorgt dafür dass es immer andere Muster 
sind.

https://www.youtube.com/watch?v=8FqgWFN0F6U&feature=youtu.be

Jetzt altern sie wenn sie still stehen und sterben (nach 100 Gen.) und 
wenn es weniger als 500 "Mutationen" (auf 76000 Pixel) gibt (=wenig 
Leben) werden (diff) neue Zellen wahllos neu geschaffen. solange bis es 
wieder über 500 liegt. Dann sieht man die viele der Muster, wie 
Raumschiffe usw.

Die enorme Rechengeschwindigkeit des STM32 macht das Ganze durchaus 
interessanter als auf einem Z80. Allerdings ist der Code auch extrem 
geschwindigkeitsoptimiert, es läuft eine Suchmaske drüber die nur 
belebte Regionen betrachtet.

von Uwe B. (derexponent)


Lesenswert?

zum LTDC gibt es massig DOKU z.B

http://www.compel.ru/wordpress/wp-content/uploads/2013/11/1_LTDC_ChromeART.pdf

da steht auch die Berechnung vom Timing drin
da wirst du aber nicht viel ändern können,
sonst zeigt das Display nichts mehr an

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.