Difference between revisions of "OV9653"

From ArmadeusWiki
Jump to: navigation, search
m (Connecting the 22T1 module to the APF27)
(Usage)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
OV9653 is an Omnivision 1,3 Mpixels sensor that can be found in the following camera modules:
+
OV9653 is an Omnivision 1,3 Mpixels sensor that can be found in the following commercial camera modules:
* in the [http://www.microjet.com.tw/english/product_cmos.htm 22T1 module] from Microjet (Taiwaneese company). This module seems to be no more available for sale :-(. If you were a VirtualCogs (R.I.P.) owner, you may have one.
+
* in the [http://www.microjet.com.tw/english/product_cmos.htm 22T1 module] from Microjet (Taiwaneese company). This module seems to be no more available for sale :-(. If you were a VirtualCogs (R.I.P.) owner, you may probably have one.
 
* [http://www.shchl.com/English/products&services-ccm.html C139] of SHCHL (Shangai). Seems to be the same module than 22T1 (to confirm). This module seems still available [http://www.electronics123.com/s.nl/it.A/id.2698/.f?sc=8&category=241 here (US)]
 
* [http://www.shchl.com/English/products&services-ccm.html C139] of SHCHL (Shangai). Seems to be the same module than 22T1 (to confirm). This module seems still available [http://www.electronics123.com/s.nl/it.A/id.2698/.f?sc=8&category=241 here (US)]
  
 
==Connecting the 22T1 module to the APF27==
 
==Connecting the 22T1 module to the APF27==
* Datasheet of the 22T1 module are available [http://dl.free.fr/q8vFfUmXj here]. They only detail the hardware interface.
+
* Datasheet of the 22T1 module are available [http://www.warf.com/download/150_5644_1.pdf 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].
 
* This modules needs a Kyocera BTB 24 pins 0.4mm pitch connector (10-5802-024-000-829) to be plugged in. No idea where to find it easily.
 
* This modules needs a Kyocera BTB 24 pins 0.4mm pitch connector (10-5802-024-000-829) to be plugged in. No idea where to find it easily.
Line 14: Line 14:
  
 
===Adaptation board===
 
===Adaptation board===
* Schematics and layouts (for [http://kicad.sourceforge.net/wiki/index.php/Main_Page KiCAD]) of an APF27 adaptation board will be available [http://dl.free.fr/opT0rvWWZ here] soon.
+
* (Preliminary) Schematics and layouts (for [http://kicad.sourceforge.net/wiki/index.php/Main_Page KiCAD]) of an APF27 adaptation board are available [http://dl.free.fr/opT0rvWWZ here].
 
[[Image:22T1_adapt.png|center|thumb|600px|]]
 
[[Image:22T1_adapt.png|center|thumb|600px|]]
 +
 +
{|border=0 summary=""
 +
|---
 +
[[Image:camera_system_with_22T1_adapt_pluggedin.jpg|thumb|320px|Camera system with 22T1 and LCD]]
 +
||
 +
[[Image:22T1_adapt_pluggedin.jpg|thumb|320px|22T1 montage (I2C cable: Green on J8 pin 8 and Blue on J8 pin 10)]]
 +
|---
 +
|}
 +
 +
==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 0 > /sys/class/gpio/gpio95/value; usleep 100000
 +
echo 1 > /sys/class/gpio/gpio95/value; usleep 100000
 +
echo 0 > /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
 +
# rmmod ov96xx
 +
# 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 ov9652 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 ''ov9653_regs.sh'' available [here]. Here is how to proceed:
 +
<pre class="apf">
 +
# capture & usleep 400000 ; ./ov9653_regs.sh
 +
</pre>
  
 
==Links==
 
==Links==
 
* [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]
 +
 +
[[Category:Vision]]

Latest revision as of 14:59, 21 January 2014

OV9653 is an Omnivision 1,3 Mpixels sensor that can be found in the following commercial camera modules:

  • in the 22T1 module from Microjet (Taiwaneese company). This module seems to be no more available for sale :-(. If you were a VirtualCogs (R.I.P.) owner, you may probably have one.
  • C139 of SHCHL (Shangai). Seems to be the same module than 22T1 (to confirm). This module seems still available here (US)

Connecting the 22T1 module to the APF27

  • Datasheet of the 22T1 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.
  • This modules needs a Kyocera BTB 24 pins 0.4mm pitch connector (10-5802-024-000-829) to be plugged in. No idea where to find it easily.

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 (for KiCAD) of an APF27 adaptation board are available here.
22T1 adapt.png
Camera system with 22T1 and LCD
22T1 montage (I2C cable: Green on J8 pin 8 and Blue on J8 pin 10)

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 0 > /sys/class/gpio/gpio95/value; usleep 100000
echo 1 > /sys/class/gpio/gpio95/value; usleep 100000
echo 0 > /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
# rmmod ov96xx
# 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 ov9652 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 ov9653_regs.sh available [here]. Here is how to proceed:
# capture & usleep 400000 ; ./ov9653_regs.sh

Links