Forum: FPGA, VHDL & Co. Frage zu VGA to PAL konverter


von Grobi (Gast)


Lesenswert?

Hallo, ich hab da mal ne Frage,
wäre es möglich einen VGA zu PAL konverter in einen CPLD wie z.B. XC9572 
zu packen?
Ich stell mir sowas in der art vor wie : das erste gefundene VGA frame 
wird zur initialisierung genutzt, sozusagen erkennen der VGA Auflösung 
etc. sagen wir mal max 1024x768.
Danach wird eine empfangene VGA Zeile auf entsprechende PAL Zeile 
skaliert und ausgegeben oder weggelassen. Vieleicht dabei eine art 
zwischenspeicher nutzen.
Wäre sowas überhaupt möglich? Wäre der CPLD überhaupt schnell genug das 
hinzubekommen oder müsste man für sowas auf nen FPGA zurückgreifen? Und 
wenn FPGA, kann man die überhaupt noch auf ner lochrasterplatine zum 
experimentieren benutzen wenn die mit 100MHz oder so getaktet werden 
oder hab ich dann einfach nur ne gute Störquelle gebaut?

Grobi

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Wäre sowas überhaupt möglich? Wäre der CPLD überhaupt schnell genug das
> hinzubekommen oder müsste man für sowas auf nen FPGA zurückgreifen?
Schnell genug wäre das CPLD schon...
...aber mit nur 72 FFs kannst du nicht viel ausrichten.

> sozusagen erkennen der VGA Auflösung etc. sagen wir mal max 1024x768.
Eine dynamische Erkannung ist mit einem derart kleinen Baustein 
garantiert nicht möglich...

> Danach wird eine empfangene VGA Zeile auf entsprechende PAL Zeile
> skaliert und ausgegeben oder weggelassen. Vieleicht dabei eine art
> zwischenspeicher nutzen.
Wenn du dir die Zeiten der Signale ansiehst, dann wirst du sehen, dass 
es ohne Zwischenspeicher garantiert nicht geht.

> Und wenn FPGA, kann man die überhaupt noch auf ner lochrasterplatine zum
> experimentieren benutzen wenn die mit 100MHz oder so getaktet werden
> oder hab ich dann einfach nur ne gute Störquelle gebaut?
Ein FPGA bekommst du nicht mehr (sinnvoll) auf eine Lochrasterplatte. 
Bei diesen Frequenzen und Signalanstiegszeiten empfiehlt sich ein 
wohldurchdachtes mindestens zweiseitiges Layout.

von max (Gast)


Lesenswert?

rechne doch mal aus, wieviel speicher 1024*768@16 bit sind ;)
(ok. ich bin ein spielverderber und verrate es im voraus: es sind 1536 
kByte!)

mit ner lochrasterplatine macht es spätestens dann keinen spaß mehr, 
wenn du den externen speicher, den du für das zwischenspeichern der 
einzelnen bilder brauchst, anbindest! ;) (für diese größe des speichers 
brauchst du 20 bit adressleitung + 16 bit datenleitung)

die daten bei der von dir gewünschten auflösung kommen mit (je nach 
bildwiederholrate) 75 MHz pixelclock daher! (bei pal hab ich grad keine 
ahnung, wie schnell die daten gebraucht werden.) aber du wirst wohl 
einen dual-port-ram wegen der zwei clocking-domains brauchen. -> doppelt 
so viele verbindungen.

(gibts dual-port-ram in der größe? oder kann man vielleicht doch mit nem 
normalen ram hinkommen, der schnell genug angesprochen wird? keine 
ahnung - vielleicht kann da ja einer der profis hier nen wort dazu 
verlieren ;) )

was ich eigentlich sagen wollte: ich glaub nicht, dass es spaß macht das 
von hand zusammenzukleistern! da gibt man gerne das bisschen geld für ne 
platine aus...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> oder kann man vielleicht doch mit nem normalen ram hinkommen,
> der schnell genug angesprochen wird?
Jawohl, man kann das. Allerdings nicht von jetzt auf nachher  ;-)

Denkbar wäre auch, doppelt soviel RAM zu spendieren und einen Frame 
zwischenzuspeichern.

von Grobi (Gast)


Lesenswert?

hmm danke für die Antworten, bin zwar jetzt etwas enttäuscht das mein 
vorhaben nich so ohne weiteres möglich ist aber nun gut ;-)
Hab ich wohl ein paar Dinge nicht bedacht, aber sofort aufgeben will ich 
noch nicht, wäre wäre denn wenn man den externen speicher sehr klein 
hält (max 2 oder 3 Zeilen), den takt für den CPLD aus der Pixelclock 
gewinnt, leider hab ich nur nen 15ns cpld, der käme nur auf 66MHz und 
nicht auf die erwähnten 75Mhz. Da das PAL timing langsamer ist als das 
VGA müsste es doch irgendwie möglich sein diesen "Zeitpuffer" für die 
benötigte skalierung zu benutzen, im Prinzip bräuchte man bei 1024x768 
max VGA auflösung sehr vereinfacht doch nur 2 VGA pixel zu einem PAL 
pixel zusammenfügen. Aber vielleicht wäre es einfacher das auf 2 cplds 
aufzuteilen, einer analysiert und bearbeitet das skalierte vga frame (da 
wäre dann wieder viel speicher von nöten) und der zweite gibt das pal 
frame wieder aus.

Grobi

von (prx) A. K. (prx)


Lesenswert?

Fang mal bei den Frequenzen an. Wenn du es schaffst, dem VGA-Ausgang 
eine Vollbildfrequenz von 50Hz mit gegenüber PAL doppelter 
Zeilenfrequenz zu entlocken, dann wird es tatsächlich deutlich 
einfacher. Denn dann ist kein Vollbildspeicher erforderlich, sondern 
eine Zeile reicht.

Wenn die Bildfrequenz des VGA-Ausgangs aber nicht 50Hz beträgt, dann 
kommst du um eine Bildspeicherung nicht herum, denn PAL will nun einmal 
50Hz Halbbildfrequenz sehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Aber vielleicht wäre es einfacher das auf 2 cplds aufzuteilen
Dann nimm besser ein schnuckelig kleines FPGA z.B. MachXO von Lattice 
;-)

PAL ist allerdings noch einiges mehr, als nur das Timing... :-o
Wie machst du die nötigen Farbumrechnungen?
Wie modulierst du den Farbträger?

von (prx) A. K. (prx)


Lesenswert?

Lothar Miller schrieb:

> Wie machst du die nötigen Farbumrechnungen?
> Wie modulierst du den Farbträger?

Gibt's dazu keine fertigen Konverter-ICs, die das RGB-Signal 
entsprechend vergewaltigen? Steckt heute doch in jeder Grafikkarte drin, 
jedenfalls in älteren noch getrennt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Gibt's dazu keine fertigen Konverter-ICs, die das RGB-Signal
> entsprechend vergewaltigen?
Doch, sicher, aber es geht um einen "VGA to PAL konverter" im CPLD  :-o

>>>>> Hallo, ich hab da mal ne Frage,
>>>>> wäre es möglich einen VGA zu PAL konverter in einen CPLD zu packen?

von Grobi (Gast)


Lesenswert?

das mit dem vga auf 50 hz ist doch so eine sache für sich, soweit mir 
bekannt ist, kann das garnicht jede graka manche onboard dinger z.B. und 
von irgendwelchen treibern die z.B. unter xp garnicht mehr funktionieren 
will ich garnicht erst anfangen. Hatte da auch ne schaltung wo man 
einfach 2 oder 3 widerstände und nen transistor zwischen vga und scart 
hängt und mit irgendnem treiber  das pal signal simuliert, aber das hat 
nie wirklich funktioniert. Darum wäre ich da eher für so eine all-round 
lösung, halt anstöpseln und loslegen. Ich hab irgendwo noch einen 
konverter aus China oder so total günstig bei *bay geschossen mit nem 
altera irgendwas fpga und speicher und sonstigem drauf der vga zu lvds 
für n laptop tft display machen soll, vielleicht kann man das ding 
irgendwie umfunktionieren.
Mist muss ich wohl doch erstmal den keller aufräumen um das zu finden.

Grobi

von (prx) A. K. (prx)


Lesenswert?

Grobi schrieb:

> das mit dem vga auf 50 hz ist doch so eine sache für sich, soweit mir
> bekannt ist, kann das garnicht jede graka

Es gibt alte Karten, die für TV und VGA noch keine getrennten 
Wiedergabekanäle verwendeten, sondern bei angeschlossenem TV den 
VGA-Ausgang auf 50/60Hz Vollbild und gegenüber PAL/NTSC doppelter 
Zeilenfrequenz schalteten. Daraus wurde dann mit einem vergleichsweise 
einfachen und anfangs separaten Chip mit internem Speicher für 1-2 
Zeilen das PAL/NTSC Signal abgeleitet.

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.