mikrocontroller.net

Forum: FPGA, VHDL & Co. Vga-Port ansteuern (Aussehen der Signale)


Autor: Maik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte den VGA-Port ansteuern und ein einfaches weißes Bild 
erzeugen.

Ich habe die Signale, die man im Anhang sehen kann, erstellt.

Leider funktioniert das nicht.

Wer kann mir helfen und den Fehler finden?

Danke,
Mark

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

Bewertung
0 lesenswert
nicht lesenswert
Leider hat das HOchladen von dem Anhang nicht geklappt.

Mark

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also beim ersten Überblicken sehen die Sync-Signale OK aus;
aber die Farb-Signale (R,G,B) sind falsch, die müssen alle
zwischen den HSYNC-Phasen (retrace) ='0' sein.

Das Beispiel auf http://www.derepas.com/fabrice/hard/ ist
zwar nicht sehr schon programmiert, verdeutlicht aber gut
den Ablauf.

Gruss

Jörg

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

Bewertung
0 lesenswert
nicht lesenswert
Danke.

Ich habe das nochmal verbessert. Ist das so richtig? (Ich weiß, es ist 
schwer zu erkennen.)

Mark

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum hängst Du nicht einfach einen Monitor dran und guckst ob der damit 
was anfangen kann?

Unter http://www.ulrichradig.de/ -> CPLD -> VGA MonitorTester findest Du 
auch eine funktionierende VGA-Ansteuerung (Ist aber auch nicht so schön 
umgesetzt).

Rick

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, sieht schon viel besser aus. Was mir aber auffällt: Zwischen den
VSYNC-Signalen liegen grob 400ms (=400.000.000.000ps), habe ich mich
verlesen?

Nur als Beispiel: VGA-640x480@60MHz hat VSync-to-VSync von glaube ich
16.7ms, rechne mal im Beispielcode die Zeiten raus.

Viel Spass

Jörg

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rick Dangerus,

hab meinen ersten VGA-Controller auch nur blind programmiert, d.h. nur
unter Zuhilfenahme von Testbenchs. Alle Timings kontrollieren, testen
ob genug Pixel je Zeile und Spalte erzeugt werden, dann liefs beim
ersten Anschliesen sofort. Danach kann man das Design verfeinern.

Gruss

Jörg

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg:
Ideal wäre natürlich eine Testbench, die die Timings prüft und ggf. 
sogar das Testbild als Grafik speichert. Solche prüfenden Testbenchens 
sind v.a. bei komplexeren Sachen sehr hilfreich (aber leider auch sehr 
aufwendig).

Rick

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rick Dangerus,

Bin leider nur non-semi-professioneller FPGA-ler, meine Testbenchs
beziehen sich immer nur auf kleine Teilmodule (bzw. auch nur auf
kleine Zeitabschnitte), die Korrektheit lässt sich so leicht am
Bildschirm ablesen.

Kann man nicht auch die Zeiten (z.B. Wechsel von Sync-Signal 0-1,1-0)
per Testbench in ein Textfile abspeichern? (Textfiles lassen sich
dann bei so langen Laufzeiten ja leichter auswerten)

Gruss

Jörg

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe noch eine Verständnisfrage:

Wie oft muss V-Sync auf Low gesetzt gewesen sein, damit ein komplettes 
Bild angezeigt wird?
640 mal?

Mark

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

Bewertung
0 lesenswert
nicht lesenswert
Da ist ein Comodore C64 in ein FPGA gepack.
Auf der obigen Webseite ist auch der VGA Source Core dabei.
http://c64upgra.de/c-one/
Gruss Holger

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mark,

die Anzahl HSync/VSync (d.h. Sig=Low) hängen vom VGA-Modus ab,
beziehe mich also mal nur auf 640x480@60Hz. Für EIN Bild sind
nach Timing/Modus-Tabelle 521 Zeilen, d.h. 521 mal HSYNC=Low

  521 =
    480   für Display-Pixel
    + 2   Sync-Len
    +10   Front-Porch-Len
    +29   Back-Porch-Len

Dann natürlich 60 mal VSync=Low je Sekunde für 60Hz.
(habe selber nicht 25.16MHz wie im Standard-VGA-Mode, sondern
25MHz, aber die VGA Monitore sind sher flexibel!!)


Gruss

Jörg

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.