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!!!
you2 wrote:
> ABer ein Fernseher verarbeitet doch nur Halbbilder!
Nicht ganz. Er verarbeitet auch problemlos 312 Zeilen, also alles mit
15,625kHz/50Hz.
> 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?????
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.????????
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?