Bei Pollin gibt es gerade für 1,95€ ein Kameramodul CC137-0500-00B3, der
Chip darauf soll ein NT8001MBG sein. Ich habe gleich mal eines
mitbestellt.
Wie zu erwarten sind im Netz keine Infos zu finden, das einzige
interresante ist http://www.wer-weiss-was.de/theme59/article6120594.html
der mir sagt daß dieses Modul anscheinend schon mal im Angebot war.
Besonders interresant ist der 24-polige Anschluß, ich hoffe daß da nicht
so viel Ansteuerung und Signalverarbeitung drin ist und ich den Sensor
eventuell mit selbstgebasteltem Timing ansteuern könnte.
Moin,
leider scheinen die Pollin-Basteleien immer im Nirvana zu versacken,
weil das Reverse-Engineering der Module furchtbar aufwendig ist.
Habe mal ein Kameramodul aus einem Sony P990 in Betrieb genommen, schon
die passenden Stecker zu kriegen war eine Odyssee.
Habe davon noch ein paar rumliegen (d.h. Module plus Stecker), falls es
Dich interessiert, schreib mir ne PM. Ab und an gibts die Module auch in
der elektronischen Bucht, und bei Alibaba kriegt man sie u.U. noch in
Massen.
Grüsse,
- Strubi
Mit der neuen Bestellung ist das Kameramodul nun wirklich angekommen.
Erst einmal die Aufschriften:
Flachbandleitung Oberseite vom Steckende
CC137-0500-00B3
Flachbandleitung Rückseite
P20081 060911
Kameraseite (Spule für Linsenbewegung?)
SHICOH ADM
665A
IC in BGA
NOVATEK
NT8001MBG
0610A
D24YT1
Kleines IC mit 6 Anschlüssen, könnte Treiber für Fokusspule sein
E06
Wenn ich es geschafft habe das Anschlußende im 0,5mm-Raster auf eine
Adapterplatine zu löten kann ich auch mal ein paar elektrische Tests
machen.
Naja, es ist ein 24-pin camera module.
Google "camera module 24-pin"
Das klingt nach "MIPI CSI-2 Interface".
zb. Omnivision OV7670MFSL .
oder
http://www.alibaba.com/product-gs/1444440805/jpeg_camera_module_ov2640_24_pin.html
Hat jemand schonmal das Ding in ein Interface gesteckt und was gesehen?
Würd mich nämlich auch interessieren. (Bin nicht so wirklich der
Camera-modul experte)
Gruss
Hat mittlerweile jemand die Kamera am Laufen?
Die von Tom K. gefundene Anschlussbelegung scheint zu passen: Die
Stromaufnahme ändert sich wenn man einen Takt an XCLK anlegt oder wenn
man RESET# toggelt. Auch über I2C ist die Kamera unter der Adresse 0xC2
ansprechbar, aber an den Ausgängen tut sich leider nichts.
Die Kamera benötigt wohl leider eine Init.
Ich habe die Kamera nun zum Laufen bekommen.
Die Kamera ist nicht schlecht: Einstellbare Auflösung bis 1600x1200,
verschiedene Farbformate und Autofokus.
Die Kamera braucht zwar relativ viel Licht um gute Bilder zu machen,
ansonsten ist an der Bildqualität aber nichts aussetzen, vor allem bei
dem Preis.
Klingt sehr interessant, danke! Was ist noch an weiteren Informationen
aufzutreiben, was hast Du herausgefunden? Wie macht sie sich
insbesondere bei ganz kurzen Distanzen, quasi Makrobereich? Kann man den
Fokus auch manuell steuern? Dank für Info im Voraus! Kolja
Da ich mir nun ein paar von den Teilen gesichert habe, kann ich jetzt
alle Infos verraten. Aufzutreiben an Informationen ist leider garnichts,
aber das ist bei Novatech ICs normal.
Zuerst habe ich mit der Diodentestfunktion alle Pins gemessen. Damit
hatte ich schonmal alle Vcc und GND Pins und auch alle Daten und
sonstige Leitungen, gruppiert nach der Flussspannung. Dies Gruppierung
passte zu der auch bei anderen Kameras üblichen 24 Pin Belegung, also
habe ich diese Belegung einfach mal übernommen und IOVcc=AVcc2,8V und
CoreVcc=1,8V verwendet. Keine Ahnung ob es korrekt ist, aber es geht.
Das IC reagiert damit schonmal auf Reset\ und Powerdown\, aber leider
tut sich auf den restlichen Leitungen nichts.
Daher habe ic es mit brute-force versucht:
Zuerst den I2C Bus abgesucht bis ein Ack bei 0xC2 kam.
Danach in allen Registern jeweils ein Bit geändert bis der Pixeltakt
anging:
0x42 in Register 0x60 schreiben.
Von da an war es einfach, da die Kamera auch ohne weitere Einstellungen
bereits ein brauchbares Bild mit YUV ausgibt.
Der Pixeltakt ist allerdings nicht durchgehend, sondern besteht aus
kurzen Bursts mit Pausen dazwischen, also ist die Auflösung vermutlich
reduziert.
Daher habe ich das ganze wiederholt und bei Register 0x61 hatte ich auf
einmal einen anderen Takt. Das scheint das Ausgabeformat einzustellen:
Bits [7:4] stellen die Auflösung ein. Von etwa 96x64 bis 1600x1200 ist
alles dabei. Da ich mich nur für die hohen Auflösungen interessiere,
habe ich nicht alle ausgetestet: 0x7 ist 1600x1200, 0x4 ist 640x480, 0x5
ist 800x600.
Bits [3:0] stellen das Ausgabeformat ein. 0xA ist YUV, 0xB scheint YVU
zu sein, 0x5 könnte BT656 mit embedded sync sein. Es gibt noch ein paar
weitere Modi die ich nicht näher untersucht habe. YUV444 und RGB565
scheinen auch dabei zu sein.
0x0A in Register 0x63 startet den Autofokus. Man sieht dann schön wie
sich die Spannung an der Spule schrittweise ändert und anschließend zum
besten Fokuspunkt zurückkehrt. Die Kamera kann sich von unter 5cm bis
unendlich scharfstellen.
Register 0x62 schaltet das Bild auf Schwarzweiß oder invertiert es. Da
solche Spielereien aber eher uninteressant sind, habe ich das nicht
näher untersucht.
Alle interessanten Register scheinen also im Bereich 0x6x zu liegen. Da
kann man also nach belieben Spielen und schauen was passiert. Dass die
Kamera kaputt geht ist unwahrscheinlich und wenn doch, es sind nur
0,75€.
Wie gesagt bin ich mir bei den Spannungen unsicher, aber 1,8V Core
Spannung könnte plausibel sein bei einem IC von 2006. Ich will auch mal
3,3V IO Spannung ausprobieren.
Auch beim Master Takt musste ich raten. Ich habe 16MHz verwendet. Der
erzeugte Pixeltakt ist etwas höher mit einem krummen Faktor gegenüber
dem Masterclock (etwa 1,8x). Da bei 1600x1200 die Framerate nur 7fps
beträgt, kann man vermutlich mit dem Takt noch etwas hoch gehen
(25-30MHz, so dass man bei 50MHz Pixeltakt landet).
An einen AVR kann man die Kamera eher nicht anschließen, aber am DCMI
von einem STM32 oder an einem FPGA läuft diese problemlos.
Die Kamera scheint relativ intelligent zu sein, da diese den Autofokus
komplett selbständig erledigt und auch alle nötigen Änderungen beim
Umstellen der Auflösung macht. Ebenfalls scheint diese auch automatisch
verschiedene Modi bei der Belichtung zu ändern (Reduzierung der
Framerate bis auf 4fps, stärkeren Rauschfilter bei wenig Licht).
Bei niedrigeren Auflösungen ist die Framerate höher als bei hohen
Auflösungen. Ich habe mit ausreichend Licht knapp über 30fps bei 640x480
gemessen.
Die Bildqualität ist ok, aber die Kamera braucht etwas Licht um
rauschfreie Bilder zu machen. Die Kamera ist auch schon 10 Jahre alt,
daher nicht mit modernen Kameras vergleichbar. Damals war diese aber
vermutlich nicht billig, Autofokus sieht man bei solchen Kameras eher
selten wegen der sowieso schon recht hohen Schärfentiefe aufgrund der
kleinen Linse.
Viel Spaß beim Spielen mit der Kamera!
Hi,
> passte zu der auch bei anderen Kameras üblichen 24 Pin Belegung
Damit meinst Du die auch hier im Thread (im 4. Beitrag) abgebildete
Belegung, oder?
Davon ausgehend (nach nur einer kurzen Prüfung, dass tatsächlich AGND
und DGND im Modul verbunden scheinen) habe ich AGND(2)/DGND(15),
AVDD(4)=DOVDD(11)=2,8V, DVDD(10)=1,8V angeschlossen, und (jeweils mit
DOVDD=2,8V)
- 16 MHz Takt an XCLK(13)
- sowie 1,5k Pullups an SIO_D(3) und SIO_C(5)
- PWDN(8)=0
- und RESETN(6)=1
Umschalten von RESETN wirkt sich deutlich auf die Leistungsaufnahme aus.
Aaaber ich kriege keinerlei Reaktion an SIO_D, kein ACK. Nicht mal ein
Hauch davon ist wahrzunehmen.
I2C vom Prozessor (HPS in Cyclone V FPGA) geht jeweils so auf die Pins
(Output von dort kommt invertiert als Enable):
1
cam0_sio_c <= '0' when hps_i2c2_scl_out='1' else 'Z';
Irgendwas blödes überseh' ich wohl gerade... fällt irgendjemand was
auf?
Grüsse,
Kolja
Weitere brauchbare Features konnte ich der Kamera leider nicht mehr
entlocken. Das IC scheint auch recht selten zu sein, google findet
praktisch nichts zum NT8001.
Ein paar Infos die vielleicht helfen die Kamera in Betrieb zu nehmen:
Der Eingangstakt sollte bei <20MHz liegen. Bei 27MHz reagiert die Kamera
überhaupt nicht, das ist also deutlich zu hoch. Mit 12-18MHz läuft die
Kamera bei mir problemlos, für 27MHz Pixeltakt werden etwa 14.7MHz
benötigt. Ein niedrigerer Pixeltakt macht bei der Auflösung wenig Sinn,
daher ist ein Systemtakt im Bereich um 15MHz vermutlich korrekt (es sei
denn man kann über einen mir unbekannten Befehl den internen PLL Faktor
erhöhen).
Nach einem Reset Impuls benötigt die Kamera eine Weile bis sie bereit
ist: Ich verwende 0,75s bevor ich die Init über I2C rüberschiebe, damit
läuft die Kamera bei mir stabil.