mtk6572 mtk还没正式发布,我们也开始整了,本博主要是记录一下自己的调试camera的过程。
step1.移植camera的driver到72平台,发现原来的driver在mtk的新平台上有一个结构体参数没有定义,主要是在gc0329yuv.c的getinfo里面要调用,好像是什么CAMERA_ISO_BINNING_INFO_STRUCT,不知道是干什么用的,先移植过去了(这个地方不知道影不影响后面的绿屏,等待mtk的回复)。其他的移植都是按步就班,没什么好说的。然后配置gpio口和i2c,下载进去不亮,看log,i2c0 send failed。
step2.根据第一不的log,主要查看i2c部分,对照原理图,发现次i2c是由cam_io来供电(1.8v),在kd_camera_hw.c文件中,只有一个函数kdCISPowerOn,发现mtk都用if(默认的camera名称)条件来控制,打开条件,还是不行。看log,i2c ackerr,id还是为0.
step3、这个过程涉及到一个很纠结的问题,就是系统没有读到camera的id,系统就不会出现camera的菜单,本来是很人性化的一个配置,但是对调驱动的来说就很恶心。这对后续的工作带来不便,就是测量camera的每个引脚了,每次都只能在开机的瞬间来测试一下。不过没办法,还是一个个测来排除问题,首先电压,cam_io 1.8v 正常,vcama,vcamd都正常,1.5 ,2.8。vcam_af电压就不管了,对这里没影响。i2c有scl sda引脚都有输出,基本没问题。再者cmmclk,cmpclk都很正常,cmmclk标准正玄波,cmpclk采样方波。
step4、最后只剩下reset脚和power脚了(我开始根本就没有怀疑这两个角的时序问题,因为mtk默认的yuv是调通过的),最后通过调整这两个脚的时序解决问题。
问题 :最后还有3个问题希望看这片文章的高手帮忙解答。
一 、检测不到camera就不出菜单的代码在哪里?
packages\apps\Camera\src\com\android\camera\DisableCameraReceiver.java
把onReceive函数中的相关代码注释掉就好
二、时序问题怎么来调试?(我上面解决问题主要是有对照)
具体分析问题的时候需要示波器以及其他的一些仪器,没有深入的调试过。
三 、绿屏怎么回事?
问题终于得到解决,绿屏是因为后摄的格式设置错误,原来是yuyv,后来改为uyvy就好了。
原来还有一个问题,插上后摄的话,前摄就有线条。后来fae帮忙查出是mclk上面接了个电容,去掉就好了。
交流qq:562053716。简单说明一下是做android的。