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
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.
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
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
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.
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
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.
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
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.