Moin! Ich hab da mal ne Frage! Ich habe ein VGA Signal für 640x480 mit meinenm FPGA generiert. Alles super. Nun wollte ich eigentlich auch ein VGA Signal (60HZ) mit einer Auflösung 320x240 generieren. Habe ich auch gemacht.Timing dafür habe ich unter VESA gefunden (hor. Frequ. 15kHz, Vert. Freq. ca. 60Hz) Nun habe ich meinen Bildschirm an die VGA schnnittstelle von meinem FPGA angeschlossen und es passiert nichts. Es erscheint nur eine Textmeldung, in der mir gesagt wird, dass die Frequenzen nicht in den für den Bildschirm möglichen Frequenzbereich liegen! Liegt es nun daran, dass ich die Frequenz nicht 100%ig genau habe, oder kann es sein, dass manche Bildschirme keine 320x240 Auflösung können?! Bei meinem 640x480 Timing kommt es auch nicht 100%ig hin und es funktioniert trotzdem! Bitte um Hilfe!!!
Ich glaube die meißten heutigen Monitore können keine 15kHz Horizontalfrequenz. Nur ab 31kHz aufwärts. Sollte im Handbuch des Monitors stehen.
@ V. Baumann ACK siehe gOOgle: horizontal-frequenz lcd-monitor
Nicht nur die LCD-monitore sondern auch die normalen Röhren-monitore arbeiten ab mitte 90er Jahre nur noch ab 31kHz aufwärts.
jedes Pixel die doppelte Zeit und jede Zeile zweimal anzeigen. Dann ändert sich auch das Timing gegenüber 640x480 nicht. Gruß Jörg
Fernseher dranhängen. Der kann, sofern wie heute üblich mit NTSC-Frequenz verträglich.
ABer ein Fernseher verarbeitet doch nur Halbbilder! D.h. ich muss aus dem Vollbild noch zwei Halbbilder genrieren und dann an den Fernseher senden!
you2 wrote:
> ABer ein Fernseher verarbeitet doch nur Halbbilder!
Nicht ganz. Er verarbeitet auch problemlos 312 Zeilen, also alles mit
15,625kHz/50Hz.
Oder eben 240 sichtbare Zeilen von 262 technisch vorhandenen Zeilen, bei 60Hz/15,750KHz im hier eher relevanten NTSC-Timing.
> jedes Pixel die doppelte Zeit und jede Zeile zweimal anzeigen. Dann > ändert sich auch das Timing gegenüber 640x480 nicht. Dem kann ich mich nur anschließen. Wenn der Rest deiner Display-Logik mit den höheren Zeilenfrequenzen klarkommt, sollte das Problemlos gehen. Ansonsten bau nen Zwischenpuffer ein, der sich eine Zeile merkt, um sie nochmal anzeigen zu können.
Alles klar, vielen Dank! Nur noch mal kurz ne Frage: Ich möchte jetzt noch ein PAL Signal (640x480, 50HZ) generieren und über die VGA SChnittstelle an einen Fernseher schicken. Ich erzeuge nun allerdings eine Pixel Clock von 25 MHz. Würde das ein normaler fernseher vertragen???? Die Timings habe ich von VESA.
Der Pixeltakt ist dem TV egal, den kriegt er ja nicht. Er kriegt nur die Daten aus der Bildzeile. Kriegt er die schneller als er darstellen kann, dann werden einzelne Pixel u.U. ganz verschwinden oder mit den Nachbarpixeln verwurstet. Die Bandbreite eines klassischen SVGA/ScartRGB TV-Eingangs dürfte bei maximal 3-4MHz liegen, was einem Pixeltakt von 6-8MHz entspricht. Der VGA-Eingang eines heutigen TVs kann allerdings besser sein. Passen muss allerdings Zeilen- und Bildfrequenz.
So ganz egal ist es dem TV nicht. Er bekommt ihn indirekt über die Horizontalfrequenz mit: 25MHz/800 (640+Overscan)=31,25kHz. Das ist dem TV zu viel. Du musst den Pixeltakt also halbieren, oder eben wie schon geschrieben immer die Pixel doppelt ausgeben. Davon mal abgesehen ist 640x480,50Hz und 25MHz Pixeltakt ein Widerspruch, denn Framerate und Pixeltakt stehen in einem festen Verhältnis zueinander, das durch die Auflösung bestimmt wird. Der "offizielle" Pixeltakt von digitalem PAL beträgt übrigends 13,5MHz. Das ergibt dann nämlich eine Auflösung von 864x625 bzw. 768x576 sichtbaren Pixeln.
Oh sorry, habe mich verschrieben. Bei 640x480 (50Hz) wären es in etwa 20MHz Pixel_CLK. Mein PRoblem ist, dass ich ein Bild mit einer AUflösung von 640x480 über PAL darstellen möchte. Könnte ich denn die fehlenden Zeilen und Pixel, die durch das PAL Timing entstehen einfach durch das BLANK sxhwarz darstellen lassen???
Wie Benedikt korrekt anmerkt: 640 Pixel pro Zeile und 64µs Zeilendauer (einschliesslich Austastlücke) gehen nicht zusammen mit 20MHz Pixeltakt. Da die Zeilendauer festliegt, müssen sich die Pixel dem anpassen. Ob du dann bei hohem Pixeltakt jedes davon doppelt darstellst, oder den Takt reduzierst, das kannst dir aussuchen. Der zeitliche Aufbau der Zeile jedenfalls, also die Dunkelzeiten innerhalb der Zeile, die ergeben sich aus dem TV-Standard. Wenn du daran drehst, also die dunklen Zeiten vor und nach dem Sync-Puls hochdrehst um 640 Pixel mit 20MHz rausschieben zu können, dann wird das sichtbare Bild entsprechend schmaler und du guckst links und rechts in stattliche Schwarzbalken.
So ich habe nun folgende Timing Angaben von der VESA: 320x240 @50 Hz Hor. Frequ.: 12,5kHz Vert. Frequ.: 50 Hz Pixel CLK: 5 MHz Hor. total: 80 us = 400 Pixel usw. Kann ein Fernseher das denn ohne Probleme verarbeiten?????
Nein ! Wie schon mehrmals gesagt: Horizontalfrequenz 15,625kHz (auf wenige % genau !!!) und Vertikalfrequenz 50-60Hz je nachdem ob der TV nur PAL oder auch NTSC kann.
Ja, bin da wieder durcheinander gekommen. Ich muss also nur die 50HZ Vert. frequ. und 15,625kHz Hor. Frequ. beachten! Die Pixelclock kann ich dann entsprechen nach meiner nach belieben auswählen, solange ich natürlich die Vertikal und Hor. Sync einhalte! Wie ist das denn mit dem Blank? Kann ich das nach belieben verändern, wenn sich die Pixel Zahl ändert???
Schau dir das mal an: http://www.edv-tip.de/dvd/004_aufloesung.htm Du musst die Größe der Sync Impulse und deren Frequenz einhalten. Der Blank muss mindestens die vorgeschriebene Länge haben. Wenn dieser länger aktiv ist, ist das nicht schlimm, der sichtbare Bereich wird nur kleiner.
Moin, ich noch einmal! Also, ich will ja ein Bild mit 320x240 Pixel darstellen. Und zwar in PAL. Jetzt muss ich ja 50Hz pro Halbbild und 15,625 kHz Zeilenfrequenz einhalten. Zusätzlich die Zeit des H_Sync und V_Sync. Jetzt möchte ich gerne eine Pixel Clock von 20MHz erzeugen. D.h. dass die Anzahl der gesamten Pixel in 64us ansteigt. Aber das müsste doch egal sein, so lange ich die Sync- Signale, die Wiederholfrequ. und die Zeilenfrequnez einhalte, ODER?????
- Wenn du in einer Zeile mehr als 320 Pixel anzeigt, sind es keine 320x240 mehr. - Wenn du bei PAL Timing in einer Zeile genau 320 Pixel mit 20MHz Pixeltakt anzeigst, ist das Bild schmal wie ein Handtuch. - Wenn du bei PAL Timing genau 320 Pixel pro Zeile so anzeigst, dass das Bild satt auf den TV passt, sind es keine 20MHz Pixeltakt. Such es dir aus.
Also ich habe jetzt eine Pixel Clock von 12,5MHz, 15,625kHz Zeilenfrequenz, 50 HZ Bildwiederholrate. D.h. pro Zeile 800 Pixel, wovon ihc nur 320 als Bild darstellen will. D.h mein Front- u. Back Porch ist länger als normal. H-Sync = 4,7us und V-Sync = 2,5x64us=160us. Jetzt wollte ich eignetlich das Timing für die Even und Odd-Zeilen generieren. Aber ich hab da gerade ein verständnisproblem: Wie bekomme ich es hin, dass ich immer eine Zeile dazischen frei habe.Erst hatte ich überlegt, jeweils einen Counter für Odd und für Even zu machen. Aber so richtig scheint mir das auch nicht zu sein?????
you2 wrote:
> V-Sync = 2,5x64us=160us.
???
160µs pro Bild, für 2,5 Zeilen? Was soll das werden?
Das Timing steht überall, wo man etwas zur Fernsehtechnik findet.Der VErtikal_Sync_Impuls ist 2,5 Zeilen lang. Da eine Zeile 64us dauerte....!
Alles klar. Weißt du denn, wie man das Halbbild-Timing richtig generiert. Ich brauche ja einmal die geraden und ungeraden Zeilen. Mit den ungeraden fange ich dann an. Das ist ja alles klar. Aber sind denn auch die Front- und Back-Porch gleich groß? Oder muss ich diese jeweils den Odd und Even Bild anpassen, da ja das 1. halbbild mit einer Halbezeile endet und das 2. mit einer halben Zeile beginnt.????????
Hast du denn erst einmal die Variante ohne Interlacing hinbekommen? Für 240 Zeilen braucht's das ja nicht.
Nee. Kann ich denn ein NON-Interlaced mit einem Fernseher verarbeiten? Ich hab jetzt einfach bei dem Odd_halbbild den FrontPorch auf 1/2 Zeile verlängert und bei dem Even-Halbbild den Bck-Porch. Müsste doch jetzt eigentlich so gehen, oder?
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.