mikrocontroller.net

Forum: FPGA, VHDL & Co. VGA Bildschrim mit 320x240 möglich?


Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!!!

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube die meißten heutigen Monitore können keine 15kHz 
Horizontalfrequenz. Nur ab 31kHz aufwärts. Sollte im Handbuch des 
Monitors stehen.

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  V. Baumann
ACK
siehe gOOgle: horizontal-frequenz lcd-monitor

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht nur die LCD-monitore sondern auch die normalen Röhren-monitore 
arbeiten ab mitte 90er Jahre nur noch ab 31kHz aufwärts.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jedes Pixel die doppelte Zeit und jede Zeile zweimal anzeigen. Dann 
ändert sich auch das Timing gegenüber 640x480 nicht.

Gruß Jörg

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fernseher dranhängen. Der kann, sofern wie heute üblich mit 
NTSC-Frequenz verträglich.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ABer ein Fernseher verarbeitet doch nur Halbbilder!
D.h. ich muss aus dem Vollbild noch zwei Halbbilder genrieren und dann 
an den Fernseher senden!

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
you2 wrote:
> ABer ein Fernseher verarbeitet doch nur Halbbilder!

Nicht ganz. Er verarbeitet auch problemlos 312 Zeilen, also alles mit 
15,625kHz/50Hz.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder eben 240 sichtbare Zeilen von 262 technisch vorhandenen Zeilen, bei 
60Hz/15,750KHz im hier eher relevanten NTSC-Timing.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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???

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?????

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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???

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?????

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- 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.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?????

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
you2 wrote:

> V-Sync = 2,5x64us=160us.

???

160µs pro Bild, für 2,5 Zeilen? Was soll das werden?

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Timing steht überall, wo man etwas zur Fernsehtechnik findet.Der 
VErtikal_Sync_Impuls ist 2,5 Zeilen lang. Da eine Zeile 64us 
dauerte....!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, sorry, ich hatte das als Periode verstanden ;-).

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.????????

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du denn erst einmal die Variante ohne Interlacing hinbekommen? Für 
240 Zeilen braucht's das ja nicht.

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich geb's auf.

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.