《摄像头的AF功能调试》

说明:以下说明均是在android 6.0 ,mt6580平台为例。

Data: 2016-07-21    星期四

一、前言

    在昨天调试摄像头的时候,发现摄像头不对焦。原本以为很简单的事,只要给摄像头上电,再在

    \vendor\mediatek\proprietary\custom\mt6580\hal\lens\lenslist.cpp 文件里添加一点东西就OK了。结果发现还是不能对焦,

    而且确定摄像头在硬件上是有AF功能的。这就奇怪了,上电是没问题的。后来FAE说可能是IIC没通,这个就有点令我吃惊了。

    AF功能也需要IIC通信来控制的吗?之前怎么没印象呢?后来想想也了然,如果你单单只给AF上电,它又怎么知道要对焦多少呢?

    马达要转多少才合适呢?所以它必需要由系统来给它控制,那系统和马达之间自然就需要用通讯来控制了。

二、现实

    1,首先我们要在ProjectConfig.mk 里配置好摄像头的AF功能,例如:

        CUSTOM_KERNEL_LENS = ad5820af dw9714af dummy_lens

        CUSTOM_KERNEL_MAIN_LENS = dw9714af

        CUSTOM_KERNEL_SUB_LENS = dummy_lens

        CUSTOM_HAL_LENS = ad5820af dw9714af dummy_lens

        CUSTOM_HAL_MAIN_LENS = dw9714af

        CUSTOM_HAL_SUB_LENS = dummy_lens

    2,还要在 Kernel 的项目配置文件里配置好,例如:ww826_80_weg_m_defconfig 

        CONFIG_MTK_LENS=y

        CONFIG_MTK_LENS_DUMMYLENS_SUPPORT=y

        CONFIG_MTK_LENS_AD5820AF_SUPPORT=y

        CONFIG_MTK_LENS_DW9714AF_SUPPORT=y

        事实上我们硬件上用到的是 DW9714AF。

    3,我们找到AF的驱动文件目录: \kernel-3.18\drivers\misc\mediatek\lens\common\ 在这个目录下面放着源码当前

        所有的AF驱动代码。我们找到  dw9714af 目录。

        

        

我们再继续去代码里跟下去! 就会发现 在 DW9714AF.c 里,最重要的是这个函数!   

 

        再找 DW9714AF_Ioctl这个函数是在那里被调用

        

        现在我们只有后摄像头有AF的功能,所以我们只需要跟进 main_lens.c 这个文件里 ~

        4,kernel-3.18\drivers\misc\mediatek\lens\main_lens.c

        

 

        我们再跟 g_stAF_DrvList[MAX_NUM_OF_LENS] 这个结构体数组 !!!

        

 

        5,我们再找  AF_SetMotorName 这个函数

  

 

        原来它是受这个节点控制的!!!

        

        

 

         ....................................

        

        是在这里注册AF的字符设备~

 

        

        6,它就是在AF的IIC proble里做的!

        

 

        

 

        

 

        这个比较重要!!!,这个就是要和生成的.dts文件里的相对应的。这个要我们自己用 DCT 工具去配置的!

        例如: 

        

 

        

 

        

        这里涉及到平台驱动以及I2C子系统驱动的知识点,如有不太明白的要去了解一下相关的知识。这里的问题只要是I2C能通讯成功就问题不大了,至于要微调AF功能得看合入的参数。

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值