ARM M3 für die Bildschirmsteuerung ausreichend?

Gast #3200091
Lesenswert?

Hallo.
Gegeben ist  ARM M3 mit max 67 Mhz.
Ich habe 0 (Null) Erfahrung mit  ARM Architektur/Programmierung und nur 
wenig mit µC allgemein.Deswegen frage ich mal hier, ob so ein µC für 
VGA Bildschirm (z.B. 1280x1024) ausreichend ist.
Der µC soll nichts besonderes ausrechnen, nur  den externen Datenfluss 
auf dem Bildschirm  mit ca. 25 FPS   ausgeben.

Das Problem ist, dass ich hauptsachtlich FPGA benutze, aber für die 
Bildschirmsteuerung ist FPGA ziemlich aufwändig. Klar kann man mit FPGA 
alles realisieren, aber ich will das Rad nicht neu erfinden. Außerdem 
habe ich gehört, dass ARM schon richtige Bibliotheken dafür hat, also 
wäre die Bildschirmsteuerung samt   Mustergenerierung etc, damit viel 
einfacher.

 Also nochmal die Frage, reicht ARM M3 aus?=)
Gast #3200119
Lesenswert?

Hmm, stimmt, habe ich ganz vergessen die  Info anzugeben:

Das Bild ist RGB mit 16 Bit Auflösung.  Zurzeit ist es nur geplannt, 
dass der µC nur die  Pixeldaten (über  3 pins für R,G  und B 
entsprechend) von dem FPGA  empfängt, und direkt auf dem TFT 
ausgibt.Also muss der µCdie ganze Synchronisierung etc. behandeln.

Später, wenn noch Ressourcen übrig sind, würde ich gerne auch Text  und 
simple 2D Grafiken anzeigen.
Wäre das möglich?
#3200169
Lesenswert?

Also wenn Du alles mit dem µC erledigen willst, braucht der kleine schon 
ein bischen Dampf unter der Haube. Auflösungen von 1280x1024 in 24 Bit 
Farbe ist vermutlich utopisch, da Du ja den gesamten Bildchirmspeicher 
im µC benötigst.
Außerdem ist VGA ein analoges Signal und Du brauchst einen flotten DAC 
oder etwas Ideenreichtum ...

Schaue auf jeden Fall mal hier rein:
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx

Für mehr Informationen schaue doch mal hier:
http://mbed.org/forum/mbed/topic/2459/?page=1
http://mbed.org/forum/mbed/topic/186/
http://www.microvga.com/

Gruß
kokisan
Gast #3200294
Lesenswert?

Ich habe auch mal VGA mit einem FPGA gemacht. Soweit ich mich erinnere 
war der Basis-Pixeltakt 25MHz. Es wird also schon sehr sportlich, wenn 
man mit einem 67 MHz Prozessor ein 25 MHz RGB-Signal darstellen will. 
Das sind rund 2.5 Takte pro RGB-Pixel.
Das reicht kaum aus, den Wert aus dem Speicher zu holen und auf einen 
Port zu geben. Geschweige denn, noch Graphiken nebenbei zu zeichnen.

Oder sehe ich da irgendetwas falsch?
#3200327
Lesenswert?

@Wilder Kater mit Schwanz,

ich habe mit dem STM32F4 (bei 168MHz) eine VGA Ausgabe mit
640x480 Pixel programiert

wobei die reale Auflösung bei 320x240 liegt
bei 8bit Farbe braucht das ca. 76 kByte RAM

das Hauptproblem ist der Pixeltakt der Horizontalen Zeile
bei 640 Pixel und 50 Hz Bildwiderholrate sind das ca. 25MHz
das habe ich mit dem STM nicht hinbekommen !!

ich habe dann die Auflösung halbiert und brauche damit
nur noch mit ca. 13MHz die Pixelwert per DMA ausgeben

das schafft der STM gerade noch so

hier gibt es ein Youtube Video
von meiner Library (allerdings nicht von mir)

http://www.youtube.com/watch?v=axJRn_WZFY0

1280 Pixel halte ich also auch für "sehr schwer"
wenn nicht gar unmöglich
(lass mich da aber gern belehren)


ich habe das ganze auch schon per FPGA gelöst
der Aufwand für das anzeigen sind ca 20 Zeilen VHDL :-)
(für ein Statisches Bild aus dem RAM)
..soviel zu deinem "ziemlich aufwändig"

wobei ich hier nicht wüsste wie man hier deinen geforderten
"externen Datenfluss" ins RAM bekommt
(was dieser Datenfluss auch immer heißen mag)

Gruss Uwe
#3200368
Lesenswert?

Hm. Also einen Tft Display mit 1280 x1024  habe ich mit meinem Fpga 
board erfolgreich gesteuert. Die ganze Synchronisation ist wirklich mit 
fpga leicht zu schafen. Nur die ganze kompligierte ausgabe wollte ich 
mit vhdl nich machen, sprich Textausgabe,grafen etc. Eine sache ist ja 
ein Bild aus SRAM auslesen, andere sache die verdammte Buchstaben zu 
generieren.
PS.
Ich bin der Fragesteller
#3200381
Lesenswert?

>Hm. Also einen Tft Display mit 1280 x1024  habe ich mit meinem Fpga
>board erfolgreich gesteuert

dann teil die Aufgabe doch auf :

benutz das FPGA um die Daten aus dem Grafik-Speicher
per VGA auf dem Bildschirm anzuzeigen

und schaff eine Schnittstelle zu einer externen CPU (welche auch immer)
und lass die CPU das Aufbereiten der Grafik-Daten übernehmen

dann muss die CPU nur noch in der "Austastzeit"
die Daten zum FPGA übertragen

oder einfacher : benutz zwei Bildpuffer
einer wird vom FPGA angezeigt, der zweite wird
gemütlich von der CPU beschrieben
(und es muss nur noch hin- und her- geschaltet werden)

Gruss Uwe
Gast #3201361
Lesenswert?

Wilder Kater mit  Schwanz schrieb:
> Ich habe 0 (Null) Erfahrung mit  ARM Architektur/Programmierung und nur
> wenig mit µC allgemein.Deswegen frage ich mal hier, ob so ein µC für
> VGA Bildschirm (z.B. 1280x1024) ausreichend ist.

VGA ist 640x480
Ansonsten kommt es drauf an, an was du da eigentlich gedacht hast. So 
wie du schreibst, ist alles nur wirr.

Wenn du dir meit nem CPLD oder FPGA ne passende Ansteuerung für ein 
Display machst, dann passt ein ARM (sofern er nen externen Bus hat) 
immer.

Wenn du aber dran denken solltest, den ARM den Bildrefresh machen zu 
lassen, bist du komplett auf dem Holzweg.

Ansonsten ist 800x480 die sinnvolle obere Grenze bei uC wie z.B. 
LPC2478.

W.S.
Gast #3201375
Lesenswert?

Ja, ich denke der Plan steht nun fest.
  FPGA wird die ganze Display Steuerung übernehmen, zumal  das FPGA 
Board sowieso eine ordentliche VGA Schnittschtelle + 512KB SRAM und 8MB 
SDRAM besitzt.

Der Text und diverse Grafen werden von ARM Modul generiert und in SRAM 
auf FPGA Board geschrieben.Das sollte ARM porblemlos schafen. Die 
Aktualisierungsrate für den Text usw. kann  problemlos   unter 25 fps 
liegen. Hauptsache  das Bild von der CCD Kamera wird Live übertragen, 
aber das schaft FPGa schon ohne probleme.

Ich muss   nur herausfinden, wie ich die  grafische ARM-Komponente in 
die Pixelmatrix konventiere....
#3201661
Lesenswert?

>Ich muss   nur herausfinden, wie ich die  grafische ARM-Komponente in
>die Pixelmatrix konventiere....

ich würde da gar nichts "konvertieren" sondern die CPU mit dem FPGA so 
verbinden, das die CPU das Grafik-RAM vom FPGA wie ein eigenes externes 
RAM bedienen kann (mit entsprechenden Bus- und Steuerleitungen)

und der FPGA muss dann nur noch den Inhalt vom Grafik-RAM per VGA 
ausgeben
Gast #3201687
Lesenswert?

SO wuerde ich das auch machen.
Das FPGA liest (in einer Art Endlosschleife) die Daten aus
dem RAM (Bildspeicher) und ist fuer die Ansteuerung und das
Timing des Displays zustaendig. Der ARM Mikrocontroller ist
fur die Aufarbeitung der Daten zustaendig und schreibt diese
dann jeweils in den Bildspeicher.
Gast #3201962
Lesenswert?

1280x1024x16 Bit= 2,5Mbyte Pro Frame
Für das SRAM zu viel.
Wie schnell ist denn dein SDRAM.
Bei 25Hz und 2,5Mbyte Pro Frame sind das 62,5MByte/s.
Und wenn du da zwischendurch auch noch reinschreiben willst das ganze 
mal 2, also 125MByte/s. Mit nen 66MHzx16Bit SDRAM sportlich.
Gast #3202038
Lesenswert?

>..da Du ja den gesamten Bildchirmspeicher im µC benötigst.
Das benötigte RAM (einige MB) wird wohl weder im uC noch im FPGA 
ausreichend vorhanden sein, so dass man auf jedes Fall externes RAM 
anbinden muss, das dann mit DualPort-Beschaltung.

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