Forum: FPGA, VHDL & Co. Grafik auf VGA-Monitor ausgeben


von Tinky Winky (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
habe dieses hier fotografiert:
Auf einem monochromen LCD-Display mit 240 * 128 Pixeln gibt ein 
Mikrocontroller Meßwerte als Text und Grafik aus.
Für diese popeligen 240 * 128 Pixel und monochrom sind solche Display's 
ziemlich teuer. Ich möchte das lieber mit einem 19 Zoll-Computermonitor 
machen. Z.B. mit 640 * 400 und 16 Farben = 128000 Byte.
Der Mikrocontroller und der LCD-Bildschirm müssen gleichzeitig auf diese 
128000 Byte zugreifen können, wie kann das gehen?
Welche Möglichkeiten gibt's das mit einem CPLD und externem RAM zu 
machen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Da gibts die Graka von Ulrich Radig, sieh dir das mal an:
http://www.ulrichradig.de/home/index.php/cpld/8bit_c_graka

> Der Mikrocontroller und der LCD-Bildschirm müssen gleichzeitig auf
> diese 128000 Byte zugreifen können, wie kann das gehen?
Indem sie nicht gleichzeitig, sondern nacheinander darauf zugreifen.
So funktioniert übrigens auch Windows: Schnell nacheinander werden alle 
aktiven Programme bedient, dann sieht das aus wie "gleichzeitig"  ;-)

> 640 * 400
Was ist das für ein Monitor?
VGA ist 640*480

von Roland P. (pram)


Lesenswert?

Für obiges Bild reichen doch < 32 Bytes, es werden ja nur 7 Messwerte 
visualisiert.
Dann könntest du das mit einem AVR machen:
Beitrag "VGA Grafikkarte mit AVR und 8MB SDRAM"

Etwas aufwändiger wäre dann schon dies hier:
Beitrag "VGA Grafikkarte mit AVR und 8MB SDRAM"

Gruß
Roland

von Tinky Winky (Gast)


Lesenswert?

>Für obiges Bild reichen doch < 32 Bytes,

Versteh ich nicht...



>Dann könntest du das mit einem AVR machen:
>Beitrag "VGA Grafikkarte mit AVR und 8MB SDRAM"

>Etwas aufwändiger wäre dann schon dies hier:
>Beitrag "VGA Grafikkarte mit AVR und 8MB SDRAM"

ist doch beides das selbe?

Will ja keine Standbilder anzeigen sondern meßwerte als bewegte Grafik 
und Text.

von Gill Bates (Gast)


Lesenswert?

FPGA oder CPLD ist für kleinserien viel zu teuer wegen der 
Entwicklungskosten. Für Kleinserien ist es besser wenn der 
Mikrocontroller die Meßdaten per RS232 (oder mit RS232_to_USB-Converter) 
an einen PC zu schicken. Der kann dann die Visualisierung machen. 
ITX-Motherboards gibt es für kleines Geld bei Angelika.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> FPGA oder CPLD ist für kleinserien viel zu teuer wegen der
> Entwicklungskosten.
Allerdings bleibt als "Abfallprodukt" z.B. ein weiterverwendbarer 
VHDL-Code, der auch auf andere Anwendungen angepasst werden kann.
Und: PC-Software schreibt sich auch nicht von jetzt auf nachher... :-/

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Ich habe gerade so etwas ähnliches geschrieben.
Es ist eine Serielle Anzeige auf einen FPGA. Es ist so ähnlich wie ein 
seieller Terminal ohne Keyboard. Die Daten kommen auf einen Uart rein 
und werden auf einen VGA Monitor angezeigt. Ich hatte mir Bootmeldungen 
aus einem Mikrocontroller angeigt.



Als Grafikspeicher benutze ich den internen RAM des FPGA.
Der interne RAm ist nicht riesig. Da passt kein völlig freie Grafikkarte 
rein. Wenn die Anzeige sehe, so verstehe ich sie im Moment, ist es eher 
eine quasi statische Anzeige mit ein paar wechelnden Zeichen und 
Balkenlängen.

Es müssten die Charakter-Zeichen in einem "ROM" hinterlegt werden und 
dann noch etwas Mimik wann welches Charakter an welcher Position 
angezeigt wird.
Im wesentlichen sind es bei dir Zahlen und Maßeinheiten.

von Tinky Winky (Gast)


Lesenswert?

Erst mal schönen Dank für die netten Antworten.
Aber da ist noch nicht so ganz das richtige für mich dabei.
Ich will ja keine Standbilder oder Testbilder anzeigen, sondern richtig 
bewegte Grafik.
Bei dem Bild oben wird die Anzeige 10 mal pro Sekunde aktualisiert, die 
Bargraph-balken sind richtig dynamisch.

Ich sehe da prinzipiell (das heisst nicht, das ich das adhoc auch 
gewuppt kriege) zwei Möglichkeiten:
1. Der Mikrocontroller schreibt direkt in das RAM
2. Der Mikrocontroller gibt dem CPLD Kommandos wie z.B. "zeichne eine 
Linie/Rechteck von X,Y nach X,Y Color Z" oder "zeichne einen Punkt/Kreis 
X,Y,Radius,Color etc" und so weiter...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Vergiss Variante 2.
Das ist ein Grafikprozessor, den bekommst du nicht in ein CPLD.

Variante 1 ist im Ansatz in Ulrich Radigs GraKa realisiert.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Variante 2 ist eine Grafikkarte und schon ein größeres Projekt.


Die Ausgabe von Buchstaben ist möglich auch in dynamischer Form. Der 
Balken kann auch aktualisiert werden. Doch wo sich der Balken im Bild 
befindet ist in VHDL "verdrahtet". Das Bild wird als Muster und mit 
Platzhalter in VHDL gecodert. An den Platzhalter werden die aktuellen 
Zahlen angezeigt.

von gast (Gast)


Lesenswert?

Mit nem Parallax Propeller ist das in 0,nix erledigt.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Hat der genügend externen Speicher und kann VGA Timing ausgeben?

VGA hat 640*480*Bildpunkte*10Bit_color=3Megabit
Das ist so die unterste Grenze.

von gast (Gast)


Lesenswert?

sollte für deine zwecke locker reichen, siehe...
http://www.youtube.com/watch?v=jHx9Rm2v3V8&feature=related

von faustian (Gast)


Lesenswert?

"> 640 * 400
Was ist das für ein Monitor?
VGA ist 640*480"


Tippe auf EGA.

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.