Forum: FPGA, VHDL & Co. Wie geht VGA mit CPLD?


von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Ich bin neu mit CPLDs. Und ich hab das hier komplett gelesen:
http://www.fischl.de/thomas/elektronik/cpld/index.html
Nun weiß ich, dass man CPLDs statt der 74er-Serie z. B. für AND und OR 
Schaltungen / Gatter nutzen kann.

Kann aber wohl nicht alles sein?

Ich besitze die MicroVGA von www.microvga.com. Da ist neben 
PIC24HJ32GP302-1 und 74AHC14D auch ein CPLD XC9572XL drin. Ich vermute, 
dass der die VGA-Hard-/Software und sie Zeichensätze beinhaltet. M. E. 
ist der PIC dafür eher ungeeignet.

Wenn dem so ist, frage ich mich mit meinem Einsteigerwissen: Wie geht 
das?

Ich würde gern Basiswissen erwerben, um das Teil zu verstehen. Ich meine 
damit nicht den CPLD allein, sondern auch gleich die MicroVGA, die 
VGA-Technik. Ist sicher kein Geheimnis trotz vermutlichem Schutzbit.

Ich kann mir vorstellen, dass das Ganze komplex ist. Mir würden ein paar 
Tips in die richtige Richtung und/oder passende Links reichen. Gern 
revanchiere ich mich mit Artikeln, die ich verschenke, siehe Markt hier 
;-)

Btw, ich hab mir das bestellt und hoffe, es ist schon mal ein Weg zum 
Ziel:

http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=638

Danke.

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


Lesenswert?

Karl-Heinz M. schrieb:
> Da ist neben
> PIC24HJ32GP302-1 und 74AHC14D auch ein CPLD XC9572XL drin. Ich vermute,
> dass der die VGA-Hard-/Software und sie Zeichensätze beinhaltet.
Ein 9572 hat gerade mal 72 Flipflops. Also viel zu wenig Platz für 
irgendwelche Zeichen...

> Wenn dem so ist, frage ich mich mit meinem Einsteigerwissen: Wie geht
> das?
Der CPLD steuert nur den schnellen Zugriff aufs RAM. Und im RAM wird der 
Zeichensatz über und von dem uC geladen und verwaltet.
Siehe http://www.ulrichradig.de/home/index.php/cpld/8bit_c_graka

von Markus H. (dasrotemopped)


Lesenswert?

der XC9572XL reicht aus, um ein VGA Signal (640x480@60Hz) incl. Testbild 
zu erzeugen.
Z.B. so:
http://home.arcor.de/markus.horbach/atmegaextender.html

Dazu braucht es nur einen Takt von 25.175 MHz, 2 Zähler und ein paar UND 
Gatter.
Habe ich mir hier abgekuckt :
http://www.pyroelectro.com/2011/05/05/fpga-512-color-vga-controller/

Schwierig wird es, so bald man beliebige Bilder mit dem VGA Signal 
erzeugen will. Dann brauchst du einen RAM Controller, der gleichzeitig 
beschrieben und gelesen werden kann. Bei voller VGA Auflösung muss er 
auch schnell sein, der Pixeltakt ist ja 25,175 MHz. Darum reduzieren 
viele die Auflösung, um das Bild mit PIC oder ATmega noch erzeugen zu 
können. Das spart Speicherplatz und die Taktgeschwindigkeit wird 
erheblich reduziert.

Zum Einstieg ist das bestellte Board sicher eine gute Wahl.
Später wirst du aber sicher auf was größeres umsteigen, wenn dir
CPLDs und FPGAs erst mal gefallen.

Gruß,

dasrotemopped.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

@Markus Horbach
Danke für die interessanten Infos. Insbesondere der Link zu 
http://www.pyroelectro.com/2011/05/05/fpga-512-color-vga-controller/ hat 
mich schon viel weiter gebracht. Dort gibt es einige Details auf deren 
weiteren Seiten, die mir VGA näher gebracht haben.

Ich hoffe, mein Board kommt bald, damit ich mich näher einarbeiten kann. 
Bringt sicher noch einiges mehr als die Theorie allein.

Noch ist mir die MicroVGA (nur für Texte!) schleierhaft. Je mehr ich zur 
Thematik lese, um so weniger verstehe ich, wie die das machen. Offenbar 
ist das ziemlich trickreich gemacht, oder?

Da findet man auch keinen Quarz o. ä. Der interne Speicher des PIC 
reicht sicher um die ganzen Charactersets zu speichern. Ok, ich warte 
auf mein Board.

von Markus H. (dasrotemopped)


Lesenswert?

wenn du den MicroVGA trickreich findest, dann schau dir das an:
http://www.linusakesson.net/scene/craft/

Du solltest dir am Anfang nicht zu schwere Aufgaben vornehmen.
Sehr trickreich mit wenig Harware auszukommen hat zwar den Vorteil,
das man andere damit beeindrucken kann, aber der Weg dahin ist steinig.

Das Xilinx ISE und andere FPGA Tools haben aber für die schnelle 
Anwendung fertige Module im Angebot, auch VGA Controller plus embedded 
uCs. Kostet vielleicht etwas mehr Hardwareressourcen, ist dafür aber 
auch nach wenigen Minuten betriebsbereit.
Es gibt da einige interessante Videos auf Youtube zu.

Man kann übrigens den PWM vom uC einfach auf den Clock Eingang des CPLDs 
legen, so braucht man keinen zusätzlichen Taktgenerator und man hat mit 
der dem uC gute Konfigurationsmöglichkeiten. Einige uCs können ihren 
eigenen Takt auch auf einen extra Pin ausgeben, ist auch ne gute 
Taktquelle fürs CPLD.

Gruß,

dasrotemopped.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Markus Horbach schrieb:
> wenn du den MicroVGA trickreich findest, dann schau dir das an:
> http://www.linusakesson.net/scene/craft/

das erinnert mich sehr stark an den Sinclair ZX81. Der arbeitete auch 
nur in den Zeilen-/Bildlücken, was aber zu manchen Probs führte. Zu 
solchen Mitteln musste man in der damaligen Zeit greifen, denn, HW war 
nicht unendlich verfügbar, kostete Geld und noch sehr viel Platz. Man 
geizte auch mit jedem Byte. Ich schrieb damals einen Z80-Disassembler 
für den ZX81 in der Version mit 1KB RAM. Um das zu bewerkstelligen, 
waren einige Klimmzüge nötig.

Solche Blackboxen machen mich immer sehr neugierig. Mein Unwissen über 
CPLDs und auch manches an Unwissen zu µCs behindert mich derzeit noch.

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.