www.mikrocontroller.net

Forum: FPGA, VHDL & Co. VGA Signal wird nicht korrekt erzeugt


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich arbeite mich gerade in VHDL ein und habe mich seit gestern an mein 
erstes größeres Projekt (ist immer relativ ;)) gewagt, einen VGA 
Signalgenerator.

Leider funktioniert er einfach nicht richtig. Das Board arbeitet 
einwandfrei, aber sobald ich das .bit file auf den FPGA Lade, wird der 
Bildschirm dunkel und im OSD des Monitors wird die auflösung nicht 
erkannt. Kann vielleicht mal jemand kurz über meinen Sourcecode schauen 
und mir vielleicht einen kleinen hinweiß geben, wo der Fehler liegen 
könnte? Ich stehe hier gerade ziemlich auf dem Schlauch.
Ich würde mich auch über Kommentare zum Source selber freuen, also ob 
ich irgendwo ein No-Go eingebaut habe o.ä.

Noch kurz zur Erklärung
Clk25xCI ist der Eingang für die 25,175MHz Clock (auf dem Board 
vorhanden)
HsyncxDBO und VsyncxDBO sind die Signalleitungen für die Syncsignale.
GlobalxRI habe ich auf einen Taster gelegt.
Die anderen Signale sind für den Test meiner Meinung nach nicht weiter 
relevant, da der Monitor die Auflösung auch ohne Farbansteuerung 
erkennen sollte (wenn ich die VGA-Spezifikation richtig verstanden 
habe).

Über eine Antwort würde ich mich sehr freuen

MfG
Mark

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

Bewertung
0 lesenswert
nicht lesenswert
hast du dir in der simulation schonmal angeschaut, ob die hsync und 
vsync signale vom verlauf her soweit passen, wie du dir das vorgestellt 
hast ? ich poste dir mal dazu 2 bilder wie ich es bei meiner Master 
Arbeit gemacht hatte. vielleicht kannst du aus den infos und bildern 
ableiten ob dein konzept so richtig ist.

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

Bewertung
0 lesenswert
nicht lesenswert
so, und das 2. pic. hierbei ist grad der nichtsichtbare bereich zu 
sehen, daran kann man vielleicht so das verhältnis zwischen Hsync, 
vsync, frontporch und backporch erkennen

Autor: Cpt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mark!

Ich hatte damals ein vergleichbares Problem. Ich hatte die Blankingarea 
nicht beachtet. Kurz gesagt: Die RGB Leitungen sind notwendig. Keine 
Ahnung ob das nur an meinem Monitor lag. Wenn ich mich recht entsinne 
müssen die RGB Leitungen während des Blanking-Intervalls "null" sein, 
aber schau lieber nochmal nach.

Viel Erfolg und Grüße

Cpt

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab alles annem TFT getestet und da waren die werte der RGB signale 
in dem moment nicht wichtig, aber zur kontrolle des bildes und ob es 
denn auch steht würde ich in bestimmen zeilen und spalten einfach mal 
was einfärben und ansonten einfach auf null setzen.
dann geht man kein risiko ein und sieht schonmal was.

Autor: Mark (Gast)
Datum:
Angehängte Dateien:
  • preview image for ms.JPG
    ms.JPG
    39,5 KB, 250 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nephilim

Was mir gerade bei deinem Signalverlauf aufgefallen ist, deine Hsync und 
Vsync Signale sind anscheinend von den Flanken her synchron zueinander
bei mir sind sie leicht verschoben, kann das daran liegen?

Gruß Mark

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich würd sagen, mach es einfach mal so synchron zueinander und 
schaue, obs einen effekt hat.
ach und als nachtrag zu meinem 2. bild, das war für eine auflösung von 
800x600  gewesen, also nich wundern, das die polarität der syncsignale 
anders herum ist.
was für einen monaitr verwendest du ? wenn du einen TFT verwendest dann 
brauchen die zusätzlich noch ein DE signal.

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe mir jetzt gerade ein anderes Board besorgt (vorher Xilinx 
S3ADSP1k8 jetzt S3AN) und damit läuft das Programm bzw. die Auflösung 
wird im OSD richtig angezeigt. Anscheinend hängt das also nicht mit dem 
Sourcecode zusammen... da werd ich wohl also noch ein bissl suchen 
müssen...

Trotzdem danke für die Antworten...

PS: gibt es noch was Formelles am Code zu bemängeln?

Gruß
Mark

Autor: The one (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum schreibst du die Schlüsselwörter eigentlich groß?

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

Bewertung
0 lesenswert
nicht lesenswert
Finde das irgendwie übersichtlicher, ist halt geschmackssache...

Habe den Fehler inzwischen auch gefunden. Die Timings die ich benutzt 
habe stammten aus dem 3AN-Board Manual. Dieses besitzt einen 50MHz 
Clock, der für den VGA-Sync-Generator einfach halbiert wird. Auf dem 
3DSP sitzt aber ein 25,175MHz Quartz. Diese Abweichung sorgte dann 
dafür, dass die Timings nichtmehr korrekt waren. Nach einer kleinen 
modifikation funzt der Code inzwischen auch auf beiden Boards. (Code ist 
im Anhang, falls das noch wen interessiert)

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.