RV1126 imx335 sensor调试
根据media-ctl -p -d /dev/media0输出[rootATK-DLRV1126:/]# ls -l /tmp/test.nv12 -rw-r--r-- 1 root root 0 Jan 1 08:00 /tmp/test.nv12 [rootATK-DLRV1126:/]# media-ctl -p -d /dev/media0 Media controller API version 4.19.111 Media device information ------------------------ driver rkcif model rkcif_mipi_lvds serial bus info hw revision 0x0 driver version 4.19.111 Device topology - entity 1: stream_cif_mipi_id0 (1 pad, 4 links) type Node subtype V4L flags 0 device node name /dev/video0 pad0: Sink - rockchip-mipi-csi2:1 [ENABLED] - rockchip-mipi-csi2:2 [] - rockchip-mipi-csi2:3 [] - rockchip-mipi-csi2:4 [] - entity 5: stream_cif_mipi_id1 (1 pad, 4 links) type Node subtype V4L flags 0 device node name /dev/video1 pad0: Sink - rockchip-mipi-csi2:1 [] - rockchip-mipi-csi2:2 [ENABLED] - rockchip-mipi-csi2:3 [] - rockchip-mipi-csi2:4 [] - entity 9: stream_cif_mipi_id2 (1 pad, 4 links) type Node subtype V4L flags 0 device node name /dev/video2 pad0: Sink - rockchip-mipi-csi2:1 [] - rockchip-mipi-csi2:2 [] - rockchip-mipi-csi2:3 [ENABLED] - rockchip-mipi-csi2:4 [] - entity 13: stream_cif_mipi_id3 (1 pad, 4 links) type Node subtype V4L flags 0 device node name /dev/video3 pad0: Sink - rockchip-mipi-csi2:1 [] - rockchip-mipi-csi2:2 [] - rockchip-mipi-csi2:3 [] - rockchip-mipi-csi2:4 [ENABLED] - entity 17: rockchip-mipi-csi2 (5 pads, 17 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: Sink [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - rockchip-mipi-dphy-rx:1 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - stream_cif_mipi_id0:0 [ENABLED] - stream_cif_mipi_id1:0 [] - stream_cif_mipi_id2:0 [] - stream_cif_mipi_id3:0 [] pad2: Source [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - stream_cif_mipi_id0:0 [] - stream_cif_mipi_id1:0 [ENABLED] - stream_cif_mipi_id2:0 [] - stream_cif_mipi_id3:0 [] pad3: Source [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - stream_cif_mipi_id0:0 [] - stream_cif_mipi_id1:0 [] - stream_cif_mipi_id2:0 [ENABLED] - stream_cif_mipi_id3:0 [] pad4: Source [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - stream_cif_mipi_id0:0 [] - stream_cif_mipi_id1:0 [] - stream_cif_mipi_id2:0 [] - stream_cif_mipi_id3:0 [ENABLED] - entity 23: rockchip-mipi-dphy-rx (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev3 pad0: Sink [fmt:SRGGB10_1X10/2616x196410000/300000 field:none crop.bounds:(12,12)/2592x1944] - m00_f_imx335 1-001a-1:0 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/2616x196410000/300000 field:none crop.bounds:(12,12)/2592x1944] - rockchip-mipi-csi2:0 [ENABLED] - entity 28: rkcif-mipi-luma (0 pad, 0 link) type Node subtype V4L flags 0 device node name /dev/video4 - entity 31: m00_f_imx335 1-001a-1 (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev4 pad0: Source [fmt:SRGGB10_1X10/2616x196410000/300000 field:none crop.bounds:(12,12)/2592x1944] - rockchip-mipi-dphy-rx:0 [ENABLED] 一、整体架构分析media拓扑显示当前系统运行在CIF直出模式ISPImage Signal Processor没有集成到当前media链路中。这解释了为什么video5无法输出数据——ISP pipeline没有正确连接。二、各实体详细解析1. sensor实体m00_f_imx335 1-001a-1- entity 31: m00_f_imx335 1-001a-1 (1 pad, 1 link) device node name /dev/v4l-subdev4 pad0: Source [fmt:SRGGB10_1X10/2616x196410000/300000 field:none crop.bounds:(12,12)/2592x1944] - rockchip-mipi-dphy-rx:0 [ENABLED]内核代码位置drivers/media/i2c/imx335.c这是Sony IMX335 CMOS图像传感器驱动输出格式SRGGB10_1X1010-bit RAW Bayer数据分辨率2616x1964实际有效区域2592x1944左右各裁剪12像素帧率10000/300000 30fps通过公式计算10000/300000 1/30I2C地址1-001a表示I2C总线1设备地址0x1a功能解析将光信号转换为RAW Bayer数据通过MIPI接口输出。2. MIPI D-PHY实体rockchip-mipi-dphy-rx- entity 23: rockchip-mipi-dphy-rx (2 pads, 2 links) device node name /dev/v4l-subdev3 pad0: Sink [fmt:SRGGB10_1X10/2616x196410000/300000 field:none] - m00_f_imx335 1-001a-1:0 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/2616x196410000/300000 field:none] - rockchip-mipi-csi2:0 [ENABLED]内核代码位置drivers/phy/rockchip/phy-rockchip-mipi-rx.cRV1126平台专用的MIPI D-PHY物理层驱动功能解析处理MIPI信号的物理层负责时钟恢复和数据对齐支持最高4-lane MIPI输入每lane速率可达2.5Gbps作为sensor和CSI-2协议解析器之间的桥梁3. MIPI CSI-2实体rockchip-mipi-csi2- entity 17: rockchip-mipi-csi2 (5 pads, 17 links) device node name /dev/v4l-subdev2 pad0: Sink [fmt:SRGGB10_1X10/2616x1964 field:none crop.bounds:(12,12)/2592x1944 crop:(12,12)/2592x1944] - rockchip-mipi-dphy-rx:1 [ENABLED] pad1-4: Source - stream_cif_mipi_id0-3 (分别对应video0-3)内核代码位置drivers/media/platform/rockchip/mipi-csi2/mipi-csi2.cRV1126的MIPI CSI-2主机控制器驱动功能解析解析MIPI协议提取图像数据关键特性支持将一路MIPI输入分发到4个虚拟通道VCpad1 - stream_cif_mipi_id0 (video0) [ENABLED]pad2 - stream_cif_mipi_id1 (video1) [ENABLED]pad3 - stream_cif_mipi_id2 (video2) [ENABLED]pad4 - stream_cif_mipi_id3 (video3) [ENABLED]crop操作裁剪了边界像素左右各12像素4. CIF流实体stream_cif_mipi_id0-3- entity 1: stream_cif_mipi_id0 (1 pad, 4 links) device node name /dev/video0 pad0: Sink - rockchip-mipi-csi2:1 [ENABLED] - entity 5: stream_cif_mipi_id1 device node name /dev/video1 pad0: Sink - rockchip-mipi-csi2:2 [ENABLED] ...内核代码位置drivers/media/platform/rockchip/cif/rkcif驱动是Rockchip Camera Interface的缩写功能解析根据rkcif驱动的版本历史v0.1.3支持RV1126 vicap mipi单通道v0.1.4支持vicap-full lvds接口v0.1.7支持dvp和mipi/lvds同时运行添加subdev作为ISP接口当前配置4个video节点对应4个MIPI虚拟通道但都配置为直接输出RAW数据未经过ISP处理。5. 亮度统计实体rkcif-mipi-luma- entity 28: rkcif-mipi-luma (0 pad, 0 link) device node name /dev/video4内核代码位置drivers/media/platform/rockchip/cif/cif_luma.c功能解析v0.1.3版本添加的luma设备节点提供图像的亮度统计信息用于自动曝光(AE)和自动白平衡(AWB)算法注意这是CIF驱动的辅助节点不是ISP的输出三、为什么ISP没有出现在media拓扑中从你的/sys/kernel/debug/pm_genpd/pm_genpd_summary输出看到/devices/platform/ffb50000.rkisp active说明ISP硬件已上电但结合media-ctl输出可以推断ISP驱动未注册到media0RV1126通常有多个media设备# 查看所有media设备 ls /dev/media* # 可能有 media0 (rkcif), media1 (rkisp0), media2 (rkisp1) 等参考搜索到的资料正点原子RV1126开发板中ISP相关实体通常注册在/dev/media1或/dev/media2rkisp_mainpath节点存在你的/dev/video5是rkisp_mainpath但它在另一个media设备中# video5的Media Driver Info显示 Media Driver Info: Driver name : rkisp # 注意这里是rkisp不是rkcif Model : rkisp0四、解决方案——找到ISP的media设备# 1. 列出所有media设备 ls -la /dev/media* # 2. 查看每个media设备的拓扑 for m in /dev/media*; do echo $m media-ctl -p -d $m | head -20 done # 3. 查找包含rkisp_mainpath的media设备 for m in /dev/media*; do echo Checking $m... media-ctl -p -d $m 2/dev/null | grep -q rkisp_mainpath echo Found in $m done根据搜索结果RV1126的典型配置是/dev/media0rkcif驱动你当前查看的/dev/media1rkisp0第一个ISP实例/dev/media2rkisp1第二个ISP实例/dev/media3rkispp0第一个ISPP实例/dev/media4rkispp1第二个ISPP实例五、正确的数据流向应该是根据搜索结果完整的ISP pipeline应该是sensor (imx335) → MIPI D-PHY → CSI-2 → ISP → ISPP → mainpath (video5) (v4l-subdev3) (v4l-subdev2) (rkisp) (rkispp) (/dev/video5)当前状态sensor (imx335) → MIPI D-PHY → CSI-2 → CIF direct (video0-3) ↳ ISP (suspended) → ISPP → video5六、结论系统有两个独立的media pipeline/dev/media0CIF直出通道当前查看的提供RAW数据其他media设备ISP处理通道提供处理后的图像/dev/video5属于ISP通道需要找到正确的media设备并配置链路才能工作。之前v4l2-ctl --stream-mmap失败是因为ISP链路未正确连接而非设备不存在。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424277.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!