Einfache hausgemachte VGA-Grafikkarte

Soweit ich weiß, sind ziemlich viele Leute daran interessiert, den Mikrocontroller an einen normalen Monitor anzuschließen und zu versuchen, etwas auf dem Bildschirm anzuzeigen. In diesem Artikel wird die Erstellung der einfachsten VGA-Grafikkarte auf Basis des atmega168-20-Mikrocontrollers erläutert.

Im Allgemeinen ist dieses Projekt beim Mittagessen hundert Jahre alt. Aber einmal habe ich versprochen, auch hier über diese Grafikkarte zu sprechen, aber alles war Faulheit. Jetzt ist es Zeit, das Versprechen zu erfüllen.

Diese Grafikkarte erzeugt ein Bild mit einer Auflösung von 254 x 240 Pixel und 256 Farben. Das Ganze funktioniert im Standard-VGA-Modus 640x480 bei 60 Hz Sweep. Ich habe diese Grafikkarte mit 6 Monitoren (1 CRT und 5 LCDs) getestet, während die Karte auf allen Monitoren außer dem Acer-Monitor funktioniert hat. Was ihm das Signal nicht gefiel, verstand ich nicht.

In der Modellversion sieht die Grafikkarte folgendermaßen aus: Die



Grafikkarte besteht aus zwei Modulen: einem Speichermodul und einem DAC-Modul.

Das Speichermodul erzeugt einfach Synchronisationssignale (HS, VS) und Strahlausblendung (BL) und gibt den Farbcode (D0 ... D7) aus, den das DAC-Modul in 0-0,7 V umwandelt und an den Monitor sendet. Der Mikrocontroller des Speichermoduls iteriert einfach über die Adressen des statischen RAM, und die Daten aus dem RAM haben die Farbe der Punkte. Bei Verwendung eines Atmega168-Mikrocontrollers mit einer Frequenz von 20 MHz sind 2 Taktzyklen pro Punkt erforderlich. Daher wird dieser Teil des Programms in Assembler geschrieben und in einem sich wiederholenden Fragment für jeden Punkt der Leitung bereitgestellt. Ich werde mir erlauben, den zeitabhängigen Sweep des VGA-Signals nicht zu beschreiben, zumal das Internet voller Informationen zu diesem Thema ist (obwohl es oft nicht zusammenfällt), und ich habe in den letzten Jahren bereits einiges vergessen, welches Zeitdiagramm ich in diesem implementiert habe Grafikkarte.


Schema des Speichermoduls (Öffnen in einem neuen Fenster können Sie erhöhen).

Das DAC-Modul besteht aus drei gewöhnlichen R-2R-DACs mit Schlüsseln und einem Ausgangsemitterfolger (aufgrund dessen eine Reihe von Farben ein wenig "geschnitten" wird). Wenn jemand herausfindet, wie billig und wütend es ist, dieses "Stechen" zu beheben, können Sie dies gerne kommentieren. Bei einer Funkkatze wurde mir geraten, den Emitter-Repeater durch einen Quell-Repeater zu ersetzen, aber ich habe diesen Rat immer noch nicht überprüft. Wie Sie dem Diagramm entnehmen können, habe ich Rot 3 Bit, Grün 3 Bit und Blau 2 Bit zugewiesen. Ich habe die Transistoren KT-315 genommen. :)


DAC-Schaltung.

Was genau die Grafikkarte anzeigt, wird vom Steuerungscontroller festgelegt. Seine Aufgabe ist es, die Adresse auf dem Adressbus (A0 ... A15) einzustellen, die Daten auf dem Datenbus (D0 ... D7) einzustellen, die Signale WR (auf niedrigen Pegel schreiben), OE (Berechtigung zum Ausgeben von Daten auf niedrigem Pegel) und einzustellen A / B-Signal (Schalten des Speichers, um mit dem Steuercontroller auf einem niedrigen Pegel zu arbeiten). Die Steuersteuerung empfängt ein Strahlausblendungssignal (BL) von der Speicherkarte, mit dem die Aufzeichnung mit dem Speicher der Grafikkarte synchronisiert werden kann.

Eine solche Grafikkarte funktioniert folgendermaßen:


Leiterplatten und Firmware mit ihrer Quelle.

Viel Glück bei der Entwicklung des Projekts!

All Articles