Difference between revisions of "OV9655"
From ArmadeusWiki
(→Adaptation board) |
|||
(14 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
OV9655 is an Omnivision 1,3 Mpixels sensor that can be found in the following commercial camera modules: | OV9655 is an Omnivision 1,3 Mpixels sensor that can be found in the following commercial camera modules: | ||
* [http://radiospares-fr.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0550439 OV09655-FSL] | * [http://radiospares-fr.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0550439 OV09655-FSL] | ||
* do you know others ? | * do you know others ? | ||
+ | * 2014-02: Maybe at http://www.uctronics.com/ov9655-fpc24-13mp-hd-cmos-camera-module-p-1443.html, but not tested! | ||
− | ==Connecting the | + | ==Connecting the OV09655-FSL module to the APF27== |
− | * Datasheet of the | + | * Datasheet of the OV9655 module are available [http://radiospares-fr.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0550439 here]. They only detail the hardware interface. |
− | * Omnivision sensors are easily available but when it comes to obtain the datasheet of the sensor it becomes harder. Even if you find some datasheet, the informations inside must be read with caution: some are erronous. So [http://agate.msoe.edu/gf/project/wiicam/scmsvn/?action=browse&path=/trunk/docs/camera/ here is one of those]. | + | * Omnivision sensors are easily available but when it comes to obtain the datasheet of the sensor it becomes harder. Even if you find some datasheet, the informations inside must be read with caution: some are erronous. So [http://agate.msoe.edu/gf/project/wiicam/scmsvn/?action=browse&path=/trunk/docs/camera/ here is one of those]. '''For example RESET signal should be used the reverse way as indicated in the datasheets of the module.''' |
* This modules needs this Molex connector to be plugged in: http://radiospares-fr.rs-online.com/web/5426700.html. | * This modules needs this Molex connector to be plugged in: http://radiospares-fr.rs-online.com/web/5426700.html. | ||
Line 16: | Line 15: | ||
===Adaptation board=== | ===Adaptation board=== | ||
− | * (Preliminary) Schematics and layouts (Eagle) of an APF27 adaptation board are available | + | * (Preliminary) Schematics and layouts (Eagle) of an APF27 adaptation board are available [http://www.trabucayre.com/ov9655.tgz here]. |
{|border=0 summary="" | {|border=0 summary="" | ||
|--- | |--- | ||
− | [[Image: | + | [[Image:OV9655_adapt_plugged_on_APF27Dev.jpg|thumb|320px|APF27Dev with OV9655 and LCD]] |
|| | || | ||
− | [[Image: | + | [[Image:OV9655_adapt_I2C.jpg|thumb|320px|OV9655_adapt montage (I2C cable: Blue on J8 pin 8 and Yellow on J8 pin 10)]] |
|--- | |--- | ||
|} | |} | ||
+ | |||
+ | * BOM: | ||
+ | |||
+ | {| class="wikitable" align="center" style="text-align:center; width:50%;" border="1" | ||
+ | |- | ||
+ | ! bgcolor=lightgray scope=col | Components | ||
+ | ! bgcolor=lightgray scope=col | Quantity | ||
+ | ! bgcolor=lightgray scope=col | Ref. | ||
+ | |- | ||
+ | | Capacitor 100nF (package 805) CMS | ||
+ | | 4 | ||
+ | | | ||
+ | |- | ||
+ | | MCP1700 | ||
+ | | 1 | ||
+ | | [http://fr.farnell.com/microchip/mcp1700t-1802e-tt/regulateur-ldo-1-8v-1700-sot-23/dp/1296591RL MCP1700T-1802E/TT] | ||
+ | |- | ||
+ | | pin header 1x2 male 2.54mm | ||
+ | | 3 | ||
+ | | | ||
+ | |- | ||
+ | | Molex connector (for j9) | ||
+ | | 1 | ||
+ | | [http://radiospares-fr.rs-online.com/web/p/products/5426700/ 52437-2472] | ||
+ | |- | ||
+ | | pin header 2x10 female | ||
+ | | 1 | ||
+ | | [http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=fr&site=FR&KeyWords=S5524-ND&x=0&y=0 PPTC102LJBN-RC] | ||
+ | |} | ||
+ | |||
+ | ==Usage== | ||
+ | * Bring module out of powerdown by driving SSI3_TX (pin 30 of port C) as GPIO (through [[GPIOlib]]): | ||
+ | <pre class="apf"> | ||
+ | # echo 94 > /sys/class/gpio/export | ||
+ | # echo out > /sys/class/gpio/gpio94/direction | ||
+ | # echo 0 > /sys/class/gpio/gpio94/value; usleep 100000 | ||
+ | </pre> | ||
+ | |||
+ | * Reset it by driving SSI3_CLK (pin 31 of port C) as GPIO (through [[GPIOlib]]): | ||
+ | <pre class="apf"> | ||
+ | # echo 95 > /sys/class/gpio/export | ||
+ | # echo out > /sys/class/gpio/gpio95/direction | ||
+ | # echo 1 > /sys/class/gpio/gpio95/value; usleep 100000 | ||
+ | # echo 0 > /sys/class/gpio/gpio95/value; usleep 100000; echo 1 > /sys/class/gpio/gpio95/value | ||
+ | </pre> | ||
+ | |||
+ | * Load corresponding drivers: | ||
+ | <pre class="apf"> | ||
+ | # modprobe mx27_camera | ||
+ | |||
+ | Linux video capture interface: v2.00 | ||
+ | mx27-camera mx27-camera.0: initialising | ||
+ | mx27-camera mx27-camera.0: Camera clock frequency: 33250006 | ||
+ | mx27-camera mx27-camera.0: Using EMMA | ||
+ | |||
+ | # modprobe ov96xx | ||
+ | |||
+ | OmniVision ov96xx sensor driver, at your service | ||
+ | camera 0-0: Camera driver attached to camera 0 | ||
+ | mx27-camera mx27-camera.0: mclk_get_divisor not implemented. Running at max speed | ||
+ | camera 0-0: Detected an ov9657 sensor | ||
+ | camera 0-0: Camera driver detached from camera 0 | ||
+ | </pre> | ||
+ | |||
+ | ===Test=== | ||
+ | * You can then use Armadeus "capture" demo tool to get images from the camera. | ||
+ | * First time you will have to set the camera module registers correctly (not done by the driver yet) by using a custom script ov9655_regs.sh available [ here]. Here is how to proceed: | ||
+ | <pre class="apf"> | ||
+ | # capture & usleep 400000 ; ./ov9655_regs.sh | ||
+ | </pre> | ||
==Links== | ==Links== | ||
+ | * [http://www.spinics.net/lists/linux-media/msg04285.html Somebody already tried to push an OV9655 SOC driver mainline] | ||
* [http://www.ovt.com/products/app_table.php?id=4 Omnivision 9xxx sensors serie webpage] | * [http://www.ovt.com/products/app_table.php?id=4 Omnivision 9xxx sensors serie webpage] | ||
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/ APF27Dev schematics] | * [http://www.armadeus.com/_downloads/apf27Dev/hardware/ APF27Dev schematics] | ||
[[Category:Vision]] | [[Category:Vision]] |
Latest revision as of 12:35, 7 February 2014
OV9655 is an Omnivision 1,3 Mpixels sensor that can be found in the following commercial camera modules:
- OV09655-FSL
- do you know others ?
- 2014-02: Maybe at http://www.uctronics.com/ov9655-fpc24-13mp-hd-cmos-camera-module-p-1443.html, but not tested!
Contents
Connecting the OV09655-FSL module to the APF27
- Datasheet of the OV9655 module are available here. They only detail the hardware interface.
- Omnivision sensors are easily available but when it comes to obtain the datasheet of the sensor it becomes harder. Even if you find some datasheet, the informations inside must be read with caution: some are erronous. So here is one of those. For example RESET signal should be used the reverse way as indicated in the datasheets of the module.
- This modules needs this Molex connector to be plugged in: http://radiospares-fr.rs-online.com/web/5426700.html.
Description
- CSI port (8 bits data + 4 bits control signals) is used to transmit images. (10 bits mode not usable on i.MX). These signals are available on the APF27Dev J9 connector (2,5V logic).
- I2C bus is used to configure the sensor. This bus is available on the APF27Dev J8 connector.
- Sensor core power supply (1,8V) is derived from 2,8V of J9.
Adaptation board
- (Preliminary) Schematics and layouts (Eagle) of an APF27 adaptation board are available here.
- BOM:
Components | Quantity | Ref. |
---|---|---|
Capacitor 100nF (package 805) CMS | 4 | |
MCP1700 | 1 | MCP1700T-1802E/TT |
pin header 1x2 male 2.54mm | 3 | |
Molex connector (for j9) | 1 | 52437-2472 |
pin header 2x10 female | 1 | PPTC102LJBN-RC |
Usage
- Bring module out of powerdown by driving SSI3_TX (pin 30 of port C) as GPIO (through GPIOlib):
# echo 94 > /sys/class/gpio/export # echo out > /sys/class/gpio/gpio94/direction # echo 0 > /sys/class/gpio/gpio94/value; usleep 100000
- Reset it by driving SSI3_CLK (pin 31 of port C) as GPIO (through GPIOlib):
# echo 95 > /sys/class/gpio/export # echo out > /sys/class/gpio/gpio95/direction # echo 1 > /sys/class/gpio/gpio95/value; usleep 100000 # echo 0 > /sys/class/gpio/gpio95/value; usleep 100000; echo 1 > /sys/class/gpio/gpio95/value
- Load corresponding drivers:
# modprobe mx27_camera Linux video capture interface: v2.00 mx27-camera mx27-camera.0: initialising mx27-camera mx27-camera.0: Camera clock frequency: 33250006 mx27-camera mx27-camera.0: Using EMMA # modprobe ov96xx OmniVision ov96xx sensor driver, at your service camera 0-0: Camera driver attached to camera 0 mx27-camera mx27-camera.0: mclk_get_divisor not implemented. Running at max speed camera 0-0: Detected an ov9657 sensor camera 0-0: Camera driver detached from camera 0
Test
- You can then use Armadeus "capture" demo tool to get images from the camera.
- First time you will have to set the camera module registers correctly (not done by the driver yet) by using a custom script ov9655_regs.sh available [ here]. Here is how to proceed:
# capture & usleep 400000 ; ./ov9655_regs.sh