Forum: FPGA, VHDL & Co. VGA-Bildschirm mit XLINX-Board ansteuern


von Marvin (Gast)


Lesenswert?

Hallo,

ich besitze das Xlinx Board Spartan 3e Starter Kit:
http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf

An diesem Board befindet sich eine VGA-Schnittstelle, die ich gerne 
einmal mit  Verilog benutzen würde:

Angenommen, ich möchte nur ein einfaches weißes Bild haben, reicht es in 
diesem Fall, wenn ich einfach VGA_RED, VGA_GREEN und VGA_BLUE auf high 
setze?

Marvin

von Richard B. (rbrose)


Lesenswert?

Hi,

nein, reicht es nicht. Du brauchst ein Vertikales und Horizontales 
Timing.

Hier wird es gut erklärt:

http://www.ece.mcmaster.ca/~kumars/Engineering_design/eng_design_ch9_pdf.prn.pdf

von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die Hilfe.
Ich habe mal auf der Zeichnung, die ich aus den Bildern aus dem Link 
zusammengestellt habe, die Signalveräufe aufgezeichnet.

Was passiert, wenn ich das genauso mache und bei den 3 Farben jeweils 
zur richtigen Zeit high anlege?

Marvin

von Maik H. (maikh)


Lesenswert?

Dann bekommst du ein weißes Bild

von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe die Signale jetzt in Verilog verwirklicht. Ich habe mal ein 
Screenshot von einer Simulation geamacht und angehängt.

Es wäre nett, wenn ihr mir sagen könntet, ob das so richtig ist oder was 
verändert werden muss.

Marvin

von Benedikt K. (benedikt)


Lesenswert?

Du musst rund um HSync RGB auf schwarz setzen.

von Marvin (Gast)


Lesenswert?

Danke für die Antwort, aber ich verstehe das nicht ganz:

Wie soll ich HSync und RGB (VGA_Red, VGA_Green und VGA_Blue) auf schwarz 
setzen?
Meinst du auf low setzen? Aber das macht nicht wirklich viel Sinn.


Vielen Dank für die Hilfe,
Marvin

von Maik H. (maikh)


Lesenswert?

Ja, in der Backporch+SyncPuls+Frontporch Zeit darf keine Farbinformation 
vorliegen, ergo müssen RGB auf Low/"0" gesetzt werden. In der Zeit wird 
der Elektronenstrahl auf die neue Zeile ausgerichtet und verlässt 
sozusagen den sichtbaren Bereich des Bildes. Eine Erklärung dazu findet 
sich auch in den XilinxBoard Manuals zum S3 und S3AN Board
Anbei noch ein Link zu den SignalTimings, wenn es mal was andere als 
640*480 sein soll:
http://www.tinyvga.com/vga-timing

Gruß

von Marvin (Gast)


Lesenswert?

"Ja, in der Backporch+SyncPuls+Frontporch Zeit darf keine 
Farbinformation
vorliegen, ergo müssen RGB auf Low/"0" gesetzt werden."

Gut, vielen Dank, ich habe es verbessert.
Das gilt aber doch nur bei dem horizontalen Signal, oder?

Marvin

von Chris (Gast)


Lesenswert?

@Marvin:
Nur als Hinweis fürs nächste Mal, das hier steht über der Eingabebox für 
jedes Posting:
# JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
# Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

von Thomas H. (mac4ever)


Lesenswert?

Hier ist ein Link zu einer leicht verständlichen VGA-Ansteuerung. Für 
Dich zwar leider in VHDL, aber es ist eh nicht sehr viel Code :)
http://www.derepas.com/fabrice/hard/

von Mike (Gast)


Lesenswert?

@Marvin
> Gut, vielen Dank, ich habe es verbessert.
> Das gilt aber doch nur bei dem horizontalen Signal, oder?

Beim Vsync auch.

Du solltest in jeder Austastlücke das Signal auf 0 setzen. Je nach 
Eingangsschaltung des Monitors wird das zur Ermittlung des Bezugspegels 
für die restlichen Signalinformationen benötigt. Das Bild könnte 
ansonsten nicht deinen Erwartungen entsprechen ;).

http://de.wikipedia.org/wiki/Klemmspannung

von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die Antworten.

Mittlerweile glaube ich aber fast, dass der VGA-Port an meinem Board 
einfach kaputt ist, alle anderen Schnittstellen kann ich mit 
Leichtichkeit ansteuern nur nicht VGA! :-(

Lösungsidee:
Man kann ja leicht eine Erweiterungsplatine an das Board anschließen. 
Kann ich einfach 5 Pins von der Platine nehmen und dadran wie im 
Dateianhang gezeigt (Verbindungen und Widerstände) einen VGA-Port 
dranhängen?
Würde das klappen?
Sind das dann auch die richtigen Spannungen?


Danke für die Hilfe,
Marvin

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Auf opencores gibt es eine VGA Controller,

von Jörg (Gast)


Lesenswert?

Vesuch doch einfach mal die RGB/SYNC-Pins per simplen Verilog/VHDL
Programm mit den Buttons/Switches zu verbinden und schau mal mit
LEDs/Oszi/Spannungsmesser, ob Signale bei gedrückten Buttons
anliegen. Falls ja, dann weisst Du, dass wohl Dein Programm
fehlerhaft ist;  VGA wird ja nur an den Monitor angeschlossen,
da geht er selten was kaputt.

Gruss

Jörg

von kai (Gast)


Lesenswert?

Ich habe die Signale mal nach außen gelegt und ein Oszi drangehalten. 
Die Signale sehen genauso aus, wie sie aussehen müssen.

Mir ist es wirklich lieber nicht den VGA-Port auf dem Board zu benutzen, 
sondern einen eigenen.
Spricht irgendetwas dagegen mit 3 270 Ohm und 2 82,5 Ohm Widerständen 
den VGA-Anschluss direkt an die nach außen führenden Anschlüsse des 
Bordes anzuschließen?

Kai

von Marvin (Gast)


Lesenswert?

Hallo,

@Kai: Wer bist du? Was soll dieser Blödsinn??

@all:
Erst einmal vielen Dank für neuen Antworten.
Ich habe gerade ein paar Verilog-Module geschrieben, die meine 5 
VGA-Signale zu der ansteckbaren Platine legen. Nach meinem Messgerät 
stimmen die Signale.

Ich habe gerade auch die Verbindungenzwischwen VGA-Port und Controller 
getestet, die sind tatsächlich tod, deshalb ist es unmöglich etwas vom 
Comtroller zum Port zu senden.
Ich möchte genauso wie ich es schon weiter oben erwähnt habe einen 
eigenen VGA-Port an das Board anbauen.
Ich habe auch schon oben den Schlatplan gepostet.

Spricht etwas sagegen?


Marvin

von Mike (Gast)


Lesenswert?

Hast du auch wirklich die richtigen Pins angeschlossen und auch das 
passende FPGA eingestellt? Poste mal die *.ucf-Datei.

> Ich möchte genauso wie ich es schon weiter oben erwähnt habe einen
> eigenen VGA-Port an das Board anbauen.
> Ich habe auch schon oben den Schlatplan gepostet.
>
> Spricht etwas sagegen?

Nicht wirklich. Die Signalqualität könnte durch den zusätzlichen Stecker 
aber etwas leiden. Eventuell würde es sich lohnen gleich noch die 
Farbtiefe zu erhöhen. Etwa so wie hier:

http://home.freeuk.com/fpgaarcade/displaytest.htm

Das könntest du aber auch einfach mal so draufspielen um zu schauen ob 
ein Bild generiert wird. Dann hast du in deinem Code noch einen Fehler 
;).

von Marvin (Gast)


Lesenswert?

So, habe ich draufgespielt. Es klappt nicht, also ist wirklich ein 
Fehler in der Verbindung.


Eine Frage noch:
wikipedia: "Der Signalpegel beträgt (außer für die Datenleitungen) 0,7 
V."
Auf dem Board ist glaube ich eine Spannung von ca. 3V.
Sind die eingebauten Widerstände nur dafür da die Spannung etwas kleiner 
zu machen?


Marvin

von Marvin (Gast)


Lesenswert?

? keine Antwort...

von Falk B. (falk)


Lesenswert?

@ Marvin (Gast)

>wikipedia: "Der Signalpegel beträgt (außer für die Datenleitungen) 0,7
>V."

Stimmt.

>Auf dem Board ist glaube ich eine Spannung von ca. 3V.
>Sind die eingebauten Widerstände nur dafür da die Spannung etwas kleiner
>zu machen?

Wahrscheinlich.

http://javiervalcarce.es/wiki/Binary-Weighted_Digital_To_Analog_Converter

MFG
Falk

von Falk B. (falk)


Lesenswert?


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.