概述
对于安防行业的开发同仁来说,sensor的正常出图可以说是开发的第一步 ,尤其是从事isp相关,本文章就是总结了我在开发过程中遇到的一些问题,发布出来,为遇到相同情况的同学们提供一个解答的思路。
一、 学会看海思mpp库的打印信息
对于最常用的 hi3516dv300/cv500 sdk 来说。 在 /proc/umap/ 目录下有海思mpp 库的所有模块的信息, 通过cat 指令进行打印信息, 分析信息进行确定问题。 在分析打印信息的前提下,需要多海思平台 sensor 数据流的走向做到心中有数才能正确的分析出原因。
海思平台的sensor 数据流走向大概是这样的: sensor -> vi -> vpss -> venc/vo。
其中 sensor -> vi 使用了mipi 信号进行传输, 可能是mipi , 也可能是 lvds, 但是目前主流的还是mipi。
使用这样的命令: cat /proc/umap/mipi_rx 可以打印出mipi 驱动接收到的一些信息, 具体的参数意义,可以查看海思的相关手册中会有详细的参数解答。 例如 mipi 的配置与详细的信息会在 MIPI 使用指南中进行详细的解释,这里就不做赘述,只是说一下手册 中没有详细介绍的东西加上自己的理解。
Lind ID 会对应硬件设计中,具体链接sensor板传输数据使用到的线序,如果硬件的设计与mipi配置中的线序不对应的话, 那么传输的数据会解析有误,导致图像有异常。
MIpiData/LvdsData 则对应了每天mipi 物理线的数据, 如果发现其中一条线一直没有数据,则需要排查是否排线损坏。
DETECT INFO 信息中的图幅如果有误,则需要查看mipi配置信息是否正确。
如果sensor配置信息正确的话,则需要排查sensor驱动中VMAX HMAX的寄存器是否配置正确。 至于如何配置sensor的驱动,后边会进行根据自己的经验进行总结。
在此基础上,如果想更加深入的了解到信号是否有异常,可以使用示波器进行信号的测量与分析, sensor板的原理图我猜基本大同小异,并且也没有什么难度, 滤波的处理可能各个硬件工程师有些区别,sensor的接口确是根据sensorDatasheet来进行画板。从sensor板原理图中找到mipi的关键接口,进行直接测量或者连阻测量, 得到mipi信号。 这种方法可以直接的排查出是哪一端出现了问题, 假如mipi_rx 信息中与测量到的信号不符,那么问题多半出现在了mipi_rx 驱动中, 如果信号与mipi_rx信号相符,那么则可以排 查sensor端的问题。 如果 图幅信息不正确, 则可以测量 VS HS 信号,通过图时序的对比,可以计算出图幅,帧率。 VS 是场信号,与频率、帧率相关, HS 是行信号,与曝光行数相关。
如果mipi 正确, 那么大部分的问题就解决了, 大多数情况就可以正常的出图。如果还有问题,则需要进一步排查 VI VPSS VO等模块的信息,根据proc 信息准确的找到问题所在进行解决。
二、学会看海思平台数据流的方向
我跟人认为数据流不是简单的 mpp 中的各模块绑定走向,其中涉及到了别的底层支持。
比如说: VI 部分的配置, 可能是因为sensor 的时钟不匹配导致,可能是因为 sensor_i2c.c 驱动的id 配置限制等等。
由于我经验尚欠,只能总结出这些问题点: sensor驱动配置有误, 时序配置有误,驱动少加载,配置线序有误,工作模式配置有误。
欢迎大佬们进行指正与补充,打工人,共同努力吧。
最后
以上就是醉熏樱桃为你收集整理的海思平台35xx系列sensor不出图问题排查方法(新手来看)的全部内容,希望文章能够帮你解决海思平台35xx系列sensor不出图问题排查方法(新手来看)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复