MTK pdaf bringup导通流程

db59c681fe2aaf2d0cdef01ba46d8379.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、开发环境

平台:mt6833

主摄sensor: s5kjn1sq

模组厂:qtech

马达:dw9800

二、前期准备工作

  1. 在MOL上download 官方bring up文档,01_02_Driver_Check-PDAF_Driver_Porting_Guide_release_V1.4.pdf(最新).
  2. 问模组厂提供.ini文档,该文档记录了pdaf的相关参数,我们参考该文档配置sensor驱动
  3. OTP map,需要确认otp烧录了af和pdaf的数据
  4. 问sensor原厂提供pdaf PDMAP guide文档,该文档记录了PD Tail数据的存储格式,后续做pd buf的L,R分离时需要参考该文档
  5. pd_s5kjn1sqmipiraw.cpp文件,如果有现成的就问供应商拿现成的,如果没有则需要自己coding

三、前期需确认事项

1. 确认af是正常工作的,找相关bringup人员确认或在main log中搜索关键字"MoveLensTo"

759dbd89355f403a41ad32bd431aa100.jpeg
image.png

2. 确认otp数据读取正常,日志搜索关键字"CamCalCamCal"

09-08 03:39:48.696 12049 31376 D CamCalCamCal: ver0923 ======================AWB CAM_CAL==================
09-08 03:39:48.696 12049 31376 D CamCalHelper: CamCalHelper Read data from memory[0]
09-08 03:39:48.696 12049 31413 D IspDrv_CAM: IspDrv_CAM[CQ_Allocate_method1] [0x0][21_0]:virtIspAddr:virt[0x79eb9e3000]/phy[0x2fcb90000]
09-08 03:39:48.696 12049 31376 D CamCalHelper: CamCalHelper Read data from memory[0]
09-08 03:39:48.696 12049 31414 D awb_mgr : [AWBInit()][AI NVRAM] AISAindex(0) revision(0) enable(0) , AIMAindex(0) revision(0) enable(0) [AWB NVRAM] index(1), SEGenable(0) SEGisothr(0) SEGcnt(0), E2Eenable(0) E2Eisothr(0) E2Ecnt(0)
09-08 03:39:48.696 12049 31376 D CamCalCamCal: ver0923 ======================AF CAM_CAL==================
09-08 03:39:48.696 12049 31376 D CamCalCamCal: ver0923 [AF] Inf=488 Marco=758
09-08 03:39:48.696 12049 31376 D CamCalCamCal: ver0923 ======================AF CAM_CAL==================

pdaf的数据我们需要看解析后的数据,porting的时候确认,需要确保pdaf是support状态,然后搜索关键字"parseStep3"

bd2f43245be7d0fb8ba38b993445932d.jpeg
image.png

确保otp数据跟模组厂提供的ini文档中的参数应该是一致的。

3. 找sensor vendor确认pdaf type

一、 手机 CAMERA 的物理结构: ........................................................................................ - 4 二、 CAMERA 的成像原理: ................................................................................................. - 4 三、 CAMERA 常见的数据输出格式: .................................................................................. - 5 四、 阅读 CAMERA 的规格书(以 TRULY 模组 OV5647_RAW 为例): ........................... - 6 五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 1、 电源部分: .................................................................................................................... - 7 2、 SENSOR I NPUT 部分: ................................................................................................... - 7 3、 SENSOR OUTPUT 部分: ............................................................................................... - 7 4、 I2C 部分: SCL,I2C 时钟信号线和 SDA ,I2C 数据信号线。 .................................. - 7 六、 MTK 平台 CAMERA 驱动架构: .................................................................................. - 8 七、 MTK 平台 CAMERA 相关代码文件(以下代码均为 MTK6575 平台): .................... - 9 1、 CAMERA SENSOR 驱动相关文件 .................................................................................... - 9 2、 SENSOR ID 和一些枚举类型的定义 ............................................................................. - 9 3、 SENSOR 供电 .................................................................................................................. - 9 4、 KERNEL SPACE 的 SENSORLIST ,IMGSENSOR 模块注册 ............................................... - 9 5、 USER SPACE 的 SENSORL IST,向用户空间提供支持的 SENSOR L IST ......................... - 10 6、 SENSOR 效果调整的接口 ............................................................................................ - 10 八、 CAMERA 模块驱动、设备与总线结构: ..................................................................... - 11 A) 驱动的注册: .................................................................................................................. - 11 B) 设备的注册: .................................................................................................................. - 11 C) 总线的匹配: .................................................................................................................. - 12 九、 CAMERA 驱动工作流程: ............................................................................................ - 13 十、 CAMERA 驱动添加、调试流程: ................................................................................. - 17 Ghong
### MTK 平台 PDAF 流程中的 1004 字节数据解析 在移动设备的相机模块中,相位检测自动对焦(PDAF, Phase Detection Auto Focus)是一种快速实现图像聚焦的技术。对于联发科(MTK)平台而言,其 PDAF 实现涉及复杂的硬件和软件交互过程[^2]。 #### 数据结构分析 关于 MTK 平台上的 PDAF 流程中提到的 **1004 字节** 的具体含义,常可以理解为某种特定的数据包或者错误码定义的一部分。以下是可能的情况: 1. **传感器输出数据缓冲区大小**: 在某些情况下,1004 可能表示的是用于存储来自图像传感器的原始 PDAF 数据的一个固定长度缓冲区。这些数据会被进一步处理以计算焦点位置偏差并调整镜头的位置[^3]。 2. **调试日志或诊断信息**: 如果涉及到 Diagnostics Data 工具集(如 QXDM Professional/QPST 提到的内容),那么该数值可能是某个状态报告、事件记录或者是错误追踪的日志条目编号。它帮助开发者定位问题所在,并提供上下文以便于修复缺陷[^1]。 3. **协议层消息体尺寸**: 基于信接口设计原则,在 ISP 和应用处理器之间传递的消息可能会有标准化的帧格式。其中,“1004”作为字段之一用来指示整个报文的有效载荷部分占据多少空间单位——即字节数量[^4]。 #### 错误代码解释尝试 如果假设这是个异常情况下的反馈机制,则需参照官方文档来确切解读每种情形对应的语义;不过基于经验推测如下几种可能性存在关联性较高之处: - 当返回值等于 `1004` 时,意味着请求失败的原因在于资源不可用或是参数配置不当等问题。 - 它也可能指向内存分配不足或者其他低级操作层面引发的结果判定失误状况下产生的提示信号。 需要注意的是上述猜测并未得到权威资料证实因此仅供参考而已实际运用当中务必查阅最新版本SDK手册获取最精准描述说明材料。 ```c++ // 示例伪代码展示如何读取/写入与1004相关的寄存器地址 uint8_t readRegister(uint16_t regAddr){ uint8_t result; // Assume I2C or SPI communication here... i2c_read(regAddr,&result); return result; } void writeRegister(uint16_t regAddr,uint8_t value){ // Again assume appropriate bus protocol implementation exists. spi_write(regAddr,value); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值