VGA mit Microcontroller

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 06 10 2024  21:29:48      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 Nächste Seite )      


Autor
VGA mit Microcontroller
Suche nach: vga (1369)

    







BID = 96198

Benedikt

Inventar

Beiträge: 6241
 

  


Habe ich doch schon ein paarmal geschrieben: Aus einer ISA Grafikkarte.
Da sind meist 2 28polige ICs drauf. Das eine ist die BIOS (32kB OTP EPROM /Mask ROM) und das andere der RAMDAC.

Eine ISA Grafikkarte anzusteuern ist doch komplizierter als ich dachte:
Die Initialisierung macht die Karte anscheinend selber, zumindest liefert sie die Software dafür in der VGA BIOS. Diese ist natürlich nur für 8086 CPUs...

BID = 96237

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

 

  

Also, dann werde ich mir eine ISA Grafikkarte kaufen. Du weist nicht zufällig, auf welcher ISA Karte sicher so ein RAMDAC verbaut ist? Kann man in so einen RAMDAC die Frabpalette auch laden, wenn man gerade Bilder ausgibt???
Dies könnte ich ja mit einem AVR machen, dann kann sich der SX28 um das Timing kümmern

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96245

Benedikt

Inventar

Beiträge: 6241


Zitat :
MicroTobi hat am 29 Aug 2004 13:17 geschrieben :

Also, dann werde ich mir eine ISA Grafikkarte kaufen. Du weist nicht zufällig, auf welcher ISA Karte sicher so ein RAMDAC verbaut ist?


Auf jeder 16bit ISA Grafikkarte ist einer drauf, schau einfach ob da 2 28polige ICs drauf sind, dann ist einer davon der RAMDAC. Bei Trident Karten kannst du ganz sicher sein.


Zitat :

Kann man in so einen RAMDAC die Frabpalette auch laden, wenn man gerade Bilder ausgibt???

Ja, 256x RGB zu je 6bit (bei neueren auch 8bit)


Zitat :

Dies könnte ich ja mit einem AVR machen, dann kann sich der SX28 um das Timing kümmern


Oder das macht dein eigentlich CPU, der auch die Daten an die "Grafikkarte" sendet, denn nur der weiß, was für Farben gerade gebraucht werden.

BID = 96303

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Das mit dem CPU macht irgendwie Sinn
Gut, dann brauch ich also nur noch eine ISA Karte und einen SX28. Du weist nicht zufällig, welchen Assembler man dafür braucht???

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96391

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Hi,
Bin gerade am überlegen, welchen Micro ich nehmen soll.
Würde ein SX 28 mit 50Mhz reichen, oder sollte ich lieber einen SX 28 mit 75Mhz nehmen?? Oder gibt es noch andere Micros die schnell genug wären um die Daten zu verwalten. Ich habe nämlich gelesen, dass die SX 28 schwer zu programmieren sind und man sehr leicht Fehler in das Programm machen kann, stimmt das?

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96425

Benedikt

Inventar

Beiträge: 6241


Zitat :
MicroTobi hat am 29 Aug 2004 20:29 geschrieben :

Hi,
Bin gerade am überlegen, welchen Micro ich nehmen soll.
Würde ein SX 28 mit 50Mhz reichen, oder sollte ich lieber einen SX 28 mit 75Mhz nehmen?? Oder gibt es noch andere Micros die schnell genug wären um die Daten zu verwalten. Ich habe nämlich gelesen, dass die SX 28 schwer zu programmieren sind und man sehr leicht Fehler in das Programm machen kann, stimmt das?

Würde mich sehr über Hilfe freuen!
Gruß Tobi


50MHz sind etwas knapp, selbst bei 75MHz muss man sehr optimiert programmieren. 640x480 sind ja schon 25MHz Pixeltakt. Ob da 100MHz überhaupt reichen ?
Der Vorteil eines FPGAs/CPLDs ist die parallel Verarbeitung. Während bei einem uC der Pixeltakt, IO, Zeilen/Spaltenzähler usw. alles nacheinander abgearbeitet werden muss, läuft das bei den programmierbaren Logkbausteinen quasi gleichzeitig ab.

Ich habe heute viel Zeit mit der Such nach Infos zum Thema ISA Grafikkarte an uC verbracht (das ist neben programmierbaren Logkbausteinen so ziemlich die einzige machbare Version.)
Ich habe niemanden gefunden, der eine ISA Grafikkarte zum Laufen gebracht hat. Kompatibiliät gibt es keine, der einzige Grund wiso alle doch am PC funktionieren ist die VGA BIOS. Diese sind im Prinzip Grafikkartentreiber für DOS und alles was davor kommt.
Selbst bei den Trident Karten gibt es extreme Unterschiede zwischen den einzelnen Versionen.

So wie es aussieht bleiben doch nur VRAMs. Kannst ja mal versuchen ein paar von alten Matrox PCI Grafikkarten zu bekommen. Die haben meist 256kByte was für 545x480 ausreicht. Und da reicht ein einfacher AVR als Controller aus. Mit 1 MIPS komme ich auf etwa 10MHz Pixeltakt.

BID = 96439

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Hi,

545x480 würde mir auch ausreichen. Kann das ein Monitor überjaupt anzeigen??

Den X und y Zähler für die Pixel könnte man doch mit einzelnen Logikbausteinen machen, dann würde ein SX28 doch ausreichen, falls das geht?

zu ISA:
Theorethisch müsste man doch aus dem DOS Code die ansteuerung auslesen können. Nur hab ich keine Ahnung wie das geht

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96526

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Hi,

Was für ein FPGA oder CPLD würde sich denn für eine Grafikkarte anbieten? Würde so ein 4€ IC von Xillinx reichen?

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96591

Benedikt

Inventar

Beiträge: 6241

Den BIOS Code habe ich, bei der VGA BIOS ist das etwas schwieriger, da hier die Adressleitungen vertauscht sind, und somit die Bytes bim (richtig angeschlossenen) Auslesen vertauscht sind.

Von CPLD und FPGA habe ich auch keine Ahnung, was jetzt dafür ausreicht aber für so einfache Aufgaben sollten auch kleinere reichen.

Dem Monitor ist es übrigends vollkommen egal ob er 1x480 oder 1000000000x480 anzeigt, solange die Zeilen und Bildfrequenz passen.

Ich fasse mal alles zusammen:
a) ISA Grafikkarte:
Die Ansteuerung ist schwieriger als anfangs vermutet, daher wohl kaum möglich.
b) Mehrere SRAMs an diskretem Zähler/CPLD/FPGA:
Verdammt aufwendig (8x schnelle SRAMs usw.) Viel Logik notwendig usw. Schlecht machbar.
c) VRAMs:
Relativ einfach, da es ein DualPort RAM ist, also gleichzeitig Lese und Schreibzugriffe möglich sind. Ein AVR schafft es den Datenpuffer für die Ausgabe immer gefüllt zu halten, und gleichzeitig neue Daten einzulesen. Das ganze Sync Timing läuft nebenher.
d) FIFO:
Das einfachste, da der AVR nur das Sync Timing machen muss. Eigentlich ist ein FIFO ein Ringpuffer mit getrenntem Schreib und Lesezähler. Viele FIFOS haben eine Retransmit Funktion, mit der man das FIFO kontinuierlich ausgeben kann. Dazu benötigt man nur den Pixel Takt !
Leider sind die etwas teurer, aber ein 256kByte FIFO wäre die optimale Lösung.

BID = 96601

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Hallo,
Die Lösungen c) und d) sind wohl die einfachsten von den 4en. Trotzdem finde ich Lösung b) immernoch am besten. Wenn man es mit einem RAMDAC macht, so wie du gesagt hast, würden ja schon 4 SRAMS mit 60ns ausreichen! Die Zähler könnte man ja vielleicht doch mit irgendwelchen 74... Zählern machen und den Rest mit irgendeinem Microcontroller!!
Das würde zwar mehrere Platienen in Anspruch nehmen, aber ich glaube, dass des die beste Lösung wäre! Ein Vorteil ist mir noch eingefallen, wenn man die Graka mit 2 Speichern aufbaut:

Wenn man ein Bild in Speicher 1 ablegt und ein anderes in Speicher 2 und nun immer zwischen diesen wechseln will, müsste man einen einzelnen Speicher immer wieder neu beschreiben. Wenn man aber 2 Speicher hat, brauch der CPU nur einen Befehle wie "Speicherwechseln" geben und dann Bild wird getauscht

Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96611

Benedikt

Inventar

Beiträge: 6241

Um die SRAMs umzuschalten benötigt man aber alleine schon 4x 74HC245 (oder schneller) pro SRAM, macht alleine schon 16x 74HC245. Insgesamt werden das mindestens 30 ICs, und lange Leitungen bei den hohen Frequenzen: Unmöglich.

Den ganzen Zähleraufwand kann man sich sparen, wenn man d) wählt:
Ein 256kx8 Field Memory von OKI wäre genau das richtige:
Kostet 10-20€, hat aber 30ns Taktrate, also max 33MHz, was für 545x480 reicht.
Da man die Daten aber nur effektiv von links oben nach links unten schreiben kann, am besten noch ein 512k SRAM am AVR, das als normaler Bildspeicher dient. Der AVR dient dann als Display Controller und besitzt Funktionen wie SetPixel, Line, Text usw.
Mit einem Befehl wird dann der komplette Speicher ins FIFO geschrieben. Mit ein paar Tricks schafft er das auch in wenigen ms. Da der AVR ansonsten nicht viel zu tun hat, erledigt er das restliche Sync Timing nebenher.
Ich werde das mal ausprobieren, und mit etwas Glück kann ich dir heute Abend oder morgen ein kleines Testprogramm schicken, das ein einfaches Muster auf einem Monitor anzeigt.

BID = 96619

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Wäre echt super wenn das funktionieren würde!!!
Die Idee mit dem line, setpixel, text usw. ist perfekt!!
Wenn man anstatt eines AVR einen SX28(50Mhz) nimmt, könnte man die ganze Berechnung noch beschleunigen, oder bringt das nicht mehr viel, da der SRAM eh nicht so schnell ist??
Mit mehr Leistung könnte mand ann vielleicht auch Befehle wie elipse usw. machen!
Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96639

Benedikt

Inventar

Beiträge: 6241

Elipse ist das einfachste, da ist eine gerade Linie schwerer !
Der Algorithmus zum Berechnen einer Linie ist nur eine Abwandlung von der für den Kreis...

BID = 96730

MicroTobi

Gesprächig



Beiträge: 141
Wohnort: Herrenberg

Achso,
Mann könnte also alle "D Befehle verwirklichen, die es auch in Basic gibt
Was würde die Graka dann schätzungsweise kosten?
Würde mich sehr über Hilfe freuen!
Gruß Tobi

BID = 96761

Benedikt

Inventar

Beiträge: 6241

Das teuerste ist der 256k DRAM FIFO. Bei Farnell etwa 16€.
Ansonsten braucht man nur noch einen AVR (z.B. AT90S8515), einen 512k Bildpuffer und noch ein oder zwei HCMOS ICs, grob geschätzt etwa 25€.
Leider habe ich nur ein paar 5k FIFOs da, sonst hätte ich es mal ausprobiert. Auf einem TV läuft das aber problemlos mit einem VRAM.

Im Anhang mal ein kleines Testprogramm für ein einfaches Monitorbild, erzeugt mit einem AT90S1200...
Die Sync Anschlüsse hängen an PortD 0 und 1 und RGB über 470Ohm an PortB 0-2


Vorherige Seite       Nächste Seite
Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 Nächste Seite )
Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 4 Beiträge verfasst
© x sparkkelsputz        Besucher : 182136555   Heute : 4929    Gestern : 5445    Online : 950        6.10.2024    21:29
6 Besucher in den letzten 60 Sekunden        alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0313398838043