首页/文章/ 详情

看大神如何进行Sensor移植? MIPI CMOS Camera 超详细调试流程

1年前浏览832

█ 如何移植一款新的sensor?

先确认主板和模组硬件接口是否是一致的,根据具体分辨率、帧率等需求,从模组厂获取响应的寄存器配置之后,根据响应的平台要求进行sensor驱动和dts的配置。在完成相应的配置之后,烧录固件进行相应的测试,移植过程可能遇到的问题,下面分两点进行简单介绍。

█ I2C通信失败

一般的平台在开机过程,camera驱动框架都会对sensor进行探测,如果确实存在相应的硬件,将会产生 /dev/video 节点;如果探测异常,则没有相应的节点。

探测过程一般是通过I2C驱动sensor的chipid,在这个过程遇到最多的就是I2C通信失败。遇到I2C通信失败,可按照以下步骤进行测试确认:

  1. 先确认sensor的I2C地址是否配置正确,由于I2C通信地址是7bit的,而不同的平台关于这个配置可能存在部分差异。有些是配置7bit的;有些则是配置8bit的,最后1bit为读写标志位;

  2. 确认dts中,关于模组的电源、reset、pwdn、mclk等是否配置正确,ldo的连接、电压、引脚等(结合原理图确认);

  3. 确认驱动中,是否在上电过程中,都有按照sensor datasheet的上电流程配置电源和将reset、pwdn拉到相应的电平状态;

  4. 到了这一步,i2c通信还是失败,那么将sensor的掉电函数屏蔽掉,使sensor一直保持上电状态,然后使用万用表测量供电电压是否正确,reset、pwdn电平是否正常,mclk是否有输出,I2C信号是否有上拉;

  5. 如果供电、reset、pwdn、mclk、i2c不对,那么确认驱动和dts的配置,特别需要注意mclk的幅值,mclk的幅值与IOVDD应该一致,如果发现mclk的幅值很小,检查硬件或者软件的关于mclk引脚的配置;

  6. 在测试过程中,如果怀疑硬件电路或者模组的问题,可先拆下模组,单独测试主板信号,确认信号正常后再接上模组测量(有些情况会发现接上模组之后短路,出现这样的情况,可能是模组问题,也可能是主板问题,具体问题具体分析);

  7. 如果测量硬件信号发现,模组供电电压正确,reset、pwdn引脚电平状态满足datasheet要求,mclk波形正确(注意幅值),I2C有正常上拉,以上条件都已满足,但I2C通信还是失败,更新板子、模组进行测试吧,本来这步也可以放到第一步进行的,但是我习惯放到最后,先怀疑自己,再考虑其他;

  8. 任一信号都已满足条件,但I2C通信还是失败,再次确认sensor i2c地址是否正确(可使用i2c tools的i2c detect命令进行设备探测);

i2c通信,更多的都是和硬件和配置相关,逐步测量,排查,总可以正常通信的,实在不行,拉上硬件一起排除。

█ MIPI没有接收到数据

当i2c可以正常通信后,意味着soc可以配置sensor,使其输出图像数据。这个过程也会经常性的遇到接收不到图像数据的情况,下面就mipi接收不到图像数据进行分析:

  1. 先测量确认sensor的mipi引脚是否有数据输出,如果有,则正常,如果没有,则确认是否存在虚焊、寄存器配置不正确等情况。和模组厂确认提供的寄存器配置是否正确的,是否可以正常出图的(这点我也是被坑过的,确认自己测量没有问题之后,要敢猜疑);

  2. sensor驱动中的寄存器配置,确认一下在软复位之后,是否有一定的延时。因为sensor在复位之后,需要一定时间的延时才可以继续配置寄存器,否则可能存在i2c通信失败或者写寄存器没有写成功等问题。

  3. 确认sensor寄存器配置输出的mipi lane数与硬件连接的是否一致,不一致也会存在接收不到数据的情况;

  4. 示波器测量mipi信号,主要是看波形是否正常,符合mipi协议的要求;

  5. 确认soc软件是否正确,是否被修改过代码;

这部分是由于图像数据在soc mipi接收过程是需要检测到各个lane的LP11-LP10-LP00的一个状态切换后才会切换到高速模式准备接收。如果soc在配置过程,先使能sensor输出,再配置soc mipi,就可能会存在soc mipi控制器一直在等待mipi信号切换,而sensor早已开始输出了。

这个也是我在csi mipi信号解析说到的将sensor mipi clk lane配置为非连续时钟模式的原因,避免soc错过一开始的LP状态切换后一直接收不到图像数据。配置为非连续时钟模式之后,每帧图像数据,mipi clk lane都会有一个完整的LP状态切换。

按照csi mipi信号解析中的mipi csi调试介绍,修改sensor的mipi寄存器,从而确认是否可以接收图像;

先接收RAW数据,排除csi pipeline中其他模块的干扰;

确认软件配置无效之后,确认板子有没有做阻抗匹配(试过新板子没有接收到数据,重新打板,明确阻抗匹配等,新板子正常接收)、是否存在虚焊,mipi部分引脚短路等情况(手工焊接的经常遇到);

mipi 接收可排除的不多,总结起来就是确认硬件是否存在虚焊、短路等情况,软件确认寄存器配置正确且写入,调节mipi时序,最后总归可以的。

转自:mipi sensor 调试流程_i2c调试sensor-CSDN博客


来源:EEDesign
电源电路电子通信焊接控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-17
最近编辑:1年前
EE小新
硕士 签名征集中
获赞 91粉丝 120文章 811课程 1
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈