Forum: FPGA, VHDL & Co. Testbildgenerator TV + Monitor


von Schnagg (Gast)


Lesenswert?

Hallo!

Baue gerade einen Testbildgenerator mittels FPGA für TV und Monitore.
Der Monitorteil funktioniert, jetzt meine Frage an die Spezis unter
euch, gibt es evtl. ein IC das mir das RGB-Signal in ein brauchbares
FBAS-Signal wandelt? Möchte mir nicht die einzelnen Spannungsamplituden
für das FBAS mit einem DAC erzeugen.
Desweiteren bin ich auf der Suche nach einem Programm mit dem ich z.B.
aus einer Bitmap-Datei eine Tabelle für ein EEPROM erzeugen kann wo
dann die einzelnen Pixel des Bildes gespeichert sind. So wären dann die
Testbilder beliebig erweiterbar.

Vielen Dank!

von Marco (Gast)


Lesenswert?

Hi Schnagg!

Probiere es doch mal mit dem MC1377, ist ein RGB->FBAS WandlerIC.
Da hast du dann dein Videosignal mit dem du über AV in den TV kannst,
du kannst dann aber noch einen VHF-Modulator dahinter setzen mit dessen
Ausgang du dann zur Antenne rein kannst.

Zu dem gesuchten Programm kann ich dir leider nichts sagen. Würde mich
aber ehrlich gesagt auch mal Interressieren ob es da was gibt!!

Gruß
Marco

von Michi (Gast)


Lesenswert?

Zum Programm kann ich nur sagen, das dürfte nicht schwer sein, je nach
dem in welchem format du die Daten am ende haben willst, aber wenn die
eingangs Daten Windows Bmp´s sind, ist es echt einfach, die zu
konvertiern.

Bitmapstruktur:
http://de.wikipedia.org/wiki/Windows_bitmap

Wenn du willst helf ich dir beim umwandeln, wenn ich von dir schaltplan
und co bekomm ;-). michi-schroeder[at]t-online.de

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ist das Projekt inzwischen fertig geworden?
Son FPGA der nen Videosignal (am besten mit eingebautem Bildspeicher der 
anzuzeigenden Daten) liefert wäre schon was feines :)

von Thomas Pototschnig (Gast)


Lesenswert?

Hallo,

ich hab sowas erst gebaut ... nachdem mir eine Zeitung (die ich 
namentlich nicht erwähne) mir erst die Veröffentlichug zugesagt hatte 
und dann plötzlich nach einem halben Jahr mit Kommentaren wie "pal ist 
nicht mehr so interessant" gekommen ist, seh ich jetzt auch keinen Grund 
mehr das Projekt nicht baldmöglichst Publik zu machen.

Hier gibts mal einen Überblick von dem Projekt:
http://www.oxed.de/index.php?open=3&sub=7&side=pal/overview.html

und hier gibt es paar Bilder, die über eine PC-TV-Karte gecaptured 
wurden:
http://home.in.tum.de/~pototsch/graphiti/

Ich feil schon lang an einer neuen Webseite, auf der es dann auch mal 
was zum Download geben soll ... Einen Account bei OpenCores hab ich mir 
schon zugelegt.

Mfg
Thomas Pototschnig

von Thomas Pototschnig (Gast)


Lesenswert?

Nachtrag:
Meine Webseite ist im moment nicht mehr so aktuell ... das Ding hat zur 
Zeit ein SPI-Interface. Wishbone ist evtl geplant. Das Parallelle 
asynchrone Interface wirds wohl so schnell garnicht geben.

Als Portierung hab ich:
- Spartan-III (passt in einen 200k Gater) und
- Altera EP1C12F256 (~30% voll)

Intern wird noch fast zu genau gearbeitet ... Wäre interessant wie klein 
man den Core kriegen kann, wenn man dafür eine schlechtere Qualität in 
Kauf nimmt.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Respekt das sieht echt klasse aus!!!
Wie siehst du die Chance für nen Anfänger solch einen FPGA zu proggen?
Kann man pixel einzeln setzen/löschen?
Oder nur fertige Bilder laden.

von Thomas Pototschnig (Gast)


Lesenswert?

Danke ^^
Das Hauptproblem ist wohl die Plattform. Mit einem Spartan-3/Altera 
Entwicklungsboard alleine ist es nicht getan. Der Pal-Encoder braucht 
noch 1MB SRAM für den Bildschirmpuffer organisiert als 512K*16 oder 
parallel zwei mal 512K*8 (16bit datenbreite ist wichtig sonst geht 
nichts) und dem DAC und Videoverstärker. Wenn das Dev-Board den RAM 
schon hat (ich hatte 15ns verwendet ... der reichte aus) ists nicht mehr 
schlimm. Die Platine mit dem DAC ist gleich geätzt ...

Die VHDL-Anpassungen wären nicht weiter schlimm - im Grunde nur neue 
Pinzuweisungen.

Zu den Pixeln:
Das funktionierte so, dass man über die SPI-Schnittstelle einen 
Adresspointer  für die aktuelle Pixelposition im Bildschirm-RAM setzen 
konnte und mit jedem weiteren Schreibbefehl wurde dann das Pixel gesetzt 
und der Pointer gleich um 1 erhöht. Dabei werden immer 16Bit (RGB) auf 
einmal gesetzt.

Mfg
Thomas Pototschnig

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hast du ne übersicht wieviel sone Platine kosten würde die du auf deiner 
Homepage vorgestellt hast?
(also allein die Bauteile die Platine mal noch nicht eingerechnet)

von Xilinxuser (Gast)


Lesenswert?

Das EVAL Board hätte das RAM, es ist aber nicht Dual-Ported. Das müsste 
man selber realiseren, womit nur maximal die halbe Datenrate nach Aussen 
über wäre. Da e aber ein DDR ist müsste man die volle Bandbreite zum RAM 
hin eigentlich ausnutzen können, wenn man Schreiben und Lesen 
alternierend schachtelt. Ich habe aber kein Gefühl dafür, wie schnell 
der Spartan das kann. Bei 80MHz würde man mit multiplexten Ports auch 
ohne Verrenkungen noch 40MHz bidirektionalen Zugriff hinbekommen. Das 
würde für 800x600@72 reichen.




von Thomas Pototschnig (Gast)


Lesenswert?

@Läubi:
Hmm ... ich hatte das mal überschlagen und bin (inkl Platine, wenn man 
ein paar Stück mehr macht) auf ca 40EUR gekommen.

@Xilinxuser:
Das RAM das ich verwendet hab ich auch kein Dualported-RAM. Es ist ein 
schlichtes SRAM. Der FPGA koordiniert die Lese- und Schreibzugriffe auf 
das SRAM - quasi ein "Cycle-Shared-RAM", bei dem ein Schreib und 
Lesezyklus von 2 unabhängigen Bussen gleichzeitig passieren darf und die 
interne Statemachine läuft mit dem 4fachen Takt und erzeugt in einem 
Zyklus dann effektiv zwei Zugriffe auf das RAM. Das klappt auch 
wunderbar. Getestet ist es aber bisher nur, dass von dem einen Bus 
geschrieben, vom anderen nur gelesen wird. Die Datenrate ist 30MB/sec 
pro Bus (15MHz mit 16Bit Datenbreite pro Bus; die Statemachine läuft auf 
60MHz - das kann der Spartan noch gut)

Die Auflösung des Pal-Encoders ist 780*576 @16Bit bei 50Hz Halbbildern. 
Und das was rauskommt ist nicht für einen VGA-Monitor, sondern es 
kommt ein digitales PAL-Signal raus.

Ein Speicherinterface für SDRAM und DDR-SDRAM hab ich bisher noch nie 
implementiert und kann dazu dann garnichts sagen.

Ich muss mich dann mal ranhalten, dass ich mal endlich fertig werde mit 
meiner neuen HP ... dann gibts das Ding auch zum Runterladen.

Mfg
Thomas Pototschnig

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

du meisnt ein analoges PAL Signal oder?
40€ sind ja fast schon tauglich, man hätte dann ja ein TV taugliches 
Interface für µC, womit man sogar eine kleine Spielekonsole bauen 
könnte.

von Xilinxuser (Gast)


Lesenswert?

Was ist denn ein "digitales" PAL-Signal?

Wenn es nur das niederbandige Fernsehsignal (12MHz) geht, kann man das 
auch mit einer Transistormischstufe über R und einer Diode fürs blank 
lösen. Der FPGA kann dann z.B. 6 Farbstufen durch 5faches Übertakten 
realisieren. 00000, 00100, 01010, 10101, 11011, 11111. Das wären dann 
12x5 = 60 Mhz.

von Holger (Gast)


Lesenswert?

Bei Dontronics ist ein uC USB/V24 VGA CHIP ist das was ???? ca 20Euro

von Thomas Pototschnig (Gast)


Lesenswert?

@Läubi:
Das Ding hatte ich extra als Grafikkarte für µCs, an denen ein kleiner 
TFT mit PAL-Videoeingang angeschlossen wird, entwickelt. Aber in die 
endgültige Applikation wurde er noch nicht itegriert. Am SPI muss ich 
noch etwas feilen, weil der noch etwas lahm ist. Aus verschiedenen 
Timinggründen haut das noch nicht so schnell hin, wie es gehen könnte.

@Xilinxuser:
Ein digitales PAL-Signal ist ein Analoges PAL-Signal, bevor es von 
digital nach analog gewandelt wurde.

Ganze 6 Farbstufen? Da kann mein PAL-Signal mit voller Auflösung und 
16Bit Farbtiefe natürlich nicht mithalten ;-)

Ne aber im ernst - genau das ist es, was ich immer etwas schade finde. 
Es es gibt tausend schlechte Lösungen, aber so gut wie keine Guten.

Das PAL-Signal was beim FPGA rauskommt hat schon annähernd 
Broadcast-Qualität. Der 10Bit DAC (bis zu 16Bit wenn man einen anderen 
DAC verwendet) läuft auf 45MHz und da gibts kaum einen PAL-Encoder, der 
die Präzision hat. Auch die ganzen Timings, Farbträgerfrequenz usw sind 
naherzu exakt. Wenn man es genau nimmt, ist das für die normale 
Verwendung schon fast zu genau. Den Core könnte man daher noch um 
einiges shrinken und die Qualität würde wohl dann noch "gut genug" 
bleiben. Dann wär auch Platz für eine z.B. eine Soft-CPU.

Wen es interessiert, hier mal ein Blockschaltbild:
http://home.in.tum.de/~pototsch/blockschaltbild.png

Mfg
Thomas Pototschnig

von Thomas Pototschnig (Gast)


Lesenswert?

@holger:
Bei Deutronic hab ich gekuckt, aber das Ding nicht gefunden.

Hast du einen Link?

Mfg
Thomas Pototschnig

von Holger (Gast)


Lesenswert?


von Holger (Gast)


Lesenswert?

@Thomas
http://www.dontronics-shop.com/product.php?productid=16145&cat=0&page=1
Is nur das Base Board.
Einfach in shop nach VGA suchen.
Da sind auch pdf's drin. Mus man aber suchen.
Die Page ist nich so userfreundlich gemacht.

Ich habe mal bei google
unter Stichwort AVR VGA aber unter Bilder suchen.
Nicht im Web suchen. also nur unter Bilder anklicken,
Links mit uC-VGA Kopplung gefunden aus dem Jahr 2005
auch welche aus hier aus dem Forum. mit Source-Code.

http://www.tvterminal.de/
ist die lowcost.

VGA an uC ist ne Marktlücke. Und das in Australia ???
1985 nem 2MHz 6809 hatten wir
GDC mit Color ScaledTextFonts und Grafik. 800*600.
Das Ding an nem AVRuc mit USB<->GDC für ProzessVisual wow.

von Holger (Gast)


Lesenswert?


von Holger (Gast)


Lesenswert?

@Thomas

Holger wrote:
> VGA an uC ist ne Marktlücke.

Nö, sowas gibt es als 2 Chip Lösung:
S1D13506. Auf der einen Seite hat man einen 16bit Datenbus, auf der
anderen Seite ein TV/VGA/LCD/TFT Anschluss. Man kann sogar LCD/TFT und
TV/VGA gleichzeitig betreiben. Die ältere Version (S1D13504 ohne
internen RAMDAC) bekommt man bei CSD für 15€. Dazu braucht man dann noch
ein 512kB-1MByte DRAM.

Was sind das für ICs auf den Micro VGA Boards ?
Immerhin werden bei 640x480 rund 300kByte RAM benötigt. Ein schneller uC
hat nicht soviel intern, vielleicht ein FPGA mit Blockram ? Oder doch
ein ASIC ?

von Thomas P. (pototschnig)


Lesenswert?

falls es noch jemanden interessiert:

> Ich feil schon lang an einer neuen Webseite, auf der es dann auch mal
> was zum Download geben soll ... Einen Account bei OpenCores hab ich mir
> schon zugelegt.

Das Projekt ist jetzt vollständig auf OpenCores:
http://www.opencores.org/projects.cgi/web/graphiti/overview

Mfg
Thomas Pototschnig

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.