【Hi3566V100】OV2775 的移植

关键字 :HisiliconAuto

一、前言


       Defensor 目前已调试的摄像头MIPI 接口的 OV2718 以及带 Serdes 的 MIPI 接口的 OV2775,下面将以 OV2775 摄像头为例 ,讲解它的驱动的移植以及 Serdes 的配置,Serdes 型号为 THCV241A 和 THCV242。


二、使能 i2c

2.1 确认使用的 i2c

       通过下面的原理图可以确认,与 THCV242 对接的 i2c 总线组别为 7。

      

2.2 确定 Liteos 端 i2c7

       在 osdrv/platform/liteos/platform/bsp/board/hi3566v100/board.c 下可以确认 liteos 端的 i2c7 是否有使能,具体如下:

      

2.3 复用 i2c7

    (1)在 product_init_hi3562v100.c 中添加 i2c7 pinmux 的配置,具体操作如下:

       ① 增加 PDT_INIT_SetI2C7PinMux 函数,具体如下:

      

      

       ② 在 PDT_INIT_SetSensorCtlPinMux 中修改如下:

      

      

    (2) 在 middleware/ndk/code/mediaserver/configs/sensor/hi3562v100/comm/

       sensor_intf_comm_params/comm_sensor_intf_cfg_params.c 中确认选择对应的 i2c,具体操作如下:



三、添加 ov2775_2l 设备

3.1 MPP 层添加

     (1)复制 ov2775 的驱动源码,重命名为 ov2775_2l,并且将源码中所有涉及“ov2775”的改为“ov2775_2l”

     (2) 修改 Makefile,将 TARGETLIB 和 TARGETLIB_SO 修改如下:

        

     (3)添加 serdes 相关 api

       ① 在 ov2775_2l_cmos.h 中定义 ov2775_2l_get_serdes_i2c_addr,具体如下:

       ② 在 ov2775_2l_cmos.c 中的设备地址填入 ov2775_2l_get_serdes_i2c_addr(vi_pipe) ,具体添加如下:

 


       ③ 在 ov2775_2l_sensor_ctl.c 中修改如下:

       在 ov2775_2l_i2c_init 中修改 ioctl 实参,具体如下:

      (4)修改 sensor_i2c.c, 具体如下:

      


      (5) 进入 amp/a7_liteos/mpp/component/isp/user 目录下,直接 make all


3.2 NDK 层添加

       (1) 在 ndk/code/mediaserver/configs/sensor/include/sensor_interface_cfg_params.h 头文件中定义 OV2775_2L

      

       (2) 在 ndk/code/mediaserver/configs/sensor/hi35xx 目录下新建一个 OV2775_2l 的文件夹, 并且新增 sensor_interface_cfg_param.c 和 Makefile 两个文件(可以参考其他sensor)

 

       ① 修改 Makefile 如下:

      

       ② 参照 ov2775 的 sensor_interface_cfg_params.c 仿写一个 ov2775_2l 的 sensor_interface_cfg_params.c 便可

       (3) 在 ndk\code\mediaserver\configs\sensor\hi3562v100\comm\register_sensor\目录下

       register_sensor.c 文件中调用 MAPI_SENSOR_Load 函数注册对应 sensor 库



3.3 Reference 层添加

       (1) 在 reference/dashcam/modules/init/amp/liteos/src/product_init_hi3562v100.c 中添加  ov2775_2l 的配置

       (2) 直接复制 ov2775 scene 的配置,改名为 ov2775_2l

       (3) 直接参考 hi3566 ov2775 的配置编写一个 ov2775_2l 的 param



3.4 添加 Menuconfig

       (1) 在 build/Kconfig.board 文件中,在“Sensor Configure”对应的 Dev 下,添加 sensor 型号以及在 serdes 中添加 ov2775_2l


       (2) 在 build/kconfig.mak 文件中,在 Sensor Type 中添加对应的 sensor 类型字符串以及对应 sensor 编译宏

 

       (3) 在 build/base.mak 文件中,在 NDK Configure 下增加新 sensor 编译选项适配

       配置完成后,具体效果如下:

      
      OV2775 的移植到这一步就已经完成了,下一篇博文将为大家介绍在 Hi3566V100 上配置 Serdes 并使用 OV2775 来进行验证。

六、参考文档
【1】《HiMobileCam V2.0参考设计开发指南.pdf》
【2】《Camera Sensor V2.0 适配指南.pdf》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论