Android camera的点亮不复杂,但遇到的坑还是挺多了,分享下。
1.确保摄像头的复位脚和上电脚配置正确,同时检查下vcama,vcamd,vcamio有没有电源输出。
2.检查mclk是否有输出
cpu上的mclk一般有多组,确定前后摄使用哪一组mclk,并用示波器/万用表量信号
sprd:dts上配置和pinmap
mkt:dts上配置和dct工具编辑dws文件,并在hal上配置具体使用的的mclk(mclk0/mck1,mck2)
3.如果i2c通信不上,确保上电时序跟规格书一致。我们拿到的驱动源码,有时并不一定是正确的,需要确认下上电时序。如果上电时序没问题,可以拿摄像头的打样图纸跟原理图进行确认,引脚能否一一对应。还有就是sensor一般有多组i2c地址,要根据打样图纸确认,或者将i2c地址兼容上去。同时要确保i2c有信号输出。
4.还不行,换摄像头重试,这是没技术含量的一步,但有时又必须试下,防止摄像头焊接异常或者模组异常等。
5.i2c能通信上,但没图像输出,问题多数还是出在驱动上或者模组问题。
6.对应预览出现上下颠倒或者左右颠倒的情况,可以修改相应的寄存器或者需要重新打样。对应出现预览转90度的情况,基本是要重新打样了。
7.前后摄相互影响的问题,一般是代码逻辑有问题,需要看log具体分析。
8.参考别人的调试经验