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.
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.
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???
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.
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????
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.
> 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.
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?
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.
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!?
Ja. Man legt üblicherweiße die Startadresse für das Bild fest und erhöht dann die Adresse linear Zeile für Zeile.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.