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!
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
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
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 :)
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
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.
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.
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
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)
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.
@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
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.
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.
@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
@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.
@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 ?
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