ich überlege mir gerade wie man am besten eine super-einfache VESA-Kompatible Grafikkarte selber baut. Dabei fällt mir nur ein FPGA ein den man womöglich noch mit Hilfe eines µC an den PCI-Port hängt und vielleicht noch ein paar Treiberendstufen für den VGA-Ausgang.
Was habe ich vergessen? Und gibt es schon fertige Projekte? Google hat lediglich die OGD1 ausgespuckt (Open Graphics Develoment Board), was aber für meine Hobbyintension viel zu groß ist.
Eine PCI-Schnittstelle zu bauen ist nicht gerade einfach. Mir würde da sowas einfallen:
formatting link
Die haben auch passende Video DA-Wandler-Boards für VGA Ausgang, die man mit dem FPGA betreiben kann. Xilinx oder Altera bieten glaube ich auch PCI Entwicklerkits. Damit könntest du dich erstmal auf das FPGA-"Programm" konzentrieren und kannst sicher sein, daß die Hardware läuft. Wenn du dann deine Grafikkarte damit gebaut hast, dann kannst du es ja immer noch auf eine kleinere Platine, mit nur den benötigten Bauteilen zusammenfassen.
VGA-Cores gibt es übrigens fertig unter
formatting link
Die VESA Kompatibilität (warum willst du sowas haben?) musst du aber wohl noch selber programmieren.
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Der müsste aber schon sehr schnell sein bei z.B. 50 MHz Pixeltakt, VESA-Konformität und dann noch den PCI-Bus abzufragen (aber da gibt es vielleicht welche, die eine PCI-Schnittstelle integriert haben). Ohne den schon zitierten TTL-Friedhof wird das wohl nicht gehen, nur mit einem Microcontroller.
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Das ist das geringste Problem. Dazu bräuchte er bloß 50MHz Takt zu haben. Für die Ausgabe arbeitet der µC bloß als reiner Adresszähler für den Grafik-RAM. Man läßt ihn dazu einfach eine Sequenz von Pixel/Zeile NOPs abarbeiten und benutzt die Adressen des PC (entsprechend geshifted+Offset für die aktuelle Zeile in einem Latch) als Adresse für den Grafik-RAM.
Aber es gibt ja deutlich schnellere µC. Und damit ist selbst dieser Trick aus der Steinzeit der Computergrafik nicht mehr nötig.
VESA-Konformität sagt eigentlich noch nicht sehr viel. Nur die Softwareschnittstelle und einige wenige Modi sind "mandatory". Der ganze große Rest (knapp vier Dutzend weiterer Modi) sind "optional".
Genau.
Ein paar externe Bausteine sind schon erforderlich. Aber ein TTL-Friedhof wird's auch nicht. Drei Särge machen noch keinen Friedhof. Im Verhältnis dazu, was für Takterzeugung, DAC usw. sowieso an Käfern gebraucht wird, fallen die drei zusätzlichen kleinen nicht weiter auf.
In article , Frank Buss writes: |> Heiko Nocon wrote: |> |> > Nö, ist eigentlich schon zuviel. Der FPGA ist über. Ein (hinreichend |> > schneller) µC alleine reicht eigentlich völlig aus. |> |> Der müsste aber schon sehr schnell sein bei z.B. 50 MHz Pixeltakt, |> VESA-Konformität und dann noch den PCI-Bus abzufragen (aber da gibt es |> vielleicht welche, die eine PCI-Schnittstelle integriert haben). Ohne den |> schon zitierten TTL-Friedhof wird das wohl nicht gehen, nur mit einem |> Microcontroller.
Viel einfacher, weil ohne PCI ist etwas, was ich unsere Studis (Team von so
Ein Oszilloskop per FPGA und VGA-Ausgang werde ich auch bei Gelegenheit mal bauen, mir gefallen da ein paar Dinge an meinem Tektronix nicht, z.B. daß es keinen integrierten I2C- und RS232-Empfänger mit Hex und Textausgabe hat.
Auch vermisse ich eine fein regulierbare Zeitbasis, zum einfachereren Ablesen. Mein ehemaliges Analog-Hameg hatte da so einen Rasterknopf mit zusätzlichem Regler ohne Raster oben drauf, das war für einige Dinge recht praktisch. Auch bei dem teuren Agilent auf der Arbeit habe ich sowas noch nicht gefunden. Ist wahrscheinlich in irgendeinem der vielen Untermenüs versteckt :-)
Der Nachteil wäre, daß du für jede Programmänderung immer minutenlang auf den Syntheselauf warten musst und VHDL oder Verilog Programmierung auch nicht wirklich Spaß macht. Ich bin gerade dabei eine Forth-CPU zu entwickeln:
formatting link
Forth ist wunderbar für Hardwareentwicklung geeignet. Habe das letztens auf einem LPC2148 eingesetzt und konnte damit sehr schnell die Ansteuerung für einen Oled-Controller interaktiv per Terminalprogramm programmieren. Mal eben ein Register ändern oder per Schleife den Grafikbereich füllen, ist eine ganz andere Qualität als immer wieder den üblichen Programmieren->Kompilieren->Brennen->Testen Zyklus bei herkömmlichen Systemen durchgehen zu müssen. Ich werde damit auch mein FPGA-Oszilloskop implementieren.
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Der OP könnte sich mal "die Mutter aller CRT-Controller", den 6845 anschauen. Wenn ich nicht irre, haben selbst die 500fps/1kW extrageilen Grafikkarten einen 6845-Modus.
...[VESA] kenne ich nicht.
Der 6845 (CRTC in Ataris ST, Hercules, Amiga etc., WIMRE) besteht aus einem Sack voller Zähler und Komparatoren.
Im Amiga war Agnus und Denise für die Grafikausgabe zuständig. Ich kann mich noch dran erinnern, vor Ewigkeiten mal den Copper programmiert zu haben. War schon eine faszinierende Architektur für mich gewesen, der vorher nur auf dem C64 programmiert hatte, wo rasterzeilengenaue Umschaltung der Grafikregister viel umständlicher war.
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
In article , Falk Willberg writes: |> Der 6845 (CRTC in Ataris ST, Hercules, Amiga etc., WIMRE) besteht aus |> einem Sack voller Zähler und Komparatoren.
Was den Inhalt anbetrifft, ja. Aber im Amiga kam der nicht zum Einsatz... Auch Hercules nicht, CGA und Hercules waren zwei paar Stiefel. Ebenfalls beim Atari würde ich das nicht unterschreiben.
Ein mutierter 6845 tut seinen Dienst als "VDC" im C128 für den 80- Zeichen-Modus; der ein oder andere der frühen 8-Bitter hatte den wohl auch als zentralen Videochip.
Ich meine, den 6845 vom Atari zu kennen. Ich habe da mal mit den Light-Pen Registern gespielt. Blitter und Shifter sind später zugefügte Co-prozessoren. Ist aber schon etwas her...
Schon der erste Atari ST hatte einen Shifter, eben weil das der CRT-Controller war. Blitter kamen in der Tat erst später. Ein 6845 im ST wäre mir nicht bekannt, ich gucke aber gerne heute Nachmittag nochmal nach.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.