MT9M111

From ArmadeusWiki
Revision as of 18:04, 21 January 2014 by JulienB (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

Connecting the XXX module to the APF27

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/IO power supply (2,5V) comes directly from J9 2,5V.

Adaptation board

  • (Preliminary) Schematics and layouts (for KiCAD) of an APF27 adaptation board are available [here].
File:Apf27dev with MT9M111 adapt pluggedin.jpg
APF27Dev with MT9M111 camera and LCD
File:MT9M111 adapt pluggedin.jpg
MT9M111 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) & SSI3_CLK (pin 31 of port C) as GPIOs (through GPIOlib):
echo 94 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio94/direction
echo 0 > /sys/class/gpio/gpio94/value; usleep 100000
echo 95 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio95/direction
echo 0 > /sys/class/gpio/gpio95/value; usleep 100000
  • 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 mt9m111
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 a MT9M11x chip ID 143a
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