Forum: Mikrocontroller und Digitale Elektronik CSI - Kamera - Quelle?


von soso... (Gast)


Lesenswert?

Hallo,

ich sitze gerade am Redesign einer CPU-Platine. Ich möchte, wenn 
möglich, eine kostengünstige Alternative zu einer bisher verwendeten 
USB-Kamera schaffen.

Es geht hier um eine sehr einfache Kamera. So würde z.B. 1024x768 Pixel 
und Einzelbilder ausreichen, eine besondere Optik ist nicht nötig.

Mein erster Prototyp hat ein CSI-Interface für die Raspberry-PI Kamera 2 
(der i.MX6 hat es nativ). Die ist aber wenig brauchbar:
Problem1: Welcher Chip drinsteckt, ist russisch Roulette.
Problem2: Die Treiber mancher Chips sind Binärblobs für den falschen 
Kernel.
Problem3: Lieferbarkeit, Langzeitverfügbarkeit, Temperaturbereich.

Ich würde gerne das Interface so ändern, dass möglichst viele 
CSI-Kameras daran funktionieren können. Aber die MIPI-Spec ist nur gegen 
sehr viel Geld zu bekommen, und einen Distrbuter, der eine gute Auswahl 
an Kameras hat, finde ich nicht.

Daher die Fragen:
Kennt jemand einen Distributor, welcher CSI-Kameras im Programm hat?
Dort würde ich gerne nachfragen.
Gibt es einen gängigen Stecker und eine Standard-Steckerbelegung für 
Kameras?

Mit Aliexpress, Ebay oder Amazon kann ich leider nichts anfangen, der 
Einkauf würde mir die Ohren langziehen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hast Du mal bei https://www.framos.com/de/ angefragt?

von soso... (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Hast Du mal bei https://www.framos.com/de/ angefragt?

Danke, das sieht sinnvoll aus. Werde ich tun.

von Martin S. (strubi)


Lesenswert?

soso... schrieb:

>
> Ich würde gerne das Interface so ändern, dass möglichst viele
> CSI-Kameras daran funktionieren können. Aber die MIPI-Spec ist nur gegen
> sehr viel Geld zu bekommen, und einen Distrbuter, der eine gute Auswahl
> an Kameras hat, finde ich nicht.
>

Die MIPI-Spec für den Phy liegt doch inzwischen überall rum. Ich gehe 
mal eh davon aus, dass du das nicht elektrisch umsetzen willst, sondern 
treibertechnisch. Da würde ich mir erst mal ganz genau überlegen:
- Welcher Sensor?
- Gibt's den auch ohne MIPI und mit offenem Datenblatt?

Der Grund für die Binärblobs ist ja, dass die Register-Details meistens 
den NDAs unterliegen, dito für die Phy-Controller der üblichen 
Verdächtigen.
Wenn sich das dann noch mit der GPL beisst, hat allenfalls eure 
Rechtsabteilung mehr Spass als der Einkauf :)

> Daher die Fragen:
> Kennt jemand einen Distributor, welcher CSI-Kameras im Programm hat?
> Dort würde ich gerne nachfragen.
> Gibt es einen gängigen Stecker und eine Standard-Steckerbelegung für
> Kameras?

Nein, leider ist dem nicht so, jedes Handy hat zumindest was anderes 
drin.

>
> Mit Aliexpress, Ebay oder Amazon kann ich leider nichts anfangen, der
> Einkauf würde mir die Ohren langziehen.

Was ist mit Leopard Imaging? Die haben die gängigsten Onsemi und 
Sony-MIPI-Chips am Lager. Datenblätter musst du dir allerdings selber 
besorgen.

Meine Erfahrung mit dem MIPI-Zeug für Industrielles ist soweit, dass 
sehr schnell einen Showstopper vor der Nase hat, und nicht mehr 
weiterkommt, wenn man nicht gerade viel, viel Umsatz damit macht. Und 
Reverse-Engineering am MIPI-Phy ist aufwendig.

von Johannes S. (Gast)


Lesenswert?


von soso... (Gast)


Lesenswert?

Martin S. schrieb:
> Meine Erfahrung mit dem MIPI-Zeug für Industrielles ist soweit, dass
> sehr schnell einen Showstopper vor der Nase hat, und nicht mehr
> weiterkommt, wenn man nicht gerade viel, viel Umsatz damit macht.

Den Eindruck gewinne ich auch langsam.

Die Vorstellung war ja, dass wir ein fertiges Kameramodul zukaufen, und 
das an die CPU anschließen. Ich würde lediglich den Anschluss schaffen. 
Treiber und Modul muss man schon fertig kaufen können, eine 
Eigenentwicklung der Treiber und Kamera ist nicht realistisch.

Der Tipp mit Leopard Imaging und Basler sind gut, da werde ich mal 
durchschauen.

von S. R. (svenska)


Lesenswert?

soso... schrieb:
> Aber die MIPI-Spec ist nur gegen sehr viel Geld zu bekommen,
> und einen Distrbuter, der eine gute Auswahl an Kameras hat,
> finde ich nicht.

Die MIPI-Spec für CSI interessiert dich doch nicht. Du sagst dem SoC, 
wie der Sensor kommunizieren will und gut ist. Relevant ist die MIPI 
CCI-Spezifikation (das I2C-Interface zum Sensor) und das ist kostenlos 
bei MIPI verfügbar.

soso... schrieb:
> Treiber und Modul muss man schon fertig kaufen können, eine
> Eigenentwicklung der Treiber und Kamera ist nicht realistisch.

Es hängt vom SoC-Hersteller ab, wie dein Treiber aussehen muss. Den 
iMX.6 kenne ich nicht, aber eigentlich besteht so ein Treiber nur aus 
der Registerkonfiguration für jede gewünschte Auflösung. Dazu kommen 
noch ein paar Metadaten (Pixeltakt, Zeilenlänge und -zahl, Blanking), 
die man aber für die Registerkonfiguration auch braucht.

Je nach Datenblatt vom Sensor ist das relativ einfach machbar.
Wie das mit der Bildqualität aussieht, ist eine andere Frage.

von Strubi (Gast)


Lesenswert?

S. R. schrieb:
> Es hängt vom SoC-Hersteller ab, wie dein Treiber aussehen muss. Den
> iMX.6 kenne ich nicht, aber eigentlich besteht so ein Treiber nur aus
> der Registerkonfiguration für jede gewünschte Auflösung. Dazu kommen
> noch ein paar Metadaten (Pixeltakt, Zeilenlänge und -zahl, Blanking),
> die man aber für die Registerkonfiguration auch braucht.

So einfach ist das nur, wenn ein Default-Setting reicht, und keine 
grossen Spruenge wie Aenderungen der Aufloesung im laufenden Betrieb 
usw. dazukommen. Der Aufwand haelt sich dann soweit in Grenzen, dass man 
fuer seine Referenzplattform die Default-Settings aus dem Kernelcode 
raussucht und noch den passenden Sensor in die Finger kriegen muss.
Ist dem nicht mehr so, ist man sehr schnell am wochenlangen Debuggen, 
weil dir der SoC-Hersteller dir zum CSI-Port allenfalls nicht mal unter 
NDA die volle Geschichte erzaehlt.

Da muss auch praeziserweise zwischen den Treibern unterschieden werden:
- CSI-Port des SoC
- Register-Treiber (i2c-Wrapper) zum (MIPI-)Sensor

Lattice Semi hat sich diesbezueglich mit den Crosslink-Chips eine 
pfiffige Loesung einfallen lassen, damit beschraenken sich die Probleme 
nur auf weitestgehend simulierbare Hardware anstatt Software und 
fehlende SoC-Dokumentation.

von S. R. (svenska)


Lesenswert?

Strubi schrieb:
> So einfach ist das nur, wenn ein Default-Setting reicht, und keine
> grossen Spruenge wie Aenderungen der Aufloesung im laufenden Betrieb
> usw. dazukommen.

Meines Wissens gibt es keine Änderungen im laufenden Betrieb - wenn man 
die Auflösung ändern will, verlässt man den Streaming-Modus und schiebt 
eine komplett neue Konfiguration in den Sensor.

Strubi schrieb:
> Ist dem nicht mehr so, ist man sehr schnell am wochenlangen Debuggen,
> weil dir der SoC-Hersteller dir zum CSI-Port allenfalls nicht mal unter
> NDA die volle Geschichte erzaehlt.

Ich habe mit Qualcomm-Hardware zu tun. Nuff said. :-)

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.