锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

AF base tuning <0>

时间:2022-11-07 19:30:00 传感器889l6传感器

CAF 审查测试

■ Actuator Hysteresis/Damping 双向完整扫描磁滞
■ Actuator range test 开环电机范围
■ Actuator settle time 电机时间稳定
■ Focus value contrast and tail 对焦曲线与拖尾的对比
■ Distance to lens mapping 镜头距离映射

如有错误,请指正。

1. Comlete RFI worksheet

在这里插入图片描述

xxx_actuator.xml 的initialCode 修改为RFI计算出来的。
initial finescan setepsize 设置为Num Steps Betweem Stat Points(Step size for each lens move),准确搜索步长。
Frame Delay Nor 可设置镜头移动之间的帧延迟数, 3确保记录FV镜头处于稳定状态。

根据RFI计算值填入
infinity_index
Hyperfocal
120cm_index
60cm_index
50cm_index
40cm_index
30cm_index
20cm_index
14cm_index
10cm_index
7cm_index
Near_Limit_index
不要按照RFI这需要拍摄iso12233 图卡,测量数据和 20 cm、 30 cm 和 120 cm 距离对应的 Lens Position Tuning Values 组中AF Tuning 比较选项卡中理论数据生成的参数。如果某些位置差异很大,检查灵敏度是否错误,灵敏度和10cm DAC更新到RFI,生成新的参数。 Near_Limit_index 其实最好为0.

Single Search – Index: 指数是物理距离和镜头位置的映射,其中指数 [0] 代表最近点,并逐渐向指数代表无限远点[n] 移动。指数决定单次。 AF 算法中的决策边界。建议将逻辑镜头位置的整体可移动范围设置为[0 - 399],以确保多个电机的逻辑镜头位置与传感器相同。

2.AF 关闭 eeprom

eeprom dump 的数据

Autofocus data dump for EEPROM p24c64q_s5k3l6  Macro dac = 525 Infinity dac = 262 Macro margin = 0.250000 Infinity margin = -0.400000 Hall offset bias = 0 Hall register addr = 0 Lens Calibration Data: numberOfDistances: 0  

镜头通过编程数字移动(Digital)→模拟(Analog)控制执行器中的转换器(DAC).

未关闭eeprom , dac 和lens position 的关系。
Macro Dac 将镜头推到远郊无限远处dac值。
Infinity Dac 将镜头推到郊区无限近处dac值。
OTP中的Macro dac和Infinity dac它们都是面向前测量的,我们需要使用它们Macro margin和Infinity margin 扩大镜头移动范围,覆盖镜头移动范围facing_down_inf和facing_up_macro场景
dac 399–157
dac 0–588

  Line 5626: 01-02 20:47:41.536   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[399] 157  Line 5627: 01-02 20:47:41.536   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[398] 158  Line 6023: 01-02 20:47:41.578   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[10] 578    ...  Line 6028: 01-02 20:47:41.578   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[5] 583  Line 6029: 01-02 20:47:41.579   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[4] 584  Line 6030: 01-02 20:47:41.579   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[3] 585  Line 6031: 01-02 20:47:41.579   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[2] 586  Line 6032: 01-02 20:47:41.579   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[1] 587  Line 6033: 01-02 20:47:41.579   899   899 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[0] 588  

关闭eeprom
1.修改actuator.xml
initialCode 改成 0 ,表示初始从0 开始.
codePerStep 改为 2.5.电机行程为0~1024.

2. 关闭eeprom,修改xxx_eeprom.xml

Line 5567: 01-02 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[399] 0  Line 5568: 01-02 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[398] 2  Line 5569: 01-02 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[397] 5  Line 5570: 01-02 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[396] 7  Line 5571: 01-02 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[395] 10  Line 5572: 01-0 22:06:44.649   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[394] 12
	................
	Line 5964: 01-02 22:06:44.679   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[5] 985
	Line 5965: 01-02 22:06:44.679   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[4] 987
	Line 5966: 01-02 22:06:44.679   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[3] 990
	Line 5967: 01-02 22:06:44.680   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[2] 992
	Line 5968: 01-02 22:06:44.680   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[1] 995
	Line 5969: 01-02 22:06:44.680   886   886 V CamX    : [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[0] 997

3. log 设置

log 设置,打开AF(8),State(2),Sensor(2) 的log
 # cat /vendor/etc/camera/camxoverridesettings.txt
overrideLogLevels=0x3F
logWarningMask=0x08000202
logInfoMask=0x08000202
logVerboseMask=0x08000202
enable3ADebugData=TRUE
dumpSensorEEPROMData=TRUE
enableTuningMetadata=TRUE
afFullsweep=3
enablePDLibLog=3

log 搜索
af_pdaf_proc_pd_single grid|af_pdaf_proc_pd_single roi|af_fullsweep_final|sweep_srch_far_to_near|af_fullsweep_srch_near_to_far|af_fullsweep_start_srch

注意:拍摄为待调试的设备进行拍摄。拍摄图像时,设备的朝向必须为横向。

4.Actuator Hysteresis/Damping

目的:测试马达磁滞,检查从无线远处移动至微距位置以及反向移动过程是否呈线性。
原理:从远端位置向近端位置扫描镜头,之后相反方向再次扫描镜头。两个方向的对焦峰值应该近乎相同。如果两个对焦峰值不同,则表示镜头模块存在严重迟滞
测试环境:500lux 以上的照明条件下,将ISO 12233分辨率测试卡放在距离三脚架上的设备30cm的远的地方,跑fullsweep 。
评判标准:excel 绘制fv 值于lensposition 的关系。如果两个方向的峰值相差10%,则表明该模块存在较大迟滞

数据处理:
关键字af_fullsweep_srch_far_to_near|af_fullsweep_srch_near_to_far|af_fullsweep_start_srch,利用excel 绘制fv 值于lensposition 的关系。
af_caf_util_get_value i:1
关闭otp 的Focusval 和 LensPosition 图形:

打开otp 的图形:

5.Actuator range test

目的:测试将检查微距和无限远时的边界范围。测试会检查镜头是否有足够的移动范围,可对焦微距/无限远处的物体
测试环境:在 500 lux 以上的光照条件下,将 ISO 12233 分辨率测试卡放置在距离三脚架上的设备 10 cm远的位置,进行微距测试。在 200 cm 的位置重复执行测试,从而执行无限远测试。fullsweep
数据处理:
关键字af_fullsweep_srch_far_to_near|af_fullsweep_srch_near_to_far|af_fullsweep_start_srch,利用excel 绘制fv 值于lensposition 的关系。



如果绘制的关系图与微距和无限远(通过)图相似,则表明马达设置和 OTP 数据均正确。
如果绘制的关系图与微距和无限远(未通过)图相似,则表明马达设置和 OTP 数据有误。

6.Actuator settle time

目的:该测试将检查多个帧同一镜头位置对焦值的一致性,从而检查发出镜头移动命令后,镜头是否稳定
测试环境:在 500 lux 以上的照明条件下,将 ISO 12233 分辨率测试卡放置在距离三脚架上的设备 30 cm远的地方。

如果绘制的关系图与图 A 相似,则表示阻尼和振铃设置已正确配置。如果绘制的关系图与图 B相似,则表示可能存在以下问题:
■ 阻尼/振铃设置有误
■ 在 ISP 统计数据解析与将统计数据发送到 AF 核心之间存在时序问题
重复测试两次以上来确定问题是否真正存在。若确认问题存在,则调整阻尼设置,并重新执行测试。如果仍存在该问题,则在实验室使用激光检查阻尼设置

7.Focus value contrast and tail

目的:该测试通过检测对焦值图的反差(FV 最大值/FV 最小值)来检查其质量。比值越大,自动对焦算法的反差越好。
测试环境:在 500 lux 以上的照明条件下,将 ISO 12233 分辨率测试卡放置在距离三脚架上的设备 30 cm远的地方。
数据处理:
关键字af_fullsweep_srch_far_to_near|af_fullsweep_srch_near_to_far|af_fullsweep_start_srch,利用excel 绘制fv 值于lensposition 的关系。

如果图看起来与图 A 相似,则 Bayer AF (BAF) 配置的配置正确。如果图看起来与图 B 或图 C相似,则 BAF 设置有误,或在 BAF 状态的 ISP 解析中出现错误。重复测试两次以上来确定问题是否真正存在。

03-14 17:02:16.133   890  1182 V CamX    : [ VERB][STATS_AF ] af_fullsweep.cpp:126: af_fullsweep_check_for_max_fv FVmax: 752604032.000000
03-14 17:02:16.133   890  1182 V CamX    : [ VERB][STATS_AF ] af_fullsweep.cpp:144: af_fullsweep_check_for_max_fv FVmax: is 752604032.000000
03-14 17:02:16.133   890  1182 V CamX    : [ VERB][STATS_AF ] af_fullsweep.cpp:165: af_fullsweep_check_for_min_fv FVmin updated. Old: 71199056.000000 New: 65298976.000000

8.Distance to lens mapping

目的:这项测试的目的在于验证10cm 处得到的DAC值是否可信。由于RFI worksheet 中的各距离的DAC值都是通过10cm处DAC值所推导出来的,因此只有在保证10cm 处DAC值确认的情况下,才能保证通过RFI worksheet 计算出来的其他距离DAC值可信。
测试环境:在 500 lux 以上的照明条件下,将 ISO 12233 分辨率测试卡放置在距离三脚架上的设备 14 cm远的地方。在 20 cm、 60 cm 和 200 cm 距离处重复上述测试。

抓取开机log 初始化dac 和lens pos 的关系。camxactuatordata.cpp:194
 抓取10cm 的iso12233 的finalpos。

马达的最大行程为 1~1024(dac),驱动中的 infinity、mac 等等都是电流的逻辑表示,即 dac 值,其与 kernel 中的 current 是一 一对应的。高通在 Chromatix 中不直接使用电流的逻辑表示,而是改用镜头位置的逻辑表示,即 lens_pos,目的应该是为了解耦。
1、AF Algo 计算出 lens_pos;
2、经公式转换,向 actuator 传递转换后的 dac;
3、actuator 向 kernel 传递 dac,再在 kernel 中换算成 current,进而推动镜头。

(1)DAC 参考eeprom 算出dac 的范围
infinityDAC = 262
macrroDAC= 525
DACRange = 263
infinityDAC =262+ (-0.4263) = 156.8
macroDAC = 525 +(0.25
263) = 590.75 . so DAC的范围157 --590 对应lens pos 399–0
01-03 13:34:48.440 889 889 I CamX : [ INFO][SENSOR ] camxactuatordata.cpp:113 CalibrateActuatorDriverData() Infinity:262, Macro: 525: WithMargin: Infinity:157, Macro: 590, InfinityMargin:-0.400000, MacroMargin: 0.250000

(2)lens pos 和Dac 的关系
lens pos = position_far_end -(dac - initial_code )
dac = position_far_end + initial_code - lens_pos
打开eeprom ,根据eeprom 数值:
: [ VERB][SENSOR ] camxactuatordata.cpp:194 InitializeStepTable() Table[3] 585
3 = 399 - 585 + intial_code
initial_code = 588-399 = 189

Table[3] – 3 为lens pos , 585 为dac 值

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章