Forum: Mikrocontroller und Digitale Elektronik kompaktes MIPI CSI2 Board


von Bernd (Gast)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach einer kompakten Lösung für zwei MIPI Kameras.

Ziel soll es sein, ein möglichst generisches Design zu haben, womit man 
verschiedenste Sensoren ansprechen kann. Also die Sensoren via I2C z.B. 
mit einem Registerdump File parametrisieren und dann die Bilder abholen.

Ich habe schon verschiedenste Lösungen ergoogelt, aber vielleicht gibt 
es hier noch einen guten Tipp?

Hier eine Idee mit Snapdragon, aber dazu bräuchte ich viel 
Softwarearbeit und ein Basisboard.
https://www.intrinsyc.com/computing-platforms/open-q-835-usom/
intrinsyc bietet zwar sowas an, aber als ITX leider etwas zu groß.

Klassische Frame Grabber können das auch, aber auch die sind oft zu 
groß.

Hat jemand noch eine Idee?

Vielen Dank!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kämest Du mit einer Schnittstelle aus, reichte ein beliebiger Raspberry 
Pi. Der hat nämlich eine CSI-Schnittstelle.

Sofern es bei Deiner Anforderung nicht um stereoskopische Aufnahmen 
geht, sollten möglicherweise zwei Pis für zwei Kameras auch verwendbar 
sein.


Ansonsten könnte die Firma Framos für derartige Anforderungen ein 
Ansprechpartner sein, die sind auf Kamera-/Sensor-Dinge spezialisiert.

von Strubi (Gast)


Lesenswert?

Moin,

das Lattice Semiconductor VIP/EVDK hat von Haus aus zwei IMX214 inkl. 
Crosslink on Board. Allerdings eine andere Schiene: Statt fertigem SoC 
sitzt ein FPGA dahinter. Wenn dein Fokus aber generell auf den Kameras 
und weniger auf Integration/Linux liegt, kommst du mit den div. 
Referenzdesigns sicher auf nen grünen Zweig. Mit einem Haken: die 
Sensoren sind mager dokumentiert.

von Bernd (Gast)


Lesenswert?

Eigentlich ist ja ein Handy nix anderes... die haben ja oft mindestens 
zwei Kameras.

So ein HDK wäre toll:
https://www.cnx-software.com/2019/03/28/qualcomm-snapdragon-855-hdk/

Aber da mache ich mir echt Gedanken, wie ich da die GPIOs usw. 
ansprechen soll, geschweige denn dann die Bilddaten in Echtzeit über USB 
oder Ethernet wegbekommen kann, um sie auf einem PC/Laptop anzuzeigen/zu 
verarbeiten.

Da fehlt mir leider die Erfahrung, wie man mit so einem Android OS 
umgehen kann und welche Möglichkeiten/Freiheiten/Dokumentation man hat.

Der PI ist für derartige Sachen zu schwach auf der Brust (denke ich?).
So 6Gb/s sind schon notwendig pro Kamera...

Framos schaue ich mir mal an!
Vielen Dank!

von Bernd (Gast)


Lesenswert?

Hallo Strubi,

die FPGA Lösungen habe ich auch schon gesehen, dort mache ich mir aber 
noch weit mehr Gedanken, was die Software angeht.

Diese wird ja ein Großteil des Paketes ausmachen, so dass man die 
Sensoren konfigurieren kann und die Bilder in worst case auch als RAW 
verarbeiten kann.

Da erhoffe ich mir, bei den Consumer Plattformen mehr schon fertige 
Lösungen finden zu können, als bei jder selbstgestrickten FPGA Lösung.

Vielen Dank dennoch - ich schaue es mir nochmal an, vielleicht habe ich 
ja eine Erleuchtung.

von Strubi (Gast)


Lesenswert?

Hi Bernd,

mit den div. Consumer-SoCs ist die Sache nach meiner bisherigen 
Erfahrung teils viel komplexer als mit den FPGA-Ansätzen, sobald es in 
die Details geht. Das liegt v.a. an den völlig unterschiedlich 
implementierten V4L2-layern (video for linux) und Sensorentreibern und 
besagter Nicht-Doku. Wenn du ein passendes System findest und es für 
deine Zwecke 'gehackt' kriegst, kommst du ev. schnell zu einer Lösung, 
aber ob du die Hardware dann auch gebaut bekommst, ist ein anderes Thema 
(Raspberry-Pi-Ansätze sind da unbrauchbar). Würde da IMX6 oder Nvidia 
Tegra anpeilen. Bei den meisten sonst angepriesenen Mobile SoCs ist man 
mehr mit Reverse engineering als mit Entwickeln dran..
Für Industrielösungen: Crosslink und gut dokumentierte/unterstützte 
Application-prozessoren machen mehr Spass.

Fürs VIP gibt es sonst div. Streaming-Lösungen von Stereo-Video mit 
draufladbaren konfigurierbaren Encoder-SoCs (YUV video, mjpeg, ...)

von S. R. (svenska)


Lesenswert?

Bernd schrieb:
> Eigentlich ist ja ein Handy nix anderes...
> die haben ja oft mindestens zwei Kameras.

Wäre das für dich vielleicht eine Lösung?

> So ein HDK wäre toll:
> https://www.cnx-software.com/2019/03/28/qualcomm-snapdragon-855-hdk/

Wenn du nicht gerade große Lust hast, dich lange und tiefgreifend mit 
Qualcomm-Chipsätzen und deren Kamerasoftware zu befassen, dann rate ich 
dir davon stark ab. Du wirst daran sehr lange Spaß haben.

Ich weiß, dass ich welchen hatte und auch die nächste Zeit noch haben 
werde.

> Aber da mache ich mir echt Gedanken, wie ich da die GPIOs usw.
> ansprechen soll, geschweige denn dann die Bilddaten in Echtzeit
> über USB oder Ethernet wegbekommen kann, um sie auf einem PC/Laptop
> anzuzeigen/zu verarbeiten.

Die GPIOs werden im Devicetree eingetragen und sind von Linux aus ganz 
normal ansprechbar.

Das Kamerasystem ist enorm komplex. Erwarte nicht, dass irgendwo ein 
roher Datenstrom mit deinen Bilddaten rausfällt: Die Bandbreite ist 
enorm und die Verarbeitung findet in Hardware statt. Wenn die Pipeline 
passend eingerichtet ist, schaltest du vorne den Sensor an und hinten 
fällt MPEG, JPEG, YUV oder RAW raus, mit verschiedenen Algorithmen nach 
deinen Wünschen gefiltert.

Die Performance von so einem Chipsatz, wenn ordentlich gekühlt, ist 
durchaus mit einem PC/Laptop vergleichbar. Du kannst also die 
Verarbeitung eigentlich gleich da lassen. Mit dem Hexagon bekommst du 
auch einen DSP dazu, den du programmieren könntest, wenn du die 
Android-Plattform unter deiner Kontrolle hast.

> Da fehlt mir leider die Erfahrung, wie man mit so einem Android OS
> umgehen kann und welche Möglichkeiten/Freiheiten/Dokumentation man hat.

Schau dir die Camera2-API an und spiele damit ein bisschen rum. Die API 
ist ebenfalls komplex, aber einigermaßen flexibel. Du hast relativ wenig 
Einfluss auf den Sensor selbst (zumindest bei den Herstellerlösungen).

Referenz: 
https://developer.android.com/reference/android/hardware/camera2/package-summary

> Der PI ist für derartige Sachen zu schwach auf der Brust (denke ich?).
> So 6Gb/s sind schon notwendig pro Kamera...

Welche Auflösung bei welcher Bildrate hättest du denn gern?
Und wie willst du die Daten überhaupt aus dem System rauskriegen?

Mein Gefühl sagt, dass der SDM855 problemlos 4K2K bei 240 fps 
hinbekommt, vermutlich sogar mehr. Ob der dahinter liegende Flash das 
auch kann... eher fraglich. Unkomprimiert definitiv nicht.

von Frank K. (fchk)


Lesenswert?

Nimm nVidia Jetson. Diese Prozessormodule haben 6 CSI-2, und durch die 
GPU und CUDA wirst Du genug Rechenleistung haben.

https://auvidea.eu/images/auvidea/products/tx1/J106/J106_6_PPI_Camera.JPG

https://auvidea.eu/images/auvidea/products/tx1/J106/360_camera_panel.jpg

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
Noch kein Account? Hier anmelden.