Hallo zusammen, ich habe einige Fragen bezüglich der Verbindung von 5 CMOS Kameras "OVM6211" mit einem Cora z7-10. Nach meiner Suche konnte ich feststellen, dass die OVM6211-Kamera eine MIPI und eine SCCB Interface unterstützt. Die MIPI wäre von Vorteil, weil es eine schnelle Übertragung von einer großen Menge von Daten ermöglicht. Mein Problem ist, dass ich bis jetzt noch keine wirkliche Anleitung oder test-Aufbau finden konnte, weder in dem Datenblatt von der "OVM6211" noch von dem Cora z7-10, wie sich so eine MIPI verbindung aufbauen lässt. Ich würde mich über Vorschläge oder Vorgehensweise freuen Liebe Grüße
Das ist der "Vorteil" von MIPI CSI, daß der Kram effektiv undokumentiert ist. Die Spezifikation gibt es bei der MIPI, die rückt sie aber nur an Mitglieder 'raus, und Mitglied wird man nur als Hersteller von Smartphones & Co. mit entsprechendem Volumen ... Mit etwas Glück findet man im Netz eine nicht sehr legale Kopie irgendeiner Version des Standards.
Ist das Cora-Board fix? Warum willst Du das verwenden? Weswegen ich frage: Die üblichen FPGAs haben keinen Support für den D-PHY vom CSI-2. MIPI hat nämlich das Kunststück fertiggebracht, einen PHY zu designen, der sowohl single-ended LVCMOS als auch LVDS differentiell ist - nicht gleichzeitg, aber immerhin. Du wirst tricksen müssen, um das überhaupt mit Deiner Hardware hinzubekommen. MIt viel Erfahrung und Messtechnik im GHz-Bereich ist das möglich. Die Frage ist, ob das für DICH möglich ist. Es gibt bessere Plattformen für sowas: https://auvidea.eu/j106/ https://auvidea.eu/images/auvidea/products/tx1/J106/J106_6_PPI_Camera.JPG Wenn Du die Pinbelegung Deiner Kameramodule hast, ist der Hardwareteil keine Hürde mehr. fchk
Danke für die schnelle Antwort und die Hilfreichen Vorschläge. Ich benutze ein cora-Board weil es mir im Rahmen meiner Masterarbeit von der Uni zur Verfügung gestellt wurde mit der Begründung, dass es eine Ethernet-Verbindung hat für die schnelle Datenübertragung, ein ARM-Cortex, womit ich direkt Linux für die Steuerung dadrauf spielen kann und weil das ganze Multikamerasystem für ein Echtzeit Betriebssystem herstellt werden muss. Ich konnte bisher feststellen, dass es ein "MIPI CSI Controller von Xilinx" gibt, das als IP benutzt werden kann. Ich recherchiere im Moment, wie ich das mit den Kameras im Betrieb nehmen kann. Hättet ihr bezüglich einige vorschläge?
Dannick M. schrieb: > Ich benutze ein cora-Board weil es mir im Rahmen meiner Masterarbeit von > der Uni zur Verfügung gestellt wurde mit der Begründung, dass es eine > Ethernet-Verbindung hat für die schnelle Datenübertragung, ein > ARM-Cortex, womit ich direkt Linux für die Steuerung dadrauf spielen > kann und weil das ganze Multikamerasystem für ein Echtzeit > Betriebssystem herstellt werden muss. Was ist denn genau das Thema Deiner Masterarbeit? Ist die Realisierung der CSI2-Anbindung zentraler Bestandteil des Themas oder nur Mittel zum Zweck, um irgendetwas anderes zu machen? Die NVidia-Lösung, die ich Dir gezeigt habe, ist einerseits von der Rechenleistung des ARMs sehr viel höher (4 oder 6 Kerne mit 1.4 bis 2 GHz), und Du hast eine dicke GPU für die Bildverarbeitung und weitere Hardware fürs Debayering dabei. Debayering müsstest Du bei Deiner Lösung selber machen, und auch das ist nicht trivial, wenn es gut sein soll. Weißabgleich wird auch ein Thema sein, was Dich verfolgen wird. Wie gesagt, wenn Du schnell eine funktionierende Lösung haben willst, ist das genau der Weg. Dann kannst Du Dich auf Deine eigentliche Applikation konzentrieren, wenn das Dein Thema ist. > Ich konnte bisher feststellen, dass es ein "MIPI CSI Controller von > Xilinx" gibt, das als IP benutzt werden kann. Ja, das gibt es. Das kostet aber normalerweise Geld. Hast oder bekommst Du das? Bekommst Du auch zugang zu der entsprechenden Messtechnik und den MIPI-Standarddokumenten? Wenn nein, dann hast Du ein Problem. Und zwar ein ernstes. Außerdem braucht dieses Paket externe Hardware. Hast Du die? Machst Du die? Kennst Du Dich mit dem Routing von schnellen differentiellen Signalen im GHz-Bereich aus? Kannst Du entsprechende Leiterplatten fertigen lassen? Wenn nicht, dann hast Du ein weiteres, ernstes Problem. Einfach die Kameras mit ein paar Drähten an die Buchsenleisten anklemmen funktioniert nicht. Ist Dir das klar? Ist Dir auch klar, dass die normalen Buchsenleisten im Arduino-Stil eigentlich nicht für die Übertragung von schnellen differentiellen Signalen gedacht und/oder geeignet sind? Stichwort Signalintegrität. Im Klartext: Ich rate ausdrücklich von diesem Board ab. Notfalls such Dir ein anderes Thema für Deine Masterarbeit. fchk > > Ich recherchiere im Moment, wie ich das mit den Kameras im Betrieb > nehmen kann. > > Hättet ihr bezüglich einige vorschläge?
Dannick M. schrieb: > Ich konnte bisher feststellen, dass es ein "MIPI CSI Controller von > Xilinx" gibt, das als IP benutzt werden kann. > > Ich recherchiere im Moment, wie ich das mit den Kameras im Betrieb > nehmen kann. > > Hättet ihr bezüglich einige vorschläge? Ja, von fünf Kameras erst mal Abstand nehmen. Es ist mit zweien schon komplex genug, und die Chance sich dran zu verheizen recht hoch. Bemerkungen zu dieser Art didaktischen Ansätze von Seiten der Alma Mater lasse ich mal aussen vor, da ich nicht weiss, wieviel Vorarbeit da schon rein ging. Ansonsten wurde oben schon so einiges stichhaltiges dazu gesagt. Wenn du dich nicht mit den Eigenheiten der gut protektionierten MIPI-Technik auseinandersetzen willst, würde ich mir mal die CrossLink-Bausteine von Lattice ansehen. Mit geeigneten Tools lassen sich die auch simulieren. Ansonsten wird der Versuch, MIPI in den Xilinx-Käfer reinzukriegen, mit diesem Board schon elektrisch ein Reinfall, vom Core ganz abgesehen. Die Frage ist immer noch, was ist eigentlich das Lernziel (oder schon eine Machbarkeitsstudie?). Dein Sensor ist schon mal ein spezielles Teil, dass eine Uni von OV(!) die vollen Infos kriegt, würde mich schon erstaunen. Wenn Lernziel = Tracking als solches, nimmst du lieber einen klassischen Aptina Global-Shutter (MT9V034, o.ä.). und lässt MIPI erst mal aussen vor, da gibt es nämlich trotz "Standard" eine Menge Showstopper. Nächste Baustelle: Linux/Echtzeit/v4l2, ist man sich an euerm Lehrstuhl im Klaren, was da an Expertise notwendig ist, um das sauber zum Rödeln zu kriegen? Täglich grüsst das Murmeltier, und ich sag immer wieder: Keep it simple.
Hallo Leute, wieder vielen Dank erstmal für die Tipps. Nach langen Recherchen und durch eure Empfehlungen ist mir und mein Dozent klar geworden, dass MIPI CSI 2 doch eine harte Baustelle wäre, deswegen haben wir uns für ein OV7690 entschieden, was mit einer SCCB und DVP Schnittstelle implementiert wird. Mit diser Kamera konnte ich schon deutlich mehr Literaturen im Internet finden und durch das Datenblatt, was von OV zur Verfügung gestellt wurde konnte ich schon ein Plan haben wie die Verbindung zum XillixBoard erfolgen wird. Im Moment stelle ich erstmal meine PCB Design, wodrauf meine Kameras kommen werden und bald geht es los mit der Implementierung des Algorithmus für die Bilder Aufnahmen mit Vivado. Die Bildverarbeitung und die Simulation erfolgt in meinem Projekt mit Matlab . Also ich verwende wirklich den FPGA nur auf Grund seiner Geschwindigkeit. Das Thema für meine Masterarbeit ist: „Entwicklung einer Baugruppe zum Betrieb eines Multikamerasystems via Xilinx-PLD“ Für Vorschläge und Tipps bin ich immer sehr Dankbar :) Viele Grüße
Dannick M. schrieb: > Für Vorschläge und Tipps bin ich immer sehr Dankbar :) Ja aber ist eigentlich bei dem Thema Deine Aufgabe alles selbst zu recherchieren und nicht die des Forums. Du musst i.d.R. alle verwendeten Hilfsmittel und Hilfeleistenden in der Arbeit aufführen. Weil es geht ja scheinbar nicht um die Bildverarbeitung (sprich Algorithmen entwickeln o.ä.) sondern tatsächlich um die Hardware, Low-Level Kram und die Plattform ansich. Wenn das nur Mittel zum Zweck wäre, wärs unkritisch, so aber nicht.
Dannick M. schrieb: > Nach langen Recherchen und durch eure Empfehlungen ist mir und mein > Dozent klar geworden, dass MIPI CSI 2 doch eine harte Baustelle wäre, > deswegen haben wir uns für ein OV7690 entschieden, was mit einer SCCB > und DVP Schnittstelle implementiert wird. Sehr gut. Das ist machbar. > Im Moment stelle ich erstmal meine PCB Design, wodrauf meine Kameras > kommen werden und bald geht es los mit der Implementierung des > Algorithmus für die Bilder Aufnahmen mit Vivado. Mache es besser andersrum: Implementiere zuerst den VHDL/Verilog-Teil. Wenn das fertig ist und in der Simulation einwandfrei läuft, dann machst Du die Hardware. Oder zumindest solltest Du den Auftrag für die Leiterplatte so lange zurückhalten. Die FPGA-Pins sind nämlich nicht alle gleich. Da gibt es Pins, die speziell für Taktleitungen gedacht sind, andere haben spezielle Buffer oder so, dann gibt es meist verschiedene Bänke, die unterschiedliche IO-Standards und Versorgungsspannungen haben können, und zum Schluss kann auch noch das interne Routing eine Rolle spielen. Ob das alles so zusammen passt, weißt Du erst sicher, wenn Router und Placer ihre Arbeit getan haben. Denke dran, dass Deine Kameras keine 3.3V mögen. Würdest Du ein eigenes FPGA-Board machen, würdest Du die Kamerasignale alle in eine Bank legen und die mit 2.8V betreiben. Das kannst Du aber bei Deinem Board wahrscheinlich nicht. Daher brauchst Du hinreichend schnelle Levelshifter. Nimm keine bidirektionalen Levelshifter (außer bei I2C, da speziell dafür passende wie PCA9517 oder PCA9306). Empfehlung: 74AVC1T45/2T45/2T245/4T245/8T245. fchk
Frank K. schrieb: > Denke dran, dass Deine Kameras keine 3.3V mögen. Würdest Du ein eigenes > FPGA-Board machen, würdest Du die Kamerasignale alle in eine Bank legen > und die mit 2.8V betreiben. Das kannst Du aber bei Deinem Board Ich sehe da kein Problem, sind ja (zumindest was Video) angeht sensorseitige Ausgänge. Höchstens wenn noch ein Trigger vom FPGA an den Sensor muss... Und die SCCB aka i2c kann man im Paranoia-Mode noch mit mit zwei MOSFET-Levelshiftern abhaken. Ansonsten hätte ich dir das VIP von Lattice mit dem fertigen Stereo-Sensor-Board empfohlen. Das ist schon genug komplex und dank der schlecht dokumentierten IMX214-Sensoren nervig zu handhaben, aber du kannst dich da auf die reine FPGA-Architektur und BV fokussieren. Multi-Kamera unter Linux ist - je nach Anwendung - ein Fall für sich und führt bei gewissen Echtzeitanforderungen zu einigem Aufwand, da kommt auch immer die Frage, ob man das wirklich braucht, und nicht stattdessen pragmatisch <n> JPEG-Kameras einsetzt (USB oder Ethernet). Die Bilder müssen ja allenfalls auch noch irgendwo hin (wenn auch nur zu Debugzwecken).
Hi Leute, erstmal danke für die Tipps. Leider hat es auch nicht geklappt mit dem 0v7690 , weil Omnivision wohl nur in großen Mengen Bildsensoren verkauft und so viel davon brauche ich auch nicht für mein Projekt. Aus diesem Grund haben wir uns für ein AR0135 CMOS Bildsensor entschieden, was mit einer LVDS Schnittstelle angesteuert wird. Ich wollte mir den ArduCAM USB2 Kamera Shield kaufen, um schon was mit dem Cora z7-10 ansteuern zu können, aber ich bin mir da noch nicht so ganz sicher ob es Sinn macht. Ich suche noch nach einem LVDS Protokoll, was in VHDL/HLS beschrieben ist. Ich möchte erstmal die Software-Seite( VHDL/HLS Algorithmus für die Bildverarbeitung, Simulation) abschließen bevor ich mit der Hardware-Seite (Platine herstellen, Routing…) anfange, deswegen brauche einige Tipps von euch und zwar: - was soll ich mir am besten kaufen , um eine Kamera, die eine LVDS Schnittstelle unterstützt mit dem FPGA zu verbinden? - Durch meine Recherchen konnte ich den PYTHON 480 finden, der unterstützt eine LVDS Schnittstelle. Habt ihr schon damit gearbeitet?
Dannick M. schrieb: > Leider hat es auch nicht geklappt mit dem 0v7690 , weil Omnivision wohl > nur in großen Mengen Bildsensoren verkauft und so viel davon brauche ich > auch nicht für mein Projekt. Das war klar. > Aus diesem Grund haben wir uns für ein > AR0135 CMOS Bildsensor entschieden, was mit einer LVDS Schnittstelle > angesteuert wird. FALSCH! Es gibt den AR0135AT mit SLVS-Interface, und es gibt den AR0135CS, der zusätzlich ein normales Parallel CMOS Interface hat - genauso wie die OV7690. Wenn Du schlau bist, nimmst Du den AR0135CS. > ganz sicher ob es Sinn macht. Ich suche noch nach einem LVDS Protokoll, > was in VHDL/HLS beschrieben ist. LVDS ist kein Protokoll, sondern ein Standard für die elektrischen Eigenschaften einer Schnittstelle. Dein XiLinx-Board könnte prinzipiell LVDS, wenn Du mindestens eine Bank auf 2.5V Signalspannung umstellen könntest. Kannst Du aber nicht. Außerdem hast Du hier kein LVDS, sondern SLVS, und das ist nicht kompatibel und wird so ohne weiteres auch nicht von Deinem XILINX-FPGA unterstützt. Die Pintreiber können es nicht. fchk
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.