logo资料库

af-otp-pdaf驱动正确性检查.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
af 驱动正确性检查 af 驱动需要配置的地方很少,驱动添加完毕后,先保证马达能动,对焦成功。对于马达的类 型需要和 fae 确认,然后设置对应的 initial_code,region_params 等信息。 otp 驱动正确性检查 一:LSC LSC 校正分 sensor 校正和平台校正,如果是将 otp 的数据读出来直接传到 3A 里面就是平台 校正,如果读出来的数据还要写到 sensor 的寄存器里的就是 sensor 端校正。 如果是平台校正: 1:可以将 LSC 的地址偏移一位,看看是否花屏 如果是 sensor 校正: 1:拍 raw 图看 01:50:19.911 二:AWB 1:在手机刚开机时打印:adb logcat > log.txt,查看 r/gr, b/gr 的比值相加是否接近 1,gr/gb 的值是否接近 1。例如: 01-02 sunny_m24c64s_eeprom_format_wbdata:140,AWB : r/gr = 0.494141 01-02 sunny_m24c64s_eeprom_format_wbdata:141,AWB : b/gr = 0.589844 01-02 811 sunny_m24c64s_eeprom_format_wbdata:142,AWB : gb/gr = 1.002930 2:可以将 AWB 的值写的离谱点,看会不会颜色变化,如果变化说明的 AWB 的值是有生效 的,例如: 01:50:19.911 01:50:19.911 mm-camera: mm-camera: 811 811 811 mm-camera: 811 811 E E E 3:AWB 打开和关闭的时候拍摄一张 JPEG 图对比一下看看(直接在进入 awb 校正这个函数 的时候 return 则是关闭了 AWB) 三:AF 1:在手机刚开机时打印:adb logcat > log.txt,也可以通过命令把数据 dump 出来。查看 macro
和 infinity 值是否与 dump 出来的值一样。远焦值肯定大于近焦值。例如: 打印出来的 log: 01-02 mm-camera: sunny_m24c64s_eeprom_format_afdata:260,AF : macro 625 infinity 329 (no starting DAC set to infinity) dump 出来的数据: 00:44:20.035 872 872 E 运算可得数据一致,即 AF 添加正确。 四:PDAF 和 DCC 1:在手机刚开机时打印:adb logcat > log.txt,或者通过命令 dump 数据。和 AF 的检查步骤 一样,主要是看自己输出的 log 的值和 dump 出来的数据是否一致。GainMap 值一般在几百 左右。 新平台在 vendor 层 dump 数据的步骤: 1:设置命令 adb root adb remount adb shell setprop persist.camera.cal.dump 1 2:重启手机并挂载 3:设置文件操作权限: adb shell chmod 777 /data/misc/camera 4:把文件 pull 出来 adb pull /data/misc/camera d:(路径自定) 把 dump 出来的 lsc 和 awb 的值写到效果文件里,lsc 的放到 common 目录下,awb 的放到 3A 目录下,搜索 Golden Module Info 关键词。这个起到校验 golden 模组的作用。 pdaf 驱动正确性检查 1,先设置命令: adb root adb remount adb shell setprop persist.camera.global.debug 1 adb shell setprop persist.camera.stats.haf.debug 5 adb shell setprop persist.camera.stats.af.debug 5 adb shell setprop persist.camera.sensor.debug 5 2,把 HAF 的 LOG 打开,并设置成 fullsweep 模式: adb shell setprop debug.camera.af_fullsweep 3 3,对着条形卡,让马达跑一个来回,并抓取 LOG:adb logcat |find "defocus(dac/um)"
4,搜索如下 LOG af_pdaf_proc_pd: 2059: roi(0) lens_pos=313 index=43, pd=4.32, defocus(um)=-140, conf=899, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=313 index=44, pd=4.28, defocus(um)=-138, conf=902, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=303 index=45, pd=4.26, defocus(um)=-138, conf=901, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=303 index=46, pd=3.96, defocus(um)=-128, conf=910, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=303 index=47, pd=4.02, defocus(um)=-130, conf=905, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=293 index=48, pd=4.00, defocus(um)=-130, conf=906, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=293 index=49, pd=3.73, defocus(um)=-120, conf=901, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=293 index=0, pd=3.74, defocus(um)=-120, conf=899, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE --------------- af_pdaf_proc_pd: 2059: roi(0) lens_pos=373 index=3, pd=6.00, defocus(um)=-194, conf=897, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=373 index=4, pd=5.98, defocus(um)=-194, conf=897, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=373 index=5, pd=5.98, defocus(um)=-194, conf=898, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=122 index=6, pd=5.98, defocus(um)=-194, conf=898, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=122 index=10, pd=-0.24, defocus(um)=6, conf=939, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=122 index=11, pd=-0.28, defocus(um)=8, conf=938, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=122 index=12, pd=-0.24, defocus(um)=6, conf=938, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE af_pdaf_proc_pd: 2059: roi(0) lens_pos=122 index=13, pd=-0.25, defocus(um)=8, conf=940, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE 可以看到,这句 LOG 有当前位置,有 defocus 值,在 fullsweep 过程中,位置会从远焦->近 焦->远焦,最后停在最清晰的位置 5,任意找一句,lens_pos + defocus 大概等于最清晰位置的 lens_pos 6,最后马达停下来后,如果 pd 接近于 0,defocus 值应该要比较稳定,变化小于 30 lens_pos=122 index=7, pd=-0.01, defocus(um)=0, conf=957, lens_pos=122 index=8, pd=-0.23, defocus(um)=6, conf=945, lens_pos=122 index=9, pd=-0.23, defocus(um)=6, conf=942,
7,如果最后停的位置不是准的时候,看 pd 接近 0 的时候,defacus 值最小
分享到:
收藏