Forum: Mikrocontroller und Digitale Elektronik Bilder vom uC zu einem TFT Display übretragen


von Lo M. (lome)


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.

von Benedikt K. (benedikt)


Lesenswert?

Sollte so in etwa funktionieren.
Falls du an die Hardware nicht gebunden bist oder der FPGA sowiso schon 
vorhanden ist, würde ich vielleicht einen fertigen LCD Controller 
verwenden. Das würde den Aufwand etwas reduzieren.

von Lo M. (lome)


Lesenswert?

FPGA ist schon vorhanden. Hast du denn nen Tip für einen LCD Controller?
Muss man damit viel Prgrammieren?
ICh kann einen RAM DAC schon irgendwie als Speicher sehen, ist das 
richtig???

von Benedikt K. (benedikt)


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.

von Lo M. (lome)


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????

von Benedikt K. (benedikt)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Lo M. (lome)


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?

von Benedikt K. (benedikt)


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.

von Lo M. (lome)


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!?

von Benedikt K. (benedikt)


Lesenswert?

Ja. Man legt üblicherweiße die Startadresse für das Bild fest und erhöht 
dann die Adresse linear Zeile für Zeile.

von Lo M. (lome)


Lesenswert?

OK. Dann ist soweit alles klar. Vielen Dank für die super Hilfe!!!

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.