烟台做网站价格,传奇网站制作网,网站关键字如何做,网络服务提供者接到权利人的通知后一、概述 做嵌入式工作的小伙伴知道#xff0c;有时候程序编写没有调试过程中费时#xff0c;之间笔记里有 MIPI 摄像头驱动开发的过程#xff0c;有需要的小伙伴可以参考#xff1a;Linux RN6752 驱动编写。而我也是第一次琢磨 MIPI 协议#xff0c;其中有很多不明白的地…一、概述 做嵌入式工作的小伙伴知道有时候程序编写没有调试过程中费时之间笔记里有 MIPI 摄像头驱动开发的过程有需要的小伙伴可以参考Linux RN6752 驱动编写。而我也是第一次琢磨 MIPI 协议其中有很多不明白的地方在调试的时候折腾了很久特此将我遇到的问题记录下来希望多其他小伙伴有用。 二、测试环境 开发板RV1126ARM Linux 版本4.19.111MIPI 设备RN6752V1摄像头AHD 摄像头 三、调试中的问题 在调试需要先确定摄像头驱动是否已经正常加载可以使用命令 media-ctl -p -d /dev/mediaX 进行查看如下图所示 其次明白怎么获取自己的图片如果直接编写应用程序进行测试的那无意增加了调试的难度所以在测试之前需要只要抓图的命令如果多抓图和链路关系还不了解的小伙伴可以看我之前的笔记Linux Media 子系统链路分析。 注意 这里我使用的测试模块是 RN6752V1它从米皮出来的数据已经是 YUV422 格式的图像所以我抓取的节点可以有不一样的地方。 1. 抓图时出现 select timeout 错误 现象出现这样错误的可能原因是因为MIPI 设备没有正常工作错误如下图所示 解决办法 比如在驱动用没有正常调用留控制函并通过 I2C 对设备进行配置 确定芯片的睡眠引脚电平是否正常 可以使用示波器观察 MIPI 通道时候存在数据如下图所示 注意 如果将图像缩小可以看到每帧数据之间有一定的间隔时间如果芯片正常工作后便可以抓取到图像。 2. 帧错误 现象抓图中会出现 rockchip-mipi-csi2: ERR1: error matching frame start with frame end, reg: 0x10,cnt:2 提示。解决办法这一般都是硬件不稳定导致的需要检查硬件上的问题 3. 帧格式错误 现象抓图时有时能正常抓取成功但是偶尔会提现是 rkcif_mipi_lvds: ERROR: csi bandwidth lack, intstat:0x80002!! 错误出现此错误后变无法获取图像。 解决办法出现这个问题多数情况是帧格式不匹配导致的比如我在驱动中使用的是 MEDIA_BUS_FMT_UYVY8_2X8而抓图是却用的 NV12也有人说是瑞芯微中使用 NV12 的问题只需改为 NV16 即可这类我抓图时更改为 uyvy422 就没有这个错误了。 4. 干扰错误 现象当数据通道被干扰后会提示 rockchip-mipi-csi2: ERR1: crc errors, reg: 0x1000000, cnt:1 错误
解决办法这个是有硬件不稳定导致的不过一般出现这个错误也是能正常抓取图片的。 5. 瑞芯微 VI 模块使用 现象由于 RN9752V1 模块接入 MIPI 同到的信号是 YUV422 格式的图像所以不需要经过 ISP 模块只需要在 CIF 节点获取即可但是使用 VI 模块从 video0 节点获取图像是失败。 解决办法失败的原因是因为 VI 模块默认从 DMA 中获取数据而 CIF 是从内存中转存的所以需要将 VI 模块的数据源改为从内存中获取如下图所示 6. 图像分屏问题 现象当 MIPI 通道受到干扰时便会出现分屏问题复现也很简单只需要对 MIPI 通道的数据线或时钟线进行干扰即可分屏并且每次分屏的位置都不同如下图所示 解决办法这里存在两种情况 启动时分屏当设备启动时分屏这样的情况是因为获取图片之前没有对设备进行复位可能软复位和硬复位都要执行RN6725V1 的复位如下图所示 运行时分屏当图像正常运行后收到硬件部分的干扰也会导致分屏这样的现象只需要增加 CIF 通道的异常检测功能即可添加方法如下图所示具体的操作见VICAP 异常复位部分的分析 注意 以上是我遇到的一些错误更多的问题处理见 Rockchip Linux4.4 Camera Trouble Shooting 文档路径在RV1126参考资料\Linux\Camera 目录下 四、VICAP 异常复位 瑞芯微已经在驱动中增加了异常复位功能只需要开启异常检测功能即可需要注意的是不同板子的开启方式不同比如 RK3588 是在配置信息中开启在 drivers\media\platform\rockchip\cif 目录下的Kconfig文件中定义相应的信息如下图所示 由于我使用的是 RV1126 开发板所以这里重点介绍 RV1126 中的配置而 RV1126/RV1109 都是通过设备树进行配置的配置信息如下所示 rockchip,cif-monitor index0 index1 index2 index3 index4; index0index0 表示的是复位模式目前主要有四种模式 无监测idle默认开启若无 rockchip,cif-monitor 节点配置时默认为无检测模式VICAP 不进行图像异常监测 连续模式continue: 用于实时监测 vicap 是否 mipi 出错及断流当发生出错及断流时进行 vicap 复位。 检测方式是定时器在 index1 设定的帧数达到时在帧位进行初始化并开始监测若出现错误达到相应的帧数后触发复位。 定时器以 index2 设定的周期数进行检测 触发模式trigger只有在 csi2 协议层出现了错误时才会触发当 index4 设定的次数达到时在图像的帧尾初始化触发器并在 index2 设定的周期数达到后进行一次 vicap 复位 热插拔模式hotplug主要针对车机转接芯片用于解决设备插拔是图像隔离或断流的问题此模式具备“连续模式”的功能与 continue 的差别在于在 mipi 不报错和不断流的情况下若是 vicap 所采集的 sensor 通过RKMODULE_SET_VICAP_RST_INFO 命令置位复位使能那么 vicap 在通过RKMODULE_GET_VICAP_RST_INFO 获取到该信息后会触发复位操作。 index1 对 continue 或者 hotplug 而言在采集到 index1 帧数据后触发监测定时器 index2 监测定时器的周期以一帧为单位监测周期为 index2 帧 index3 延时复位的时间参数在发现 vicap csi2 报错后在该定义时间内持续对监测当检测到错误不再增加进行复位超过该定义时间不管是否还在增加错误都立即进行复位操作时间单位ms index4 用于设定 mipi csi err 的出现次数在达到该次数后触发复位 注意 在 VICAP 模块中产生复位后是不能解决分屏的问题它的主要目的是监测图像是否错误并触发复位信号复位信号产生后会在驱动程序的控制函数中产生 RKMODULE_SET_QUICK_STREAM 控制信号。然后利用这个复位信号对设备进行复位便可解决分屏的问题如下图所示 五、CSI 数据流模块 CSI 同时采集在 RV1126 和 RV1106 中存在两个独立而完备的标准物理mipi csi2 dphy对应于dts上的csi_dphy0和csi_dphy1所以我们可以实现两个摄像头同步进行图像采集。但是 RV1126 中只有一个 14M 的 ISP 模块所以想实现两个同时采集只能通过下面两条路径才能实现但是两张图像不能超过 14M。 imx335-----csi_dphy0------csi2----cif----isp0------ispp0
imx335----csi_dphy1----isp1---ispp1 注意 在 RV1126 中ISP只能达到 30fps cif 模块 在 RV1126/RV1109 中VICAP存在两个IP核其中一个称之VICAP FULL,一个称之VICAP LITE VICAP FULL拥有dvp/mipi/lvds三种接口dvp可与mipi或者lvds接口同时工作而mipi和lvds则不能同时工作VICAP LITE 仅拥有lvds接口可与VICAP FULL的接口同时工作。 VICAP LITE 仅拥有lvds接口可与VICAP FULL的接口同时工作。 注意 VICAP FULL dvp接口对应一个rkvicap_dvp节点VICAP FULL mipi/lvds接口对应一个rkvicap_mipi_lvds节点VICAP LITE 对应一个rkvicap_lite_mipi_lvds节点。各节点可独立采集。 YUV 数据双通道采集问题 从上面信息可以可知对于 MIPI 通道中的数据是 RAW 格式的便可以实现两个通道同时采集但是对于 MIPI 通道中的数据是 YUV 格式时我只实现一个摄像头的数据采集分析如下 因为 CIF 模块和ISP通道之间是通过虚拟连接的也就是数据是通过内存块进行交换的所以可以直接通过这个内存控件直接抓取图像也就是 vide0 ~ vido3 这几个节点但是 CIF 模块只有一个不能用这样的思想进行双通道采集。 想直接从 CSI 模块位置直接获取数据但是我尝试后无法获取如下图所示 注意 因为无法在 ISP 模块之前获取 MIPI 通道的数据所以我没能实现 RV1126 同时采集两个 RN6752V1 的图像数据但是理论上应该是可以实现的但是我没找到合适的方式望有知道的大佬指点一下如果后期我发现解决办法后也会补充上的。 参考资料 介绍rk平台针对cif链路出现的mipi错误以及断流的复位操作介绍rk平台针对cif链路出现的mipi错误以及断流的复位操作-CSDN博客 camera调试serdes camera调试camera调试serdes camera调试_人生苦短我想躺平的博客-CSDN博客 camera调试RK3588 MIPI/DVP camera关键配置camera调试RK3588 MIPI/DVP camera关键配置-CSDN博客 Rockchip Linux4.4 Camera Trouble Shooting 文档 文章转载自浇筑菜鸟
原文链接https://www.cnblogs.com/jzcn/p/17866409.html