mikrocontroller.net

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


Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

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

Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht 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_des...

Autor: Marvin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Maik H. (maikh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bekommst du ein weißes Bild

Autor: Marvin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst rund um HSync RGB auf schwarz setzen.

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Maik H. (maikh)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Hertwig (mac4ever)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marvin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf opencores gibt es eine VGA Controller,

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 
;).

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
? keine Antwort...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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_Digi...

MFG
Falk

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.