1.MT6575上mclk设为 26Mhz时,占空比不是50%
MT6575上26Mhz mclk设置后占空比不是50%, 量到为61.7%.
2.Camera上电开 power(DVDD, AVDD, IOVDD)之间间隔时间太长
3.如何配置 lens
首先需要向sensor的vendor了解,使用的sensor是否内嵌lens的driver IC
如OV5640和MT9P017就是内嵌lens driver ic的。内嵌lens driver ic,即直接操作sensor的寄存器去推lens。
若sensor没有内嵌lens的driver IC,则需要向模组厂了解,模组是否外挂了lens的driver IC,driver IC的型号是什么。我们codebase里的FM50AF下的代码,对应了AD5820的driver ic。如果您的模组包的也是这颗lens driver IC,则直接配置为fm50af即可;如果是其他型号的driver IC,您也可以尝试使用AD5820的驱动(注意把device address改过来)
有些sensor自带AF算法。如ov3640是一颗含AF core的sensor,即它自己能够做AF算法。因为YUV+AF要求sensor本身是能自己做AF算法的,所以不是每颗YUV sensor都是支持自动对焦的。如果您使用的sensor含有AF CORE,且您希望使用sensor自己的AF算法来对焦,即可配置为sensordrive,但需要您参照文档
ALPS_YUV+AF_customization_and_application_note(请在DMS上搜这篇文档看)对sensor driver做针对AF功能的修改。
4.使用 FM50AF 之外的 Lens Driver的修改
由于root process & global writeable file已经在非PRC(中华人民共和国)地区被强制要求,因此ALPS.ICS2.MP 版本及之后版本对root权限方面做了要求,这个要求对于Camera的影响就是,如果使用 FM50AF 之外的lens driver,需要在 init.rc 文件中增加对新Lens driver权限和用户方面的修改
例如增加了 XXXAF 这个lens driver 需要修改文件 mediatek\config\mt65XX\init.rc
添加下面二行
chmod 0660 /dev/XXXAF
chown system camera /dev/XXXAF
添加后如下
#Camera
chmod 0666 /dev/camera-sysram
chmod 0666 /dev/camera-isp
chmod 0660 /dev/camera-eis
chmod 0660 /dev/camera-fdvt
chmod 0666 /dev/camera-resmgr
chmod 0660 /dev/kd_camera_hw
chmod 0660 /dev/kd_camera_flashlight
chmod 0660 /dev/FM50AF
chmod 0660 /dev/XXXAF
chown system camera /dev/camera-sysram
chown system camera /dev/camera-isp
chown system camera /dev/camera-eis
chown system camera /dev/camera-fdvt
chown system camera /dev/camera-resmgr
chown system camera /dev/kd_camera_hw
chown system camera /dev/kd_camera_flashlight
chown system camera /dev/FM50AF
chown system camera /dev/XXXAF
5.如何修改I2C speed
Mediatek\custom\common\kernel\imgsensor\src\kd_sensorlist.c
iWriteReg()中最前面加上g_pstI2Cclient->timing,表示设置I2C的速度
如果不设置,为默认值100K ,
比如想将I2C的speed设置为400K,可将g_pstI2Cclient->timing设置为400K
6.如何打开或者关闭闪光 灯
打开/关闭闪光灯可以通过如下配置(两种方法) :
1. 在alps/mediatek/config/pjt/ProjectConfig.mk 文件中,按照如下配置
CUSTOM_HAL_FLASHLIGHT = constant_flashlight #dummy_flashlight
CUSTOM_KERNEL_FLASHLIGHT = constant_flashlight #dummy_flashlight
2. 在feature table中把flash相关的feature 打开/关闭
RAW sensor 涉及的文件
1) alps\mediatek\custom\project name\hal\camera\camera 目录下cfg_ftbl_custom_raw_main.h
2) alps\mediatek\custom\common\hal\camera\camera 目录下cfg_ftbl_custom_raw_main.h
3) alps\mediatek\source\external\mhal\src\core\drv\6575\isp目录下cfg_ftbl_raw_sceneindep.h
YUV sensor 涉及的文件
1) alps\mediatek\custom\project name\hal\camera\camera 目录下cfg_ftbl_custom_yuv_main.h
2) alps\mediatek\custom\common\hal\camera\camera 目录下cfg_ftbl_custom_yuv_main.h
3) alps\mediatek\custom\common\hal\imgsensor\xxx_yuv目录下cfg_ftbl_xxx_yuv.h
规则:优先级,1) > 2) > 3),即如果project name下相应的的文件,则只需要在相应的文件中打开flash相关的 feature,如果没有,则在2)中的文件打开/关闭:
#if 1//0
// Flash Light
CONFIG_FEATURE(FID_AE_STROBE,
BY_DEFAULT(FLASHLIGHT_FORCE_OFF),
FLASHLIGHT_AUTO, FLASHLIGHT_FORCE_ON, FLASHLIGHT_FORCE_OFF
)
#endif
7.如何控制mclk的开关
由于mclk在sensor上电之前就已经开了,如果不满足sensor spec中上电时序要求,可在开sensor power之前将mclk先 关闭,然后再需要时再打开,如何控制mclk的开关呢?
可调用void mt_isp_mclk_ctrl(int en) API去控制, (mediate\platform\mt6575\kernel\core\mt6575_isp.c)
8.如何调整闪光灯在 auto模式下的打闪阈值
参考[FAQ03033]
修改camera_ae_plinetable_xxx_mt657X.h文件注释为u4StrobeTrigerBV的值,例如下面代码
static strAETable g_AE_CaptureTable =(
20, //u4StrobeTrigerBV
);
这一行, 这个值越大越容易打闪,越小越不容易打闪。