全志平台camera驱动开发(3)MIPI接口camera驱动开发

时间:2024-03-19 16:26:58

详细沟通: 请加jiazhiwen0921微信号

 

目前开发过的allwinner平台

V5/V3/V3S/V40/T3/T7/A64等

开发过的mipi sensor:

sony:imx317、imx477、imx274、imx258、imx286、imx307、imx385等

ov:ov2718、ov12895、ov2710等

ar: ar0238等

国产:gc1024、gc1034、jxf23等

参数:

分辨率帧率: 4K30fps、1080p30fps/60fps、720p30fps/60fps/120fps

lane数: 4lane、2lane、1lane

控制接口: I2C、SPI

 

1.概述

(1)全志平台视频输入驱动框架有两套,VFE和VIN, 前者是针对一些老的平台低分辨率和帧率的驱动框架,VIN是后面重构优化过的针对一些主流编码产品的,两者底层硬件也不太一样。

(2)大概还是基于V4L2那一套来的,只是一些硬件状态信息、buffer管理、中断管理、ISP等等有些不一样。

(3)由于VFE框架相对而言比较简单,也比较老,所以这里主要按照VIN框架进行讲解分析

 

2.软硬件认识

 全志平台camera驱动开发(3)MIPI接口camera驱动开发

硬件和软件通路:

     Sensor模组+csic接口+VIN+V4L2+应用

     Sensor模组接口:mipi、hispi、lvds、dvp、bt1120/bt656

     Isp: 区分带isp的模组和不带isp的模组

图像数据走向:

     目前多采用不带isp的模组,直接出RAW图,用芯片这段的ISP处理数据格式等;

     因而ISP用不用是*可控的,一般抓RAW是为了测试通路

 

3.主控硬件接口介绍

 

这是V5的CSI控制器的硬件图

全志平台camera驱动开发(3)MIPI接口camera驱动开发

接口部分

           V5目前支持四个接口,两个combo口(串行,可连mipi /hispi /lvds),两个NCSI(并行,可连dvp/bt1120/bt656)

ISP:

          目前只有ISP0和ISP1有实际的作用,ISP2和ISP3只是路由功能没有实际作用

VIPP

      (1)实际对应我们的video节点的数量,理论上支持八个,实际一般用四个,因为ISP2

              和ISP3并没有实际作用;若NCSI0/1直接直接输入YUV数据是可以直接出八路video

      (2)由于VIPP多路的硬件实现,可以实现一路sensor源输出多路视频,ISP可*    

              选择,分辨率的*裁减

链路连接

         由于硬件的复杂性和灵活性,如上图,实体线能够连接到达的实体硬件,在软件上都可以实现*配置

 

4.模组端接口介绍

这一部分内容在上一章已经讲过了

https://blog.csdn.net/jzwjzw19900922/article/details/102520863

 

5.VIN框架结构

全志平台camera驱动开发(3)MIPI接口camera驱动开发

6.如何换一个camera模组

通过模组子板找到模组的型号和接口,再通过以下目录查看SDK中是否有对应模组的驱动

linux4.4/drivers/media/platform/sunxi-vin/modules/sensor

6.1. 有驱动

6.1.1.修改sysconfig

V5目前选取的mipi接口camera模组,一般需要修改的就只有sensor name和I2C地址,这两个参数直接在驱动中查找,若无I2C地址可以查找对应的datasheet。

三路电压值IOVDD、AVDD、DVDD,一般是不需要修改的,但是最好核对确认一遍,一般I2C不通就是这里的问题。

全志平台camera驱动开发(3)MIPI接口camera驱动开发

RESET和PWDN管脚核对,一般是不变的,有些客户板可能会修改(双目全景就是修改过的)

全志平台camera驱动开发(3)MIPI接口camera驱动开发

 

6.1.2.menuconfig配置驱动

在lichee/linux-4.4/目录下输入  make ARCH=arm menuconfig

按照如下步骤选择:

全志平台camera驱动开发(3)MIPI接口camera驱动开发

全志平台camera驱动开发(3)MIPI接口camera驱动开发

全志平台camera驱动开发(3)MIPI接口camera驱动开发

 

全志平台camera驱动开发(3)MIPI接口camera驱动开发

6.1.3.修改启动脚本

全志平台camera驱动开发(3)MIPI接口camera驱动开发

 

6.2. 无驱动

6.2.1移植驱动

目前sensor驱动都是有一个整体框架的,大同小异,如果只是点亮camera暂时不考虑曝光增益之类的话,可以参考imx317_mipi.c驱动,修改关键内容即可

(1)修改原厂的初始化寄存器配置

     对应 sensor_default_regs,有些sensor可能不需要

(2)添加不同分辨率下的寄存器配置

     同时修改sensor_win_sizes

(3)核对上电时序、reset、pwdn管脚,I2C地址

6.2.2. 其它与mipi接口修改一致