Forum: FPGA, VHDL & Co. Hochauflösende Videoformate erzeugen


von Ralf (Gast)


Lesenswert?

Ich möchte Videoauflösungen für aktuelle Monitore erzeugen, scheitere 
aber an den Videotakten. Die üblichen Verdächtigen 800x600 und 1024, 
1280 laufen mit Frequenzen von 50MHz, 60MHz, 75MHz und Abkömmlingen 
derselben.

Mein Monitor hat aber 1600 x 1200! Momentan erzeuge ich 800x600@72Hz 
über 50MHz, was zwar in die native Auflösung passt, mir aber nicht mehr 
reicht.

Als denkbare Modi habe ich gefunden:

1600x1200 @ 60Hz (VESA) hsync: 75.0kHz  162.0 MHz
1600x1200 @ 65Hz (VESA) hsync: 81.3kHz  175.5 MHz
1600x1200 @ 70Hz (VESA) hsync: 87.5kHz  189.0 MHz
1600x1200 @ 75Hz (VESA) hsync: 93.8kHz  202.5 MHz
1600x1200 @ 85Hz (VESA) hsync: 106.3kHz 229.5 MHz

Das sind aber äusserst unschöne Takte. Jemand eine Idee, wie ich die 
erzeuge? Mein FPGA-board kann nur 25MHz. Quarz umlöten ginge zur Not.

Weiss jemand, wie genau die Frequenzen eingehalten werden müssen?
Die 175,5 wären mir eigentlich recht sympathisch, aber mein TFT kann 
wohl die 65Hz nicht, jedenfalls kam nichts raus.

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Wenn du momentan mit 50Mhz arbeitest, wirst du sicherlich eine PLL im 
FPGA benutzen, welche dir aus 25Mhz -> 50MHz macht. Je nach FGPA-Typ 
sollte also z.B. auch 162MHz erzeugbar sein.

Ist halt die Frage ob dein Design/FPGA das Timing von z.B. 162MHz noch 
ermöglicht (sollte eigentlich die Timinganalyse ausspucken (Clocks 
definiert?)).

Die nächste Frage wäre, kannst du die Daten (RGB) bei einer solchen 
Frequenz noch liefern (wo kommen die her (DRAM?) welches Format (n 
Bits,indexed?)),

von Lars Laffer (Gast)


Lesenswert?

> 1600x1200 @ 60Hz (VESA) hsync: 75.0kHz  162.0 MHz
> 1600x1200 @ 65Hz (VESA) hsync: 81.3kHz  175.5 MHz
> 1600x1200 @ 70Hz (VESA) hsync: 87.5kHz  189.0 MHz
> 1600x1200 @ 75Hz (VESA) hsync: 93.8kHz  202.5 MHz
> 1600x1200 @ 85Hz (VESA) hsync: 106.3kHz 229.5 MHz


Hm, genügen für einen modernen TFT Monitor nicht 60 Hz 
Bildwiederholrate?

MfG,

von Lars Laffer (Gast)


Lesenswert?

also lt xilinx clocking manager wäre für einen spartan3A 160MHz 
generierbar.

von Alexander F. (alexf91)


Lesenswert?

Lars Laffer schrieb:
> also lt xilinx clocking manager wäre für einen spartan3A 160MHz
> generierbar.

162,5 MHz sollten eigentlich auch funktionieren (mit 13 multiplizieren 
und durch 2 dividieren), ausprobiert habe ich das aber nicht.

Die Frage ist wohl eher, wie du die Daten mit dieser Frequenz an den 
VGA-Ausgang bringst. Bei 8 Bit Farbtiefe und 60Hz sind das immerhin 
schon mehr als 100MB pro Sekunde.

von Falk B. (falk)


Lesenswert?

@Alexander F. (alexf91)

>Die Frage ist wohl eher, wie du die Daten mit dieser Frequenz an den
>VGA-Ausgang bringst. Bei 8 Bit Farbtiefe und 60Hz sind das immerhin
>schon mehr als 100MB pro Sekunde.

Ja und? Darüber lacht ein halbwegs aktuelles FPGA nur.

1600x1200 = 2 Megapixel

Bei 24 Bit/Pixel und 60 Hz sind das 360 MB/s. Ein DDR-RAM mit 32 Bit und 
150 MHz macht 600 MB/s. Aktuelle FPGAs arbeiten mit DDR2 und DDR3 bei 
höheren Takten. So what. Ist nur einfaches Datenschieben.

FPGAs sind schon "etwas" leistungsfähiger als die guten alten GALs ;-)

von J. S. (engineer) Benutzerseite


Lesenswert?

Alexander F. schrieb:
> 162,5 MHz sollten eigentlich auch funktionieren (mit 13 multiplizieren
> und durch 2 dividieren), ausprobiert habe ich das aber nicht.

Ich hatte das mal probiert und auch ausgehend von 50MHz versucht, eine 
162MHz Taktung für einen 1600x1200 Moni zu generieren, erhielt aber nur 
sporadisch Bilder. Der Synch fiel immer wieder aus.

Es bleibt also wohl nichts anderes übrig, als einen geeigneten Quarz zu 
finden. Ansonsten kannst Du probieren, PLLs zu verketten. Ich würde 9 x 
9 x 2 vorschlagen und die 60Hz nehmen. Bei mir sähe das so aus:

50 MUL 18 = 900, DIV 25 = 36 MHz

36 MUL  9 = 324, DIV 2 = 162 MHz

: Bearbeitet durch User
von Ralf (Gast)


Lesenswert?

Bingo! Da wär ich jetzt nicht darauf gekommen, dass es mit dem 
bestehenden Clockgenerator ohne Umlöten geht. Werde ich direkt 
probieren. Danke.

von W.S. (Gast)


Lesenswert?

Vorschlag: nen externen CDCE913 benutzen. Die Dinger sind für sowas 
gedacht.

W.S.

von J. S. (engineer) Benutzerseite


Lesenswert?

noch mehr zu löten....

von Mike (Gast)


Lesenswert?

Wenn es ein LCD ist, dann könntest du es mal mit "reduced blanking" 
probieren. Der Rechner im VESA Excelsheet (CVTd6r1.xls) wirft für 
1600x1200@60Hz dann 130,25MHz aus. Leider ein ziemlich krummer Wert.

von Ralf (Gast)


Lesenswert?

W.S. schrieb:
> Vorschlag: nen externen CDCE913 benutzen. Die Dinger sind für sowas
> gedacht.
Das wäre wie schon eingeworfen auch ein Umbau.

Mike schrieb:
> Wenn es ein LCD ist, dann könntest du es mal mit "reduced blanking"
> probieren. Der Rechner im VESA Excelsheet (CVTd6r1.xls) wirft für
> 1600x1200@60Hz dann 130,25MHz aus. Leider ein ziemlich krummer Wert.
Die Schwierigkeit ist weniger dier hohe Frequenz sondern der Wert an 
sich. Die 130,25 wären auch ok, aber ich wüsste spontan jetzt auch 
wieder nicht, wie ich auf die kommen soll, ohne wenigstens der Quarz zu 
tauschen.

Das Excel habe ich mir geladen. Bin jetzt auf die Idee gekommen auch 
HDTV auszugeben für meinen TV. Kann man das noch analog? Die Frequenzen 
wären 173,0 MHz bez. 138,5 MHz. Kommt das hin?

von Ralf (Gast)


Lesenswert?

Ich habe über WIKI ein Programm entdeckt, dass die Frequenzen berechnen 
kann, oder können soll, allerdings kommen auch dort wieder etwas andere 
Frequenzen heraus, als sie in den Tabellen zu finden sind.

http://sourceforge.net/projects/umc/

Kann man den Werten trauen?
Danach brauche ich für 1080p 173,1 MHz. Wie kritisch sind die Werte?

von J. S. (engineer) Benutzerseite


Lesenswert?

Einige Promille sind kein Thema. Wenn es zuviel wird, kann es sein, dass 
es Bildaussetzer gibt. Das ist dann auch vom Monitor abhängig. Bei dem 
Umweg über 2 PLLs kann es da natürlich früher zu Problemen kommen.

Die 173,1 / 173,0 könnten mit der Rundung zusammenhängen. Im Excel oben 
kann man das unten einstellen. Wie das Consolenprogramm rechnet, ist ja 
nicht ersichtlich. Ich komme auf eine rechnerische Frequenz von 173,08. 
Zu realisieren wäre sie so:

25 x 30 => 750 / 13 => 57,69 x 6 => 346,15 / 2 -> 173,08

Die andere Option wären 50Hz. Das habe ich schon erfolgreich im Spartan 
gemacht. 141,8 wären der angebliche ideale HF-Wert.

Gebaut ist es so: 25 x17 -> 425 / 3 -> 141,67

von Fpgakuechle K. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Einige Promille sind kein Thema. Wenn es zuviel wird, kann es sein, dass
> es Bildaussetzer gibt. Das ist dann auch vom Monitor abhängig.

Sehe ich genauso. Ich nehme an das im Monitor auch eine PLL sitzt, die 
sich auf den angeboteten Pixeltakt einregelt. Spontane Suche auf 
Moni-datenblätter bei reichelt erbrachte aber kein sicheres Ergebniss, 
da findet sich keine Angabe für den Fangbereich.

Meine Monis hier quäle ich mit verschiedenenen fpga-gerierten Modi 
(kleiner gleich 1024x768 und es klappt eigentlich recht gut. Also gehe 
ich optimistischerweise davon aus, das der Moni Pixeltaktmäßig platz 
hat. Und im Vergleich zu den Alten Röhrenkasten ist die elektronik 
besser vor Beschädigung durch rasantes timing geschützt.

MfG,

von Ralf (Gast)


Lesenswert?

Mit dem TV hat es noch nicht geklappt. Möglich, dass der nicht zu 
tolerant ist oder die Werte nicht stimmen.

Wie sähe ein timing für einen Computermonitor aus mit 1920x1200?
Gemäss dem Excel wären dies bzw 193,47 MHz. Aus der Tabelle 193.16 MHz.
Ich nehme an, dass das etwas mit GTF zu tun hat.

Da dies wieder schlecht ist würde ich gerne das reduced blanking 
probieren, also gemäss Rechung 154,12. Wie stelle ich die her?

von J. S. (engineer) Benutzerseite


Lesenswert?

Gfs klappt es mit den verketteten PLLs nicht.

>reduced blanking
Ich würde sagen: 25 * 37 / 6, wenn es mit (D)einer PLL geht. Ergibt 
154,17. Das müsste aber nun wirklich hinhauen.

>Meine Monis hier quäle
Die CRTs sind da manchmal genügsamer, als die TFT, habe ich 
festgestellt.

von Stauffenbiehl (Gast)


Lesenswert?

Geht denn das überhaupt noch analog? Ich dachte, die neueren Formate 
seien alle nur digital zu machen,

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
Noch kein Account? Hier anmelden.