智能电动汽车团队SJTU 2024-12-28 16:25 采纳率: 0%
浏览 129
已结题

orin nano 摄像头驱动

您好,我们使用AHD转CSI的芯片RN6752自制了一个mipi摄像头的板子,正在适配到orin nano 上,驱动已经注册成功。目前的状态是通过i2cdump能够看到寄存器已经写进去了,但是示波器不能检测到mipi-clock输出,想请教一下您出现这种问题,可能的原因

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial          
bus info        
hw revision     0x3
driver version  5.10.120

Device topology
- entity 1: 13e40000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
    pad0: Sink
        <- "rn6752 9-002c":0 [ENABLED]
    pad1: Source
        -> "vi-output, rn6752 9-002c":0 [ENABLED]

- entity 4: 13e40000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
    pad0: Sink
        <- "rn6752 10-002c":0 [ENABLED]
    pad1: Source
        -> "vi-output, rn6752 10-002c":0 [ENABLED]

- entity 7: rn6752 9-002c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev2
    pad0: Source
        [fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb]
        -> "13e40000.host1x:nvcsi@15a00000-":0 [ENABLED]

- entity 9: vi-output, rn6752 9-002c (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Sink
        <- "13e40000.host1x:nvcsi@15a00000-":1 [ENABLED]

- entity 23: rn6752 10-002c (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev3
    pad0: Source
        [fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb]
        -> "13e40000.host1x:nvcsi@15a00000-":0 [ENABLED]

- entity 25: vi-output, rn6752 10-002c (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
    pad0: Sink

但是抓图的时候报以下错误

[  112.852516] bwmgr API not supported
[  115.420466] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[  115.420492] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[  115.421005] (NULL device *): vi_capture_control_message: NULL VI channel received
[  115.421012] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=1, csi_port=1
[  115.421021] (NULL device *): vi_capture_control_message: NULL VI channel received
[  115.421024] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 1 vc- 0
[  115.421397] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
$ sudo cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 21/21   #P:6
#
#                                _-------=> irqs-off
#                               / _------=> need-resched
#                              | / _-----=> need-resched-lazy
#                              || / _----=> hardirq/softirq
#                              ||| / _---=> preempt-depth
#                              |||| / _--=> preempt-lazy-depth
#                              ||||| / _-=> migrate-disable
#                              |||||| /     delay
#           TASK-PID     CPU#  |||||||  TIMESTAMP  FUNCTION
#              | |         |   |||||||      |         |
     kworker/4:4-183     [004] .......   104.256482: rtcpu_string: tstamp:3784498673 id:0x04010000 str:"VM0 deactivating."
        v4l2-ctl-2916    [000] .......   112.837685: tegra_channel_open: vi-output, rn6752 9-002c
        v4l2-ctl-2916    [000] .......   112.841391: tegra_channel_set_power: rn6752 9-002c : 0x1
        v4l2-ctl-2916    [000] .......   112.841403: camera_common_s_power: status : 0x1
        v4l2-ctl-2916    [000] .......   112.841412: tegra_channel_set_power: 13e40000.host1x:nvcsi@15a00000- : 0x1
        v4l2-ctl-2916    [000] .......   112.841415: csi_s_power: enable : 0x1
        v4l2-ctl-2916    [000] .......   112.842095: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
     kworker/4:4-183     [004] .......   112.848451: rtcpu_string: tstamp:4053059467 id:0x04010000 str:"VM0 activating."
        v4l2-ctl-2916    [004] .......   112.848887: tegra_channel_set_stream: enable : 0x1
        v4l2-ctl-2916    [004] .......   112.852823: tegra_channel_set_stream: 13e40000.host1x:nvcsi@15a00000- : 0x1
        v4l2-ctl-2916    [004] .......   112.852826: csi_s_stream: enable : 0x1
        v4l2-ctl-2916    [004] .......   112.853219: tegra_channel_set_stream: rn6752 9-002c : 0x1
     kworker/4:4-183     [004] .......   112.908459: rtcpu_vinotify_event: tstamp:4053697235 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:129702251968 data:0x759d580010000000
     kworker/4:4-183     [004] .......   112.908462: rtcpu_vinotify_event: tstamp:4053697492 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:129702261728 data:0x0000000031000001
     kworker/4:4-183     [004] .......   112.908462: rtcpu_vinotify_event: tstamp:4053697781 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:129702353344 data:0x759d550010000000
     kworker/4:4-183     [004] .......   112.908463: rtcpu_vinotify_event: tstamp:4053698028 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:129702363232 data:0x0000000031000002
 vi-output, rn67-2919    [003] .......   115.421198: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
     kworker/4:4-183     [004] .......   115.448460: rtcpu_vinotify_event: tstamp:4133992978 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:132274945408 data:0x759d580010000000
     kworker/4:4-183     [004] .......   115.448464: rtcpu_vinotify_event: tstamp:4133993235 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:132275002912 data:0x0000000031000001
     kworker/4:4-183     [004] .......   115.448465: rtcpu_vinotify_event: tstamp:4133993520 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:132275020608 data:0x759d550010000000
     kworker/4:4-183     [004] .......   115.448465: rtcpu_vinotify_event: tstamp:4133993768 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:132275080928 data:0x0000000031000002
  • 写回答

35条回答 默认 最新

  • 阿里嘎多学长 2024-12-28 16:26
    关注
    获得0.15元问题酬金

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    你好!你正在使用 Orin Nano 开发板,使用 RN6752 芯片将 AHD 转换为 CSI 接口的摄像头板子,并且已经注册驱动成功。然而,当前状态是通过 i2cdump 工具可以看到寄存器已经写入,但是示波器不工作。

    可能的解决方案:

    1. 检查驱动注册是否成功:确保驱动注册成功,并且没有任何错误。
    2. 检查寄存器写入是否正确:使用 i2cdump 工具检查寄存器写入是否正确,是否有任何错误。
    3. 检查示波器配置:检查示波器的配置是否正确,是否已经正确地连接到摄像头板子。
    4. 检查摄像头板子是否正确工作:使用其他工具或方法来检查摄像头板子是否正确工作。

    核心代码:

    // 注册驱动
    int ret = register_driver(&my_driver);
    if (ret < 0) {
        printk(KERN_ERR "Failed to register driver\n");
        return ret;
    }
    
    // 写入寄存器
    i2c_write_reg(i2c_dev, 0x00, 0x01);
    
    // 读取寄存器
    uint8_t reg_val;
    i2c_read_reg(i2c_dev, 0x00, &reg_val);
    

    请注意,这只是一个简单的示例代码,实际情况可能需要根据具体情况进行修改。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 创建了问题 12月28日