20240619在飞凌OK3588-C的Linux R4系统下查找MIPI YUV摄像头的csi size err
2024/6/19 14:00
缘起,公司使用LVDS OUT的机芯,4LANE的LVDS输出。1920x1080@30分辨率(1080p/30)
通过FPGA转换为2LANE的MIPI OUT之后进RK3588/OK3588-C。
有2款机芯,工作正常,但是有两款机芯异常。
出错信息:
root@ok3588:/# demsg
[ 144.609745] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.626437] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.643122] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.659804] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.676486] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.693164] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.709847] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.726487] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0!!
[ 144.743224] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.759908] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.776591] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.793268] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.809958] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.826642] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.843320] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.860010] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.876693] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
[ 144.893371] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0!!
root@ok3588:/#
找FPGA工程师反复查找/比对/测试,最终确定为MIPI YUV输出的HS/VS极性/同步的问题。
由于FGPA工程师反复确认他是将LVDS机芯的数据原样输出的。并不存在修改。
最后定位问题出在RK3588的极性检测这里。
现阶段飞凌OK3588-C的Linux R4系统可以正常处理的MIPI YUV的极性数据:
后来他直接修改FPGA的程序,让FPGA来适配RK3588了。
RK3588的MIPI YUV的驱动程序部分待定位。
参考资料:
百度:rockchip-mipi-csi2 fdd30000.mipi2-csi2: ERR1: incorrect frame seq
https://blog.csdn.net/Shushan1/article/details/85685351
Rockchi之RK3288解决MIPI屏黑屏问题
https://www.cnblogs.com/arnoldlu/p/18111451
Linux v4l2子系统(6):MIPI CSI2
https://blog.csdn.net/kfashfasf/article/details/134728639
Linux MIPI 调试中常见的问题
6. 图像分屏问题
现象:当 MIPI 通道受到干扰时,便会出现分屏问题,复现也很简单,只需要对 MIPI 通道的数据线或时钟线进行干扰即可分屏,并且每次分屏的位置都不同,如下图所示
解决办法:这里存在两种情况
启动时分屏,当设备启动时分屏,这样的情况是因为获取图片之前没有对设备进行复位(可能软复位和硬复位都要执行),RN6725V1 的复位如下图所示:
运行时分屏,当图像正常运行后,收到硬件部分的干扰也会导致分屏,这样的现象只需要增加 CIF 通道的异常检测功能即可,添加方法如下图所示,具体的操作见VICAP 异常复位部分的分析,
注意: 以上是我遇到的一些错误,更多的问题处理见 Rockchip Linux4.4 Camera Trouble Shooting 文档,路径在RV1126参考资料\Linux\Camera 目录下