Hallo liebe Community,
ich würde gerne das Bild eines portablen Geräts auf den PC übertragen.
Eignen sich dafür nur FGPAs mit SRAM, wo das Bild reinkopiert wird oder
gibt es noch andere Wege? Welche FGPAs würdet ihr mir empfehlen? Da ich
so etwas noch nie gemacht habe, wäre ich euch für jede Antwort dankbar.
Liebe Grüße
> ich würde gerne das Bild eines portablen Geräts auf den PC übertragen.
Ein Bild von einem Gerät könntest du z.B. über einen Fotoapparat, eine
Webcam oder einen Scanner auf den PC bringen... :-/
> ich würde gerne das Bild eines portablen Geräts auf den PC übertragen.
Also, nochmal von vorn:
was für ein Gerät?
welches Übertragungsprotokoll?
warum gerade ein FPGA?
Ich möchte ans RGB-Signal, mit dem FGPA skalieren und per USB auf PC
übertragen. Es handelt sich um ein Gerät wie ein Nintendo DS, der von
Haus aus keine Möglichkeit bietet das Bild auf einen PC zu übertragen.
Ich wollte mit meiner undeutlichen Frage nur meine Unwissenheit
verbergen, aber habe am Ende wohl viel zu viele wichtigen Informationen
vergessen dabeizuschreiben. Entschuldigung.
Wie waere es mit eine ganz normalen Video-Capture-Karte - die haben
ueblicherweise einen Eingang fuer Fernsehsignale. Selberbauen - vor
allem als blutiger Anfaenger! - ist ziemlich aussichtslos.
snes schrieb:
> Ich möchte ans RGB-Signal, mit dem FGPA skalieren und per USB auf PC> übertragen.
RGB nach PC, dafür gibt es die bereits erwähnten Video-Karten, nur...
> Es handelt sich um ein Gerät wie ein Nintendo DS, der von> Haus aus keine Möglichkeit bietet das Bild auf einen PC zu übertragen.
... hat ein solches Gerät nirgends eine RGB-Schnittstelle. Dort werden
die Daten ans Display digital übertragen. D.h. es müssten erst mal die
entsprechenden Signale abgegrifffen und danach noch
deserialisiert/decodiert werden. Wenn das passiert ist, muss dann wieder
ein PC-taugliches Format hergestellt und dorthin übertragen werden.
Am ehesten könnte ich mir vorstellen, dass ein FPGA diese Daten
decodiert und z.B. als FBAS- oder VGA-Signal an eine Capture-Karte
sendet. Sieh dir mal das an:
http://home.comcast.net/~olimar/DS/jumbotron/
Vielen Dank für eure Beiträge!
Ich merke schon, dass es ziemlich schwer für einen Anfänger ist, aber
ich brauche immer irgendetwas Praktisches was ich wirklich umsetzen
möchte, um mit etwas anzufangen.
Was heisst "deserialisieren"? Jumbotron(?) vom Link schreibt ja etwas
von RGB, DCLK1 und GSP1, die er abgreift. Handelt es sich bei RGB nicht
jeweils um 5-Bit, die für die Farbintensität der jeweiligen Farbe
übertragen werden? Wo ist der Haken bei einer direkten Übertragung,
wobei man dem PC am Ende die Arbeit überläßt, die ankommenden Daten in
ein Bild umzusetzen?
Da ich wirklich keine Ahnung von der Thematik habe und nur Mutmaßungen
mache, würde ich mich sehr freuen, wenn ihr mir Literaturvorschläge
machen könntet.
snes schrieb:
> Da ich wirklich keine Ahnung von der Thematik habe und nur Mutmaßungen> mache, würde ich mich sehr freuen, wenn ihr mir Literaturvorschläge> machen könntet.
Dann ein guter Rat: Lass es.
So ein Projekt ist Welten von deinem Wissen und Können entfernt.
Ich sehe leider jeden Tag Leute, die entweder sich selbst und ihr können
maßlos überschätzen oder sich irgend etwas einfach als viel einfacher
vorstellen als es in Wirklichkeit ist.
Michael,
ich bin hier im Forum, damit ich ein paar Tipps kriege, wie ich mir das
Wissen aneignen kann. Ich kenne dich nicht, aber nach deiner Aussage
konntest du das alles schon von Geburt an oder stirbst dumm.
Ich hätte vielleicht sagen sollen: "Es ist im Moment Welten von deinem
Wissen und können entfernt". Selbstverständlich kannst du alles dazu
notwendige lernen. Nur: Du musst dir zunächst einmal die absoluten
Grundlagen aneignen. In der Schule versucht auch niemand den Schülern
die Differentalrechnung beizubringen, wenn die Grundrechenarten noch
nicht mal richtig angewendet werden können. Alleine die Programmierung
eines FPGAs ist schon alles andere als trivial. Von den übrigen bei
diesem Projekt auftretenden Problemen einmal abgesehen. Klar ist das
alles lern- und machbar, aber es ist auf jeden Fall Lernstoff für Jahre.
Michael,
deine Aussagen haben zwar alle nichts mit meinen Fragen zu tun gehabt,
aber ich bin immer wieder erstaunt, dass manche Leute einen besser zu
kennen scheinen, als man sich selbst kennt.
Ich nehm's dir nicht übel, wenn du aufgrund von Erfahrungen oder deiner
eigenen Lerngeschwindigkeit voreilige Schlüsse über mich ziehst, aber
ich würde trotzdem nochmal die anderen User bitten mir Literaturtipps zu
geben.
Naja, dann fang doch einfach an. Hol dir ein FPGA Board und lass ein
paar LEDs leuchten. Wenn du das kannst meld dich wieder. Vielleicht
schreiben ja mal ein paar der Profis hier ob sie sowas könnten und wie
lange sie gebraucht haben um sich das Wissen anzueignen. Ich schätze mal
1-2 Hobby-Jahre wenn Elektronikgrundkenntnisse da sind. Wenn du dich
jeden Abend 2-3 Stunden hinsetzt vielleicht schneller aber die Zeit hat
man ja meist nicht.
> Hol dir ein FPGA Board und lass ein paar LEDs leuchten.
Das wäre schon mal ein guter Anfang, denn so ein Board wird in dem
GB-Projekt auch verwendet.
Und dann kaufst du dir gleich noch ein Buch zum Thema. Auf gut deutsch
wäre das Reichardt/Schwarz "VHDL-Synthese". Mit mehr englischer
Sprachgewalt liest sich auch Ashenden "Designers Guide to VHDL" flüssig.
Siehe auch Beitrag "VHDL-Buch f. Einsteiger"> Vielleicht schreiben ja mal ein paar der Profis hier ob sie sowas> könnten und wie lange sie gebraucht haben um sich das Wissen anzueignen.> Ich schätze mal 1-2 Hobby-Jahre wenn Elektronikgrundkenntnisse da sind.
Nicht ganz abwegig, weil ja auch noch immer wieder was anderes
dazwischenkommt.
Und es gilt, gleich mehrere Sachen parallel zu lernen: FPGAs und VHDL.
Ein FPGA kann mehr als VHDL beschreiben kann, und VHDL kann mehr
beschreiben, als in ein FPGA abgebildet werden kann. Und die
Schnittmenge muss man erst mal herausfinden.
@snes
auch ohne das Detailwissen über FPGA's hast du doch mit sicherheit ein
Konzept. Wie und Wo willst du die Daten abgreifen ? Etwa direkt am
Display ? Und was soll der I2C Bus ? Irgendwie hab ich dein Konzept
nicht verstanden.
Das Buch "VHDL-Synthese" ist mittlerweile so etwas wie ein Standart Werk
für Anfänger. Wenn du dich mit FPGA's beschäftigen willst, ist das
wirklich zu empfehlen.
Prinzipiell sollte das, was du vorhast möglich sein. Bei deinem
Wissensstand würde ich aber minimum 1 Jahr Zeit dafür einplanen. Ob es
dir die Zeit wert ist, musst du natürlich selbst wissen. Vielleicht
kommst du mit einem Anderen Konzept schneller ans Ziel.
>Was heisst "deserialisieren"?
Einen Seriellen Datenstrom auf einen Parallelen Datenstrom umwandeln.
>Handelt es sich bei RGB nicht jeweils um 5-Bit
RGB ist erst mal nur die Abkürzung für Rot Grün Blau und sagt nichts
über das verwendete Interface aus.
Hmm ob das Informatikstudium dann so viel bringt? Aus eigener Erfahrung
kann ich sagen, dass man DAS in dieser Form so nicht lernen wird. Klar,
nach dem Studium und 1-2 Jahren Praxiserfahrung in diesen
Hardwarebereichen wird man das Projekt wohl so langsam hinkriegen :) Nur
denke ich, dass es auch OHNE Studium in 1-2 Jahren machbar sein sollte.
snes: Erarbeite dir das Protokoll deiner Signalquelle. Dann überlegst du
dir, was deine Rahmenbedingungen für die Übertragung an den PC sind,
d.h. was willst du eigentlich. Dann suchst du dir eine Schnittstelle
aus, die:
a) die geforderten Rahmenbedingungen erfüllt
b) eventuell ausnutzbare Ähnlichkeiten zur Signalquelle hat
c) für die man gut entwickeln kann
Wenn du DAS geschafft hast, liegt vor dir ein Plan, den man
stückchenweise umsetzen kann. Dazu brauchst du dann hier auch keine
Hilfe mehr vermutlich, ansonsten frag :)
> Hmm ob das Informatikstudium dann so viel bringt? Aus eigener Erfahrung> kann ich sagen, dass man DAS in dieser Form so nicht lernen wird.
Für die Hardwarebeschreibung hilft ein Informatikstudium nicht weiter,
genausogut könntest du dafür BWL studieren. Wenn du schöne Bilanzen oder
Java- (Perl, C#, C++, Pascal, wasauchimmer...) Programme schreiben
kannst, bist du in etwa genau gleich weit weg von der Denkweise, die
du für eine erfolgreiche VHDL-Beschreibung brauchst. Nur weil die
Syntaxelemente von C in etwa so ähnlich wie welche von VHDL aussehen,
tun sie noch lange nicht das selbe. Eine simple for-Schleife in VHDL
wiederholt z.B. die Erzeugung von Hardwarekomponenten.
Und aufpassen: VHDL ist nicht gleich FPGA!!!
Du mußt für eine problemlose Verwendung eines FPGAs das Datenblatt
dieses Bausteins lesen und verstehen können. Und da steht einiges drin.
Sehr vieles davon wird nicht mit VHDL, sondern mit der Toolchain gemacht
(z.B. die Pinzuordnung als das einfachste der einfachen Beispiele).
>Für die Hardwarebeschreibung hilft ein Informatikstudium nicht weiter
RICHTIG! ;-) Es ist in den meisten Fällen sogar eher hinderlich, da die
"Denke" eine ganz andere ist.
Auch mein Tipp an dieser Stelle: Besorg dir ein günstiges FPGA-Board
oder noch besser für den Anfang ein CPLD-Board und fang mal ganz klein
damit an indem du z.B. eine LED blinken lässt, oder danach vielleicht
mal einen PWM bastelst, mit dem du die Helligkeit einer LED zwischen
zwei Werten umschalten kannst.
Es gibt auch jede Menge online Literatur und Tutorials.. einfach mal ein
bisschen googlen
lkmiller,
habe mir auf deinen Rat hin das Buch "VHDL-Synthese" gekauft. Bin zwar
erst beim 3. Kapitel, aber ich denke, dass das Buch sehr gut fürs
Eigenstudium geeignet ist. Ich plane aber nebenbei ein paar Kurse in
diesem Bereich zu belegen (und in ein paar Monaten werde ich ja sehen
wie lange ich brauche).
Michael,
möchte die Daten direkt vom Board abgreifen - 18 pins parallel. Der
Nintendo DS verarbeitet für jede Farbe des RGB-Spektrums jedoch nur 5
und einen 6. bei Rot für "Alpha", also insgesammt 16-bit(A RRRRR GGGGG
BBBBB). Habe zur Veranschaulichung die Stellen für die Farbe Rot
markiert und als Bild angehängt. Zum Glück ist alles gut beschriftet.
"VHDL-Synthese" scheint wirklich gut und trotz aller Theorie
praxisorientiert zu sein. Ich kann damit denke ich eine Menge anfangen.
Der Multiplexer am Anfang ist mir zumindest schonmal klar und auch die
Syntax scheint sehr C-orientiert zu sein. "Designers Guide to VHDL" habe
ich noch nicht bestellt, da ich erstmal "VHDL-Synthese" durchlesen
möchte. Bis dahin werdet ihr sicher im Forum wieder von mir hören.
>möchte die Daten direkt vom Board abgreifen - 18 pins parallel. Der>Nintendo DS verarbeitet für jede Farbe des RGB-Spektrums jedoch nur 5>und einen 6. bei Rot für "Alpha", also insgesammt 16-bit
und was ist mit den Pinnen 17 und 18 ?
was meinst du mit Alpha ?
Ich hoffe du weisst wenigstens wie das Datensignal aufgebaut ist.
Mit den Farbwerten alleine ist es ja auch nicht getan. Irgendwoher
brauchst du ja auch einen Takt.
Auf einer Internetseite steht auch noch, dass man LDR/LDG/LDB 0-5 für
die Farbewerte abgreifen muss.
http://draculaojisan.blog8.fc2.com/blog-entry-440.html
Da dort jedoch nicht genau beschrieben wird, wie sich aus DCLK2、LS2 und
GSP2 genau vsync/hsync ergibt und ich nicht plane irgendwelchen Code aus
dem Internet für mein Vorhaben zu benutzen, werde ich mich wohl an die
Informationen der Jumbotronseite halten. (GSP1 wird als Vsync-Signal
abgegriffen und Hsync lässt sich durchs Zählen von DCLK1 bestimmen.)
Dadurch sollte man mit weniger Mühe ein geeignets CSync-Signal erzeugen
können.
Mit "Alpha" meinte ich einen binären Alphakanal, der bestimmt, ob eine
Farbe transparent ist. So benutzt man z.B. bei der NDS-Programmierung
15-Bits für die Farben und 1-Bit als Alhakanal. Ich habe jedoch nicht
daran gedacht, dass der Nintendo DS in der Lage ist 262.144 Farben
(2^18) auszugeben, wodurch sich dann natürlich alle Pins erklären.