常见问题及debug
1) Camera I2C不通的分析思路
I2C不通,有两种原因:一种是device端(也就是我们的camera sensor)本身就没有回ACK,另一种就是在master端(也就是我们的baseband端)。我们可以从kernel log里面搜索I2C的关键字:“I2C_TIMEOUT”和“I2C_ACKERR”。
I2C_ACKERR:问题多半在slave端,需要检查上电时需是否符合sensor spec的规范,和模组厂的工程师或者sensor厂的工程师一起修改sensor的上电时序。(PS:工作中遇到另外一种情况,在上电时序正常的情况下,还是发现I2C不通。最后是I2C驱动能力不足的问题,增强I2C的驱动电流即可。)
I2C_TIMEOUT:一般是BB端,至于是代码的哪个地方造成的I2C_TIMEOUT,我们得根据具体问题具体分析,出现I2C_TIMEOUT的rootcause之一是, 在I2C bus上没有上电的情况下去操作I2C,就会出现timeout。如果I2C bus有电,就需要结合示波器等手段深入分析。这个问题也是分析一般I2C器件不通的常用思路。
2)花屏:如果是很多绿线的花屏的话那么通常是HS/VS/PCLK的极性配置反了或者驱动电流太小被干扰了,如果是红蓝的颜色反了的那么是yuv输出数据反了。
3)光晕:出现此种现象的原因是data线有丢失。
a) 检查data line是否配置正确。
a) 可以修改sensor的输出能力,另一个是改pclk的极性。
b) 去掉HW上的,CAMERA data pin上的EMI器件。
供自己备忘:
原文地址:淘宝网 - 淘!我喜欢