1、背景:
一般我们在调试一款sensor 的效果时,首先要先把他点亮,也叫 sensor bringup,这部分工作大都由驱动工程师来完成,但有时也是需要tuning 工程师来做的,但其实如果顺利的化,在sensor驱动中配置好sensor setting,、i2c地址、sensor的chip_id,就可以出图了,但大多数情况下,往往不会那么顺利,会遇到很多的问题,这里总结一下,整个sensor bringup的流程,以及遇到的一些问题;
2、Sensor bringup 流程:
- 向 sensor 原厂申请所需规格的Sensor setting,如分辨率、平台的Mclk、帧率、输出raw图的位宽、mipi_lane数,必要时说明下不能超过平台所能支持的最大mipi速率;
- 拿到setting后,进行sensor 驱动的配置,先配置好sensor setting、I2C地址、chip_id;
- 拿到主板的原理图,确认硬件相关配置,根据主板原理图在dts中配置mclk、reset、pwrdn、i2c 的引脚控制;
- 如上步骤完成后,硬件没啥问题的话,基本就可以点亮出图了,接着再根据sensor datasheet,详细配置sensor 的曝光时间,模拟增益等寄存器就可以了?;
3、问题总结:
a、怎么确定 reset、pwrdn、i2c、mclk的引脚 ?
首先得学会看原理图,一开始拿到图看我是很懵的,乱七八糟感觉东西太多了,不知道从哪里看起,其实要关注的地方不是很多,不需要把整张图看懂,因为我们主要就是配置camera,所以找到MIPI_CSI接口部分,如下图a,只关注CM_RST_L (reset)、CM_PWRDN (pwrdn)、CM_I2C_SCL(i2c_clk)、CM_I2C_SDA( i2c_data )、CM_MCLK?(mclk)几个控制引脚就可以了,以mclk为例,我们先找到图a的mipi_csi部分的CM_MCLK ——> 图b MCLK_0 ——>图c的 MCLK_0——> 主控的GPIOA_0 ,实际就是依次往上查找,直到主控的引脚上。
b、I2C不通 ?
?c、不出图或者出图异常;
- ISP这边输指令查下mipi的传输是否有err。
- 可以用示波器量下mipi信号。
- 抓raw图看下是否有异常,如果raw图也有异常一般都是sensor setting的问题,找sensor原厂的人去看。
- 提高增益后有竖条纹(也叫FPN),和sensor相关,一般找sensor 原厂处理;
- ?低照度下有横条纹,一般和硬件相关,电源噪声或者器件的干扰;
?
|