NXP MIPI-CSI Camera Set
MINISASTOCSI is a MIPI-CSI interface camera kit, based on OmniVision chipset OV5640 Detection, performance and essential commands are described here.
MINISASTOCSI is a MIPI-CSI interface camera connected to iMX8M Development Baseboard
Kernel detection
root@imx8mq-voipac:~# dmesg | grep ov56 [ 2.398433] ov5640_mipi 1-003c: No pin available [ 2.403090] ov5640_mipi 1-003c: No sensor pwdn pin available [ 2.408777] ov5640_mipi 1-003c: No sensor reset pin available [ 2.414571] ov5640_regulator_enable: cannot get io voltage error - err:-517 [ 2.539603] ov5640_mipi 2-003c: No pin available [ 2.549079] ov5640_mipi 2-003c: No sensor reset pin available [ 2.554887] ov5640_regulator_enable: cannot get io voltage error - err:-517 [ 2.999855] ov5640_mipi 1-003c: No pin available [ 3.005558] ov5640_mipi 1-003c: No sensor reset pin available [ 3.012003] ov5640_mipi 1-003c: 1-003c supply DVDD not found, using dummy regulator [ 3.019785] ov5640_mipi 1-003c: 1-003c supply AVDD not found, using dummy regulator [ 3.039290] ov5640_mipi 1-003c: Read reg error: reg=300a [ 3.044691] ov5640_mipi 1-003c: Camera is not found [ 3.051918] ov5640_mipi 2-003c: No pin available [ 3.062814] ov5640_mipi 2-003c: No sensor reset pin available [ 3.069209] ov5640_mipi 2-003c: 2-003c supply DVDD not found, using dummy regulator [ 3.076945] ov5640_mipi 2-003c: 2-003c supply AVDD not found, using dummy regulator [ 4.291092] mxc-mipi-csi2_yav 30a70000.mipi_csi: Registered sensor subdevice: ov5640_mipi 2-003c [ 4.304334] ov5640_mipi 2-003c: Camera is found
I2C detection
MINISASTOCSI camera chip is connected via I2C3. The most important address for correct detection is 0x3c.
root@imx8mq-voipac:~# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
MINISASTOCSI camera can be also connected to I2C2 interface by moving 0R resistors. However second camera connected on CSI-2 interface have same address 0x3c as MINISASTOCSI camera connected on CSI-1 interface.
GPIO control
GPIO pins are controlled by the camera driver and access to these pins is blocked. Power on signal is recognised as GPIO 198, LED GPIO has number 199.
LED located on camera module can be tested by temporarily disabling mipi kernel module and toggling corresponding GPIO pin:
root@imx6s-openrex:~# modprobe -r ov5647_camera_mipi root@imx6s-openrex:~# echo 199 > /sys/class/gpio/export root@imx6s-openrex:~# echo out > /sys/class/gpio/gpio199/direction root@imx6s-openrex:~# echo 1 > /sys/class/gpio/gpio199/value root@imx6s-openrex:~# echo 0 > /sys/class/gpio/gpio199/value root@imx6s-openrex:~# echo 199 > /sys/class/gpio/unexport root@imx6s-openrex:~# modprobe ov5647_camera_mipi
Modules listing
Kernel 4.1
root@imx6-openrex:~# lsmod Module Size Used by mxc_v4l2_capture 27624 2 ipu_bg_overlay_sdc 5385 1 mxc_v4l2_capture ipu_still 2331 1 mxc_v4l2_capture ipu_prp_enc 5903 1 mxc_v4l2_capture ipu_csi_enc 3904 1 mxc_v4l2_capture ipu_fg_overlay_sdc 6130 1 mxc_v4l2_capture ov5647_camera_mipi_int 30566 0 adv7610_video 6373 0 v4l2_int_device 2872 4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,mxc_v4l2_capture mxc_dcic 6528 0
Kernel 3.14
root@imx6s-openrex:~# lsmod Module Size Used by mxc_v4l2_capture 28532 1 ipu_bg_overlay_sdc 5401 1 mxc_v4l2_capture ipu_still 2528 1 mxc_v4l2_capture ipu_prp_enc 5943 1 mxc_v4l2_capture ipu_csi_enc 3863 1 mxc_v4l2_capture ipu_fg_overlay_sdc 6217 1 mxc_v4l2_capture ov5647_camera_mipi 30906 0 v4l2_int_device 2930 2 ov5647_camera_mipi,mxc_v4l2_capture mxc_dcic 6569 0 evbug 1875 0
Resolution setting
1280x960
echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1280x720
echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1920x1080
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode
640x480
echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1024x768 (default)
echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode
960x720
echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode
640x480 (narrow angle of view)
echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode
Gstreamer
Capture single JPEG picture
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode gst-launch-1.0 v4l2src device="/dev/video1" num-buffers=1 ! video/x-bayer,width=1920,height=1080,framerate=30/1 ! bayer2rgb ! videoconvert ! jpegenc ! filesink location=sample_1920_1080.jpeg
Video preview
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode gst-launch-1.0 v4l2src device="/dev/video1" ! video/x-bayer,width=1920,height=1080,framerate=30/1 ! queue ! bayer2rgb ! videoconvert ! fbdevsink
echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode gst-launch-1.0 v4l2src device="/dev/video1" ! video/x-bayer,width=640,height=480,framerate=15/1 ! bayer2rgb ! videoconvert ! fbdevsink