天天看点

新加sensor

海思平台和Movidious平台新sensor bringup的对比,对于产品公司开发新sensor;芯片公司提供简单,可靠的多媒体开发平台应该都有帮助。

从海思文档找到的sensor bringup的步骤如下,调试思路都是一样的。

新加sensor

1. 准备材料

准备环节与平台无关。

1.1 确认主芯片规格

支持Master模式,支持的线性、WDR接口模式,支持输入频率上限。

1.2 Sensor datasheet

确认图像传输接口模式,输出频率。

确认曝光时间、增益如何设置,帧率如何修改。

确认在WDR 模式下的以上两项。

LVDS 接口,需要确认同步码。

1.3 Initialize Settings

获取Sensor Initialize Settings,一般至少要准备最大规格和标准分辨率两种序列。

2 采集图像

海思

2.1 sensor

sensor文件夹 mpp/component/isp/user/sensor/hi3519av100/sony_xxx/

sensor_sensor_ctl.c

  1. sensor寄存器的基地址sensor_i2c_addr,地址的比特位宽sensor_addr_byte,寄存器的比特位宽信息sensor_data_byte。
  2. sensor_init()实现初始化序列
  3. 配置分辨率

sensor_cmos.c

  1. 修改 cmos_set_image_mode函数,及cmos_get_isp_default中的u32MaxWidth,u32MaxHeight参数。使该senosr分辨率、帧率可以被正确设置。
  2. 配置曝光时间,增益,分辨率的寄存器,可以暂时把修改寄存器的地方暂时屏蔽。

生成sensor库,libsns_xxx.a

2.2 pipeline

pipeline文件夹 mpp/sample/vio/smp,可以使用sample_vio这个例子。

sample/Makefile.param中增加SENSOR_TYPE和SENSOR_LIB

sample_comm_vi.c

配置mipi->vi dev->vi pipe->vi channel,配置mipi时序和vi对新格式的支持

sample_comm_isp.c

配置isp, 添加新格式的支持

海思平台对mpp的内存管理有专门的处理单元。

Movidius

movidious与国内芯片平台的camera framework有一定的区别。

新加sensor

2.1 mvlibCamera

mvlcRegisterCameras(camSocketsList, &mvlcModulesDataBase, “Camera_”, MVLC_PROBE_ALL) camera注册需要两个输入camSocketsList和mvlcModulesDataBase,分别来自2.1.1和2.1.2。

2.1.1 CamSockets

camSocketsList 来自mvLibCamera里的camsockets,主要是硬件连接配置相关, gpio, mipiID, i2cID。

新加sensor
2.1.2 Modules

mvlcModulesDataBase 来自mvLibCamera里的modules,主要是driver相关。需要进行设备注册,mvlcRegisterCameras注册的时候调用了init(mvlcGenericCamCtlDevInit),注册过程中调用了powerup。

新加sensor
新加sensor
2.1.3 Sensor

添加NewSensor,configdb中是sensor的输出格式,包含初始化时序。mipi的时序配置也在这步骤完成。

新加sensor
新加sensor

2.2 pipeline

两种常见的pipeline,对pipeline的各个plugin进行配置。数据流方向是plgSrcMipi->plgIspCtrl->plgIsp->plgOutput, plgSrcMipi相当于mipi的应用层驱动,控制了数据流的输入。

内存管理是通过plgPoolSrc和plgPoolIsp。

新加sensor

3 ISP的基本功能

主要是配置AE,保证亮度基本正常。

继续阅读