A20 linux(dragonboard)同时使用Parallel CSI Camera及UVC

原创 2015年11月19日 12:10:43

【目标】
在A20上同时对parallel同时使用parallel csi摄像头及usb摄像头进行preview。
【选型】
硬件选用主控为A20的CubieBoard2开发板。
软件SDK选用全志A20 Kitkat SDK中的lichee包。
【过程】
1、在linux-3.4的menuconfig中将uvc驱动选项打开,USB_VIDEO_CLAS设置成m,USB_VIDEO_CLASS_INPUT_EVDEV设置成y。
Device Drivers —>
<*> Multimedia support —>
[*] Video capture adapters —>
[*] V4L USB devices —>
USB Video Class (UVC)
[*] UVC input events device support
这里写图片描述

2、在dragonboard中加入usb camera的testcase。全志dragonboard环境使用的是linux+DirectFb,可以参考既有的csi camera testcase代码进行添加。大致分为两步:
第一步,在df_view.c的csi camera test代码后加入启动usb camera test的代码

x2 = 0;
height2 = layer_config.height>>1;
y2 = layer_config.height>>1;
if(mic_activated)
{
    width2  = (layer_config.width >> 1)-(layer_config.width>>MIC_POWER_BAR_WITH_SHIFT);
}
else
{
    width2 = (layer_config.width >> 1);
}
if (usb_camera_test_init(x2,y2,width2,height2))
{
    return -1;
}

第二步,增加usbcameratest.c,usbcameratest.c包含了usb camera的初始化、打开、设置参数等核心方法,上文中的usb_camera_test_init函数实现也在这个源码文件里面。可根据以下流程编写usbcameratest.c,
这里写图片描述
这里,有几点需要注意,一是usb camera的数据格式是YUYV,所以在set format的时候,pixel format要设置成YUYV;二是usb camera的图像大小是640x480。

3、从CubieBoard2原理图可知,上面只能使用csi1接parallel csi camera,所以test_config.fex需要作以下修改

[camera]
activated   = 1
module_count= 6
module1_path= "/system/vendor/modules/videobuf-core.ko"
module2_path= "/system/vendor/modules/videobuf-dma-contig.ko"
module3_path= "/system/vendor/modules/camera.ko"
module4_path= "/system/vendor/modules/gc0308.ko"
module5_path= "/system/vendor/modules/sunxi_csi1.ko"
module6_path= "/system/vendor/modules/uvcvideo.ko"
dev_cnt     = 1
csi_cnt     = 1
fps         = 30

4、编译打包烧录

cd lichee
./build.sh -p sun7i_dragonboard
./build.sh pack

【结果】
下图LCD右上角为parallel csi camera preview,左下角为usb camera preview,两个摄像头均已打开并持续采集数据绘制以屏幕上。
这里写图片描述

【遗留问题及解决方案】
由于usb camera的数据格式是YUYV,LCD中usb camera preview区域的格式是YUV420,所以无法正确显示来自于usb camera的画面数据。解决此问题可考虑数据格式转换,将YUYV转成YUV420再绘制以屏幕上,实现转换可使用A20 G2D,效率更高。

版权声明:本文为博主原创文章,未经博主允许不得转载。

ARM平台基于嵌入式Linux使用MIPI CSI-2接口

By Toradex 秦海 随着工业产品智能化发展,摄像头作为图像采集在嵌入式设备中需求越来越多,目前常见的摄像头接口有专用的Parallel Camera接口和MIPI CSI接口,以及USB/E...
  • toradexsh
  • toradexsh
  • 2016年05月26日 15:16
  • 5237

A20csi接口的摄像头模块的移植

android系统源码里配置的是ov4560双摄像头,主要涉及到的文件有,sys_config.fex文件、camera.cfg文件、media_profiles.xml文件,其中sys_config...
  • nihao_2014
  • nihao_2014
  • 2015年12月14日 19:26
  • 2098

基于全志a31s的camrea驱动调试(gc2145型号)

运行命令make ARCH = menuconfig进入device drivers--->Multimedia support--->配置如下     把GC2145的驱动文件gc2145.c放在l...
  • wangjianzhongfj
  • wangjianzhongfj
  • 2015年01月20日 22:05
  • 7187

全志 A20 camera移植--转载(惜爷)

1全志 A20 camera移植 在Android4.0升级后,突然发现大量平台对Camera的支持均非常不好。要么Camera使用不稳定,要么各类ioctl设置不能使用,更有甚者,连Camer...
  • allen19881119
  • allen19881119
  • 2016年06月24日 15:17
  • 529

USB OTG学习笔记

标签: session多媒体处理linux活动timer工作 2011-04-19 23:13 6097人阅读 评论(0) 收藏 举报 http://b...
  • mirkerson
  • mirkerson
  • 2016年02月26日 12:04
  • 3764

全志H3-android 4.4下进行USB Camera的配置和使用总结

项目当中要使用USB接口作为系统的图像输入口,即使用USB camera进行开发。  首先要介绍的是UVC的概念,uvc即USB video class也即USB video device clas...
  • zhaoqi2617
  • zhaoqi2617
  • 2017年08月01日 17:05
  • 719

RK3288 uvc摄像头调试

曾经在全志平台上调试过UVC摄像头,当时调试过程比较流畅,丝毫没有碰上异常情况,这一次在RK上碰到较大的困难,下面介绍一下我的调试过程。 首先,不用说当然在内核配置中配置上UVC摄像头,重新编译内...
  • zmnqazqaz
  • zmnqazqaz
  • 2015年10月31日 20:30
  • 5879

全志A20芯片CSI摄像头驱动开发

  • 2014年10月23日 19:15
  • 297KB
  • 下载

全志A20编译&调试笔记

以前工作笔记,当时记录在word里面,最近整理上传分享。砖头轻拍
  • w359593616
  • w359593616
  • 2015年12月17日 17:59
  • 9433

Android/Linux 全志平台摄像头sensor调试记录(一)

1 .摄像头模组型号 OV2710 + XC7021( ISP)   +H5,电压需求 ISP:          OV2710:senor 的电压AVDD 和 DOVDD 电压为3.3V,DVDD ...
  • lbaihao
  • lbaihao
  • 2016年11月16日 22:56
  • 2209
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:A20 linux(dragonboard)同时使用Parallel CSI Camera及UVC
举报原因:
原因补充:

(最多只允许输入30个字)