Xilinx社区
首页 > 技术专栏 > 骁龙820A 车载原型系统上调试ov5647记录(1)
骁龙820A 车载原型系统上调试ov5647记录(1)
来源:技术专家 时间:2017-06-23

  开发车载信息娱乐系统和产品的厂商面临着诸多挑战,下一代车载信息娱乐系统正以前所未有的创新速度变革驾乘体验。骁龙820A是专用的车用处理器,在连接性、图形显示、拍摄、电池续航能力及功率等方面给人以极致的体验。Qualcomm的系统化解决方案,结合了领先技术、规模和经验,支持先进车载信息娱乐系统的开发。

  本文重点介绍骁龙820A上CPU和DSP在图像处理上的优势。汽车级骁龙820A处信息娱乐理器是一大亮点,它集成前沿的CPU、GPU 和DSP,帮助减少任务负载量、增强性能、降低功耗,并提升用户体验。

  笔者所在公司正好有一个利用820A开发项目,主要是对820A上支持raw data数据的ov5647摄像头进行开发调试。由于ov5647摄像头使用较少,我们在开发过程中遇到了一些问题,这里小编把整个过程尽可能多的都记录下来,供大家参考。

  笔者准备分成一个系列来写,这篇主要介绍ov5647的驱动移植。

  对OV5647摄像头RAW数据的支持

  DSP的主要功能是处理大量的音视频图像数据,摄像头无疑是这些图像数据的最大来源。笔者项目中采用ov5647摄像头模组具备五百万像素,并支持RAW格式拍摄的1/4寸的感光元件。具有极佳的弱光感光效果,并支持以每秒 60 帧录制 720p视频,或者支持以每秒 30帧拍摄1080p的视频。

  ov5647的结构

  下图是ov5647模组,该模组使用2组Mipi线,通过3.7V和GPIO1控制模组上三个电压转换芯片,对DVDD,AVDD和IOVDD供电,同时控制了模组上的外置晶振,从而初始化ov5647。

  按照接口把ov5647的模组连接到820A处理器上,主要完成如下开发调试:

  配置DTS

  找到该Android版本的dtsi文件,添加ov5647的具体配置信息,在里面添加如下信息:

  camera_vdddo_2v8: fixedregulator@1 {

  compatible = "regulator-fixed";

  regulator-name = "camera_vdddo";

  regulator-min-microvolt = <2800000>;

  regulator-max-microvolt = <2800000>;

  regulator-always-on;

  };

  &cci{

  ...

  remote-endpoint = <&ov5647_ep>;

  remote-endpoint = <&ov5647_2_ep>;

  ...

  }

  &blsp_i2c6{

  ...

  ov5647_rear_camera:camera_rear@76 {

  compatible = "ovti,ov5647";

  reg = <0x76>;

  enable-gpios = <&msmgpio 34 0>;

  reset-gpios = <&msmgpio 35 1>;

  pinctrl-names = "default";

  pinctrl-0 = <&camera_rear_default>;

  clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;

  clock-names = "xclk";

  clock-frequency = <23880000>;

  vdddo-supply = <&camera_vdddo_1v8>;

  vdda-supply = <&camera_vdda_2v8>;

  vddd-supply = <&camera_vddd_1v5>;

  port {

  ov5647_ep: endpoint {

  clock-lanes = <1>;

  data-lanes = <0 2>;

  remote-endpoint = <&csiphy0_ep>;

  };

  };

  };

  ...

  }

  按照系统要求增加和调试驱动

  驱动文件放在kernel/drivers/media/i2c,参考ov5640摄像头驱动,增加初始化电压和GPIO1控制的代码,修改寄存器配置初始化参数,寄存器初始值根据datasheet设置.主要修改一下几个结构体:

  reg_value ov5647_global_init_setting ,

  reg_value ov5647_setting_vga,

  reg_value ov5647_setting_sxga,

  reg_value ov5647_setting_720p,

  reg_value ov5647_setting_1080p,

  ov5647_setting_full

  小编以reg_value ov5647_global_init_setting为例

  static struct reg_value ov5647_global_init_setting[] = {

  { 0x0100, 0x00 },

  { 0x0103, 0x01 },

  // {REG_DLY,0x05},

  { 0x3035, 0x11 },

  { 0x3036, 0x69 },

  { 0x303c, 0x11 },

  { 0x3821, 0x07 },

  { 0x3820, 0x41 },

  { 0x370c, 0x0f },

  { 0x3612, 0x59 },

  { 0x3618, 0x00 },

  { 0x5000, 0x06 },

  { 0x5002, 0x40 },

  { 0x5003, 0x08 },

  { 0x5a00, 0x08 },

  { 0x3000, 0xff },

  { 0x3001, 0xff },

  { 0x3002, 0xff },

  { 0x301d, 0xf0 },

  { 0x3a18, 0x00 },

  ...

  { 0x3000, 0x00 },

  { 0x3001, 0x00 },

  { 0x3002, 0x00 },

  { 0x3017, 0xe0 },

  { 0x301c, 0xfc },

  { 0x3636, 0x06 },

  { 0x3016, 0x08 },

  { 0x3827, 0xec },

  { 0x3018, 0x44 },

  { 0x3035, 0x21 },

  { 0x3106, 0xf5 },

  { 0x3034, 0x1a },

  { 0x301c, 0xf8 }

  };

  配置config使得系统编译对应驱动

  打开camera驱动以及挂在的i2c的宏,第一个是驱动相关的。

  CONFIG_VIDEO_OV5647=y

  CONFIG_CRYPTO_CRC32_ARM64=y

  CONFIG_GPIO_PCA953X_IRQ=y

  第二个是平台相关的配置,最后一个是具体硬件设计上GPIO的扩展芯片驱动,通过PCA953X芯片的GPIO扩展来驱动。

more汽车电子市场动态
more技术专栏
more专家答疑
问:请教一个问题,高通手机在测试EVS过程中,voice upgrade video,在voice过程中手机测没有upgrade video的按钮,只有一个voice only按钮,请问invite里面携带的消息是否存在不正确的地方?
答:从现象初步看协议过程中,不支持视频通话导致的。具体原因要看终端支持情况,invite可能是其中一个原因。 具体请联系贵司的Qualcomm技术接口。
问:求助:利用QFIL 烧写系统出错,驱动已经安装了 QDLoader 9008 都出来了,9008是表示设备已经进入了EDL模式。请专家指导,这是怎么回事儿
答:出错以后起不来了么?从你的描述进入QDLoader 9008 EDL模式看,烧录导致系统程序出现问题了(如签权,加密等),需要重新刷正确的镜像。 如果只是刷机的话,可以参考如下,不过要确保image和机器匹配即可。 第一步下载这个http://pan.baidu.com/s/1pJGaK47 刷机前必须要把驱动安装好(我是64位的系统,需要在重启系统的时候按f8关闭验证签名,不关闭无法正常刷机)按照 这个帖子的方法刷机 http://bbs.gfan.com/android-7945764-1-1.html(这次刷机时需要把电池扣掉,不需要电池)如果跟我一样是刷完rom之后无法进入蓝屏模式而无法开机的,现在装上电池就可以开机了。 具体使用请联系贵司的Qualcomm技术接口。
问:这里有做ANDROID高通的专家在么,我有个问题:为什么高通的ANDRID不支持LAST KMSG 离线LOG工具也很难用.
答:具体使用请联系贵司的Qualcomm技术接口。不知道你用的版本和平台型号。 关于last_kmsg问题:内核3.10之后,pstore已经取代了last_kmsg,如果需要怎添postore功能,我们需要配置一下内核,具体如下: CONFIG_PSTORE=y CONFIG_PSTORE_CONSOLE=y CONFIG_PSTORE_RAM=y CONFIG_PSTORE_FTRACE=y CONFIG_DEBUG_FS=y CONFIG_FUNCTION_TRACER=y # CONFIG_STRICT_MEMORY_RWX http://blog.csdn.net/ldinvicible/article/details/51789041 离线log工具难用问题: 可以自己写一个log的工具类,具体可以参考下面的网址 http://blog.csdn.net/cxq234843654/article/details/51190752
问:与有线充电相比,高通的Halo充电效率是提高了有多少?
答:有线充电和无线充电没有可比性。WEVC试验数据 充电效率90%以上。从技术层面看无线充电带来便利性的同时,会多一些损耗,一般在1-3%以内。
Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052