对接新sensor,应先确认硬件信息,mipi还是lvds,i2c还是spi,i2c(spi)控制器号是多少,注意管脚的复用信息,可以用海思的i2c_write/i2c_read尝试读写一下看看寄存器控制是否正常。
如果是海思sdk中提供的sensor,一般可以直接照搬其sensor驱动(注意硬件信息)。
如果海思sdk中没有的,需要拿到sensor的初始化序列(sensor的初始化寄存器序列),也可以自己根据datasheet写,但是可能出现遗漏一两个寄存器就导致不出图的现象,问题不好定位。关于其他的isp,ae等注册函数可以参考海思sdk中提供的类似sensor驱动代码,但是要注意一些寄存器的操作,毕竟存在芯片间差异。
sensor驱动完了之后是mpp系统,对接sensor时要注意combo_dev_attr_t结构体,sensor调试的很多问题是可以通过/proc/umap/mipi_rx看出来的,拿下面的图片举个例子:
该图片是imx327的lvds传输的proc信息,如果PhyData有数据变化,证明sensor初始化完成,sensor已经在发送数据了,而LvdsData如果没有数据则证明可能是mipi设置有问题。多看海思的调试信息,对问题定位很有帮助。
sensor调试还包括VI_DEV_ATTR_S、VI_PIPE_ATTR_S等vi、isp相关结构体,多看文档说明就可以了,不展开说明。
WDR的调试(行模式)海思文档中对wdr分很多模式,WDR_MODE_2To1_FRAME、WDR_MODE_2To1_LINE等,主要是帧模式,行模式,具体使用什么模式要看sensor是否支持,imx335、imx347支持的是line模式,而imx226支持的是frame模式。
WDR_MODE_2To1_LINE行模式sensor一般有两组或者多组初始化序列,在切换wdr时需要vpss去初始化,vi去初始化,改变wdr模式参数,vi初始化,vpss初始化,该部分内容在海思的sample中可以找到,下面是实际调试时可能出现的问题
1. 切换为wdr模式没有码流:根据sensor的调试方法,查找问题出现的原因,多看/dev/logmpp和/proc/umap/mipi_rx文件的信息,定位问题所在; 2. 切换wdr模式正常,切换回线性图像出现异常:可以把正常的线性模式下sensor寄存器全部读出,和出现异常的寄存器值做比较,修改这些差异的寄存器值,看图像是否恢复正常,如果可以恢复,把它们加到线性初始化序列里; 3. wdr模式下效果很差:个人感觉和3d降噪有很大关系,图像方面最好找专业的图像工程师调试一下。
相关推荐:
海思HI35XX串口调试 海思多媒体(MPP)开发(1)——nvp6134驱动介绍 海思hi3516A-sample的使用1–sensor加载免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:(开发记录)海思sensor以及行模式wdr https://www.yhzz.com.cn/a/15295.html