Bilder vom uC zu einem TFT Display übretragen

OP #862162
Lesenswert?

Moin.

Habe mal ne allgemeine Frage ob die Überlegung von mir realisierbar ist.

ICh möchte Bilder dieauf einem uC hinterlegt sind zu einem TFT Display 
mit Composite Cinch Stecker übertragen.
Jetzt habe ich mir folgendes überlegt:

Die Bilddaten werden vom uC in einen SDRAM gelesen quasi als zwiscehn 
speicher.
Dann wird mit einem FPGA vin Xilinx jeweils eine Zeile ´vom SDRAM 
gelesen und an einen RAM DAC abgelegt. Dies passiert so lange, bis das 
komplette Bild im RAM DAC vorliegt. Aus dem RAM DAC werden dann solange 
Zeile für Zeile über einen PAL ENcoder ausgelesen und auf einem Dispaly 
dargestellt.

Ist das so in etwa ne logische Variante.

Der RAM DAC ist dann quasi der Zwiscehn Speicher, das FPGA als 
Zeilenpuffer (weil gier nicht mehr platz ist) und der RAM DAC soll quasi 
als LCD Speicher fubgieren.
#862174
Lesenswert?

Lo Me wrote:
> FPGA ist schon vorhanden. Hast du denn nen Tip für einen LCD Controller?
> Muss man damit viel Prgrammieren?

Viel ist relativ. Man muss halt ein paar Register beschreiben. Vom 
gesamten Aufwand ist es aber bestimmt weniger als wenn du noch die 
Funktionen in den FPGA einbauen musst.
An LCD Controllern gibt es einiges wie z.B. die Epson S1D13506 oder 
S1D131513.

> ICh kann einen RAM DAC schon irgendwie als Speicher sehen, ist das
> richtig???

Nein, das ist ein DAC mit Farbtabelle. Du musst also Pixel für Pixel 
übertragen, die dann als Index für die Tabelle dienen. Die so gelesenen 
Werte werden dann ausgegeben.

Wenn der FPGA sowiso vorhanden ist, dann könntest du den RAMDAC + PAL 
Encoder auch durch ein IC ersetzen wie z.B. einen ADV7170. Der macht aus 
Digitalsignalen direkt RGB + FBAS.
OP #862187
Lesenswert?

Die von dir genannte kombination ADV7170/71 hatte ich auch schon im 
Sinn. Ich hatte nur igrendiwe den Gedanken dass ein RAM DAC halt auch 
ein Speicher ist, wegen RAM. War wohl falsch.

Ich habe aber noch ne kleinigkeit die mich etwas beschäftigt.
Ich speichere die Bilddaten vom uC im SDRAM Register ab. Dann liest der 
FPGA eine Zeile und buffert sie quasi. Diese Zeile wird dann über bsp. 
ADV7170 an das Display gesedet und dort dargestellt. Danach liest das 
FPGA die 2. Zeile (usw) ein und sendet sie wieder an den IC usw.
Wie ist das denn wenn nun in den SRAM ein neue Bilddaten hinterlegt 
werden und die vorrigen quasi überschrieben werden? Dann überschneiden 
sich ja irgendwann die alten Zeilen mit den Zeilen von den neune 
Bilddaten!? ODer muss ich den SDRAm quasi in zwei einzelne Register 
aufteilen. EIn Part liest, der andere schreibt????
#862189
Lesenswert?

Lo Me wrote:

> Wie ist das denn wenn nun in den SRAM ein neue Bilddaten hinterlegt
> werden und die vorrigen quasi überschrieben werden? Dann überschneiden
> sich ja irgendwann die alten Zeilen mit den Zeilen von den neune
> Bilddaten!?

Ja. Das ergibt dann teilweise unschöne Schräge Linien die sich durch das 
Bild ziehen, wenn sich an dem Bildinhalt viel ändert. Sowas konnte man 
früher auch am PC sehen, mittlerweile gibt es Lösungen dafür:

Man schreibt entweder nur im Bereich des VSync (also zwischen 2 
Bildern), oder man verwendet 2 getrennte Bilder: Eines wird ausgegeben, 
das andere wird geschrieben. Wenn das Bild fertig geschrieben ist, 
werden beide vertauscht.
Persönliche Seite #862194
Lesenswert?

>  Ich hatte nur igrendiwe den Gedanken dass ein RAM DAC halt auch
> ein Speicher ist, wegen RAM. War wohl falsch.

Das RAM im RAMDAC bezieht sich auf die darin enthaltene Farbtabelle 
(auch Farbpalette genannt), die bei 8 Bit Farbtiefe verwendet werden 
kann.
Hier werden die an den DAC angelegten Werte aus dieser Tabelle bestimmt 
und im Graphikspeicher für jedes Pixel ein Indexwert in diese Tabelle 
abgelegt. Durch Palettenanimation, also durch Veränderung der 
Farbtabelle im RAMDAC, können manche Graphikeffekte erreicht werden, wie 
beispielsweise der blaue Laufbalken im Startbildschirm von Windows XP.
OP #862196
Lesenswert?

OK. Könnte irgendwie unschön aussehen. Aber die Bidler werden sich nur 
in bestimmten Details ändern. Vielleihct sieht es dann ja nicht so 
streifig aus.
Wie meinst du das mit dem Vertauschen?
Ich Teile den Speicher einfach in zwei Bereiche auf. Einer zum lesen der 
andere zum schreiben. Könnte das das Problem mit dem überschneiden auch 
lösen, oder wie meintest du das genau?
#862200
Lesenswert?

Lo Me wrote:
> OK. Könnte irgendwie unschön aussehen. Aber die Bidler werden sich nur
> in bestimmten Details ändern. Vielleihct sieht es dann ja nicht so
> streifig aus.

Wenn es z.B. Videodaten sind, dann kann es eventuell etwas flimmern wenn 
die Kamera bestimmte Bewegungen macht o.ä.
Ich schreibe und lese bei einem LCD Monitor für eine Überwachungskamera 
auch gleichzeitig. Außer bei bestimmten Längsbewegungen im Bildinhalt 
fällt das aber garnicht auf.

> Wie meinst du das mit dem Vertauschen?
> Ich Teile den Speicher einfach in zwei Bereiche auf. Einer zum lesen der
> andere zum schreiben. Könnte das das Problem mit dem überschneiden auch
> lösen, oder wie meintest du das genau?

Ja, genauso. Wenn ein Bild fertig geschrieben ist, werden beide Bereich 
getauscht. Also das neu geschriebene Bild wird angezeigt und das zuvor 
angezeigte Bild wird nun überschrieben.
OP #862209
Lesenswert?

OK. Dann habe ich es hoffentlich endlich.
Ich bekomme einfach nur Bilder (evt. BMP) die sich alle rechtähnlich 
sind. Nur einige Detail ändern sich. ASlo nichts kompliziertes.
Um nochmal kurz auf den Speicher zurückzukommen.
ICh lege im voraus schon fest welche "Pixel-Daten" an welche Adresse 
geschickt werden??? Erstelle quasi ne Datentabelle wo steht welche 
bilddaten wohin abgespeichert werden!?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren