This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:ADV7611视频问题

Guru**** 2589280 points
Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/637596/linux-am5728-adv7611-video-issue

器件型号:AM5728

工具/软件:Linux

我尝试将 ADV7611与 AM5728 EVM 连接、以使用 gstreamer 管道捕获视频数据。我修改了驱动程序和 VIP、以便在接口上进行以下修改:

1) 1) VIP 配置为以 UYVY 格式和8位模式接收

2) 2)针对相同的格式和模式修改了 adv7604.c

我们使用 s_stream、enum 总线代码、enum 帧大小、get fmt 和 set fmt 的函数修改了与 mt9t11x.c 类似的 adv7604驱动程序。

我读出以上函数足以支持 v4l2设备接口。如果我错了,请更正我。

我收到了随附的调试消息、请帮助我访问 out.e2e.ti.com/.../dmesg.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我建议您查看此用户指南:

    processors.wiki.ti.com/.../Linux_Core_VIP_User's_Guide

    我建议您在使用 gstreamer 之前使用 yavta 验证捕获。

    [引用 user="Marka Reddy"]我收到了随附的调试消息,请帮我解决。(请访问站点查看此文件)

    我无法打开此文件。

    BR
    玛格丽塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试使用 yavta。 我使用的命令是"yavta -C60 -fUYVY -FA.YUV -s640x480 /dev/video1。" 以下是 dmesg 上的日志:

    [127.189886] 7611.VIP VIP_OPEN
                   
    [127.193047] vip2-s0:vIP_open
    [127.193238] 7611.VIP VIP_INIT_STREAM
                   7611.VIP VIP_INIT_PORT
                   7611.adv76xx_get_format
    [127.203862] 7611.adv76xx_get_format 焊盘1.
    [127.211398] 7611.adv76xx_get_format state->source_pad 1.
    [127.216734] 7611.fill_format format->Colorspace 1.
                   7611.fill_format format->width 640
                   7611.fill_format format->height 480
                   7611.adv76xx 格式->哪一种1.
                    7611.adv76xx state->format->code 8198
    [127.235575] vip2-s0:vip_init_port:g_MBUS_fmt subdev MBUS_code:2006 fourcc:UYVY 大小:640x480
    [127.235586] 7611.VIP VIP_calc_format_size
                   7611.VIP f->fmt.pix.field:(空)
    [127.246791] vip2-s0:Calc_format_size:FourCC:UYVY size:640x480 BPL:1280 img_size:614400
    [127.246982] vip2-s0:init_stream fourcc:UYVY 大小:640x480 BPL:1280 img_size:614400
    [127.246990] vip2-s0:init_stream vpdma 数据类型:0x27
    [127.246999] vip2-s0:vip_init_stream:流实例0x00000001ec6f3800
    [127.247137] video1:VIDIOC_QUERYCAP:driver=VIP、card=VIP、bus=platform:VIP、version=0x00040420、capability=0x85200001、 DEVICE_caps=0x05200001
    [127.247317] 7611.VIP VIP_s_fmt_vid_cap
                   
    [127.252066] vip2-s0:s_fmt 输入 fourcc:UYVY 大小:640x480
    [127.252255] 7611.VIP VIP_try_fmt_vid_cap
                   
    [127.256475] vip2-s0:try _fmt fourcc:UYVY 大小:640x480
    [127.256668] vip2-s0:try _fmt loop:0 fourcc:UYVY 大小:640x480
    [127.256676] vip2-s0:try fmt loop:0找到了新的更大值:640x480
    [127.256684] vip2-s0:try fmt loop:0找到的最小值为640x480
    [127.256691] vip2-s0:try_fmt loop:0发现了新的最佳结果:640x480
    [127.256698] vip2-s0:try fmt loop:0找到直接匹配:640x480
    [127.256704] 7611.VIP VIP_calc_format_size
                   7611.VIP f->fmt.pix.field:(空)
    [127.264239] vip2-s0:Calc_format_size:FourCC:UYVY size:640x480 BPL:1280 img_size:614400
    [127.264463] vip2-s0:s_fmt try_fmt fccc:UYVY 大小:640x480
    [127.264481] 7611.VIP FREE_CSC
                   
    [127.267720] vip2-s0:s_fmt fourcc:UYVY 大小:640x480 BPL:1280 img_size:614400
    [127.267910] vip2-s0:s_fmt pix_TO_MBUS MBUS_code:2006大小:640x480
    [127.267916] 7611.adv76xx_set_format
    [127.272188] 7611.FormatInfo.code 为0    8198
    [127.276863] 7611.fill_format format->Colorspace 1.
                   7611.fill_format format->width 640
                   7611.fill_format format->height 480
                   7611.setup_format
    [127.305419] 7611.setup_format 读取0x03的 IO 为0
    [127.310416] 7611。 adv76xx_op_ch_SEL (state)为60
    [127.315577] 7611.setup_format 读取0x04的 IO 为62
    [127.321157] 7611.setup_format 读取0x05的 IO 为2D
    [127.326195] vip2-s0:s_fmt subdev fmt MBUS_code:2006大小:640x480
    [127.326202] vip2-s0:s_fmt vpdma 数据类型:0x27
    [127.326208] 视频1:VIDIOC_S_FMT:type=vid-cap、width=640、height=480、Pixelformat=UYVY、field=none、 字节线=1280、sizeimage=614400、colorspace=1、flags=0x0、YCbCr_enc=0、 量化=0、xfer_func=0
    [127.326404] 7611.VIP VIP_g_fmt_vid_cap
                   
    [127.330549] vip2-s0:g_fmt fourcc:UYVY 代码:2006大小:640x480 BPL:1280 img_size:614400
    [127.330740] vip2-s0:g_fmt vpdma 数据类型:0x27
    [127.330746] 视频1:VIDIOC_G_FMT:type=vid-cap、width=640、height=480、Pixelformat=UYVY、field=none、 字节线=1280、sizeimage=614400、colorspace=1、flags=0x0、YCbCr_enc=0、 量化=0、xfer_func=0
    [127.330922] 7611.VIP VIP_queue_setup
                   
    [127.334726] vip2-s0:获取8个大小均为614400的缓冲区。
    [127.339920] VB2:__setup_offsets:缓冲区0,平面0偏移量0x00000000
    [127.346494] VB2:__setup_offsets:缓冲区1,平面0偏移量0x00096000
    [127.353066] VB2:__setup_offsets:缓冲区2,平面0偏移量0x0012c000
    [127.359640] VB2:__setup_offsets:缓冲区3,平面0偏移量0x001c2000
    [127.366155] VB2:__setup_offsets:缓冲区4,平面0偏移量0x00258000
    [127.372650] VB2:__setup_offsets:缓冲区5,平面0偏移量0x002ee000
    [127.379218] VB2:__setup_offsets:缓冲区6,平面0偏移量0x00384000
    [127.38565] VB2:__setup_offsets:缓冲区7,平面0偏移量0x0041a000
    [127.392209] VB2:__Vb2_queue_alloc:分配了8个缓冲区,每个缓冲区1个平面
    [127.399031] video1:VIDIOC_REQBUFS:count=8、type=vid-cap、memory=mmap
    [127.399326] video1:VIDIOC_QUERYBUF:00:00:00.00000000 index=0、type=vid-cap、flags=0x00002000、field=any、sequal=0、 memory=mmap、字节 used=0、offset/userptr =0x0、length=614400
    [127.399358] 时间编码=00:00:00类型=0、标志=0x00000000、帧=0、用户位=0x00000000
    [127.399566] VB2:Vb2_mmap:缓冲区0、平面0已成功映射
    [127.405776] video1:VIDIoc_QUERYBUF:00:00:00.00000000 index=1、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x96000、length=614400
    [127.405805] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.405931] VB2:Vb2_mmap:缓冲区1、平面0映射成功
    [127.412156] video1:VIDIOC_QUERYBUF:00:00:00.00000000 index=2、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x12c000、length=614400
    [127.412190] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.412373] VB2:Vb2_mmap:缓冲区2、平面0映射成功
    [127.419929] video1:VIDIoc_QUERYBUF:00:00:00.00000000 index=3、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x1c2000、length=614400
    [127.419958] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.420319] VB2:Vb2_mmap:缓冲区3、平面0映射成功
    [127.426520] video1:VIDIoc_QUERYBUF:00:00:00.00000000 index=4、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x258000、length=614400
    [127.426548] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.426672] VB2:Vb2_mmap:缓冲区4、平面0映射成功
    [127.432901] 视频1:VIDIOC_QUERYBUF:00:00:00.00000000 index=5、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x2ee000、length=614400
    [127.432929] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.433102] VB2:Vb2_mmap:缓冲区5、平面0映射成功
    [127.439374] video1:VIDIoc_QUERYBUF:00:00:00.00000000 index=6、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x384000、length=614400
    [127.439402] timecode=00:00:00 type=0、flags=0x00000000、fr帧=0、userbits=0x00000000
    [127.439531] VB2:Vb2_mmap:缓冲区6、平面0映射成功
    [127.445728] 视频1:VIDIOC_QUERYBUF:00:00:00.00000000 index=7、type=vid-cap、flags=0x00002000、field=any、sequence=0、 memory=mmap、字节 used=0、offset/userptr=0x41a000、length=614400
    [127.445755] timecode=00:00:00 type=0、flags=0x00000000、frames=0、userbits=0x00000000
    [127.445927] VB2:Vb2_mmap:已成功映射缓冲区7、平面0
    [127.458569] 7611.VIP VIP_Buf_prepare
                   
    [127.462277] VB2:vb2_core_qbuf:缓冲区0的 qbuf 成功
    [127.467977] 7611.VIP VIP_Buf_prepare
                   
    [127.472594] VB2:vb2_core_qbuf:缓冲区1的 qbuf 成功
    [127.478287] 7611.VIP VIP_Buf_prepare
                   
    [127.481994] VB2:vb2_core_qbuf:缓冲区2的 qbuf 成功
    [127.487695] 7611.VIP VIP_Buf_prepare
                   
    [127.491411] VB2:Vb2_core_qbuf:缓冲器3的 qbuf 成功
    [127.497102] 7611.VIP VIP_Buf_prepare
                   
    [127.500812] VB2:vb2_core_qbuf:缓冲区4的 qbuf 成功
    [127.506508] 7611.VIP VIP_BUF_PREPARE
                   
    [127.510204] VB2:vb2_core_qbuf:缓冲区5的 qbuf 已成功
    [127.515894] 7611.VIP VIP_Buf_prepare
                   
    [127.519624] VB2:Vb2_core_qbuf:缓冲区6的 qbuf 成功
    [127.525332] 7611.VIP VIP_Buf_prepare
                   
    [127.529035] VB2:Vb2_core_qbuf:缓冲区7的 qbuf 成功
    [127.534748] 7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_Buf_queue
                   7611.VIP VIP_START_STREGUSTER
                   7611.VIP IP_setup_Scaler
                   7611.VIP SET_FMT_params
                   
    [127.561359] vip2-s0:vip_set_slice_path:
    [127.561546] vip2-s0:vip_set_slice_path:data_path_select (0000010C):80008000
    [127.561550] vip2-s0:vip_set_slice_path:
    [127.561556] vip2-s0:vip_set_slice_path:data_path_select (0000010C):40008000
    [127.561560] 7611.VIP VIP_setup_parser
                   7611.VIP VIP_SET_CROP_PARSER
                   
    [127.568300] vip2-s0:start_streaming: buf 0xeda65600 8.
    [127.568802] 7611.s_stream 函数
    [127.578301] 7611.s_stream 函数使能为1
    [127.577561] 7611.VIP populate_desc_list
                   
    [127.581522] vip2-s0:start_streaming: start_dma buf 0xeda65600
    [127.581706] 7611.VIP START_DMA
                    7611.vpdma list->next:-308626400,list->buf.addr:-308626432
    [127.590487] VB2:Vb2_core_streamon:成功
    [127.590492] 7611.VIP START_DMA
                   
    [127.599586]  7611.vpdma list->next:-308626400,list->buf.addr:-308626432 7611.VIP start_dma
                    7611.vpdma list->next:-308626400,list->buf.addr:-308626432
    [127.612659] 视频1:
    [127.612843] VIDIOC_STREAMON:type=vid-cap
    [127.615581] VB2:__Vb2_WAIT_TO_DONE_VB:将休眠等待缓冲区
    [140.621128] VB2:__Vb2_WAIT_TO_DONE_VB:睡眠中断
    [140.627331] 7611.VIP VIP_RELEASE
                   
    [140.630793] vip2-s0:vIP_release
    [140.630989] 7611.VIP VIP_STOP_STREGUSIC
                   
    [140.635014] vip2-s0:vip_stop_streaming:
    [140.635200] vip2-s0:vIP_disable_sc_path:
    [140.635207] 7611.s_stream 函数
    [140.638789] 7611.s_stream 函数使能为0
    [140.678642] 7611.VIP STOP_DMA
                   
    [140.681797] vip2-s0:清除通道编号:38
    [140.681990]  7611.vpdma list->next:-758333744,list->buf.addr:-758333760
    [140.689052] VB2:__Vb2_buf_mem_free:缓冲器0的释放平面0
    [140.695197] VB2:__Vb2_buf_mem_free:缓冲器1的释放平面0
    [140.701208] VB2:__Vb2_buf_mem_free:缓冲区2的已释放平面0
    [140.707178] VB2:__Vb2_buf_mem_free:缓冲区3的已释放平面0
    [140.713184] VB2:__Vb2_buf_mem_free:缓冲区4的释放平面0
    [140.719190] VB2:__Vb2_buf_mem_free:缓冲器5的释放平面0
    [140.725156] VB2:__Vb2_buf_mem_free:缓冲区6的释放平面0
    [140.731167] VB2:__Vb2_buf_mem_free:缓冲器7的释放平面0
    [140.737028] 7611.VIP FREE_CSC
                   7611.VIP VIP_RELEASE_STREAM
                   
    [140.742964] vip2-s0:vip_release_stream:流实例0xee801c00ec6f3800
    [140.743154] 7611.VIP VIP_RELEASE_PORT
                   
    [140.747003] vip2-s0:vip_release_port:端口实例0xed9c9b40ed9aa810

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Biser


    软件团队没有回复? 我像永远一样坐在这里!

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我向视频专家寻求帮助。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    同时、
    我看到的日志中
    [6.568719] vip2-s0:端口 A:使用 subdev adv7611 4-004C 进行捕获
    [6.824768] vip2-s0:注册为 video1的器件
    VIP 和 adv76x 驱动程序已绑定、并且/dev/video1设备已创建/可用。

    我建议您查看以下文件:
    Linux /Documentation/devicetree/bindings/media/i2c
    adv7604.txt
    和 Linux /Documentation/devicetree/bindings/media
    video-interfaces.txt

    我建议您检查 VIP 检测同步和时钟信号。
    如果不是、请检查上述文件。



    BR
    玛格丽塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请-

    1. 共享 DTS 设置
    2. 在 vIP.c 文件中、设置 debug=3 (在文件顶部、您将找到声明的变量)以捕获引导时间消息并与我们共享引导日志
    3. 在 vIP_parser_setup()中添加跟踪消息,以显示 VIP 是在嵌入式同步还是离散同步中设置
    4. 确保 adv7611的 DTS 设置包含"channels=<0>条目。  这是为了告诉 VIP 它是单通道嵌入式同步捕捉。
    5. 检查 Pinmux 设置、并查看像素时钟是否正在切换。
    6. 运行 Yavta 以 RGB24格式捕获并查看行为。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha、

    3、4、5和6:我们正在使用8位和 UYVY 格式的离散同步 siganls。是否需要提及“channels=<0>”。VIP 调试消息已在上述帖子中共享。Kinldy 帮助我继续这些设置。
    2:将执行此操作以将调试设置为3。
    1:请在下面找到 DTS 设置。
    状态="正常";
    时钟频率=<400000>;

    HDMI_RECEIVER@4C{
    兼容="Adi、adv7611";
    reg =<0x4C>;

    HPD-GPIO =<&GPIO5 11 GPIO_ACTIVE_HIGH>;

    #address-cells =<1>;
    #size-cells =<0>;

    端口@0{
    reg =<0>;
    adv7611_IN:端点{
    默认输入=<0>;
    };
    };
    端口@1{
    reg =<1>;
    adv7611_OUT:端点{
    远程端点=<&V vin3a>;
    HSYNC-ACTIVE =<0>;
    vsync-active =<0>;

    };
    };
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manisha、

    请查找包含 VIP 调试8和 yavta 命令 initiated.see 消息69秒时间戳的 dmesg 日志。

    e2e.ti.com/.../7357.log.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marka:

    我们没有发现 dt 设置或引导日志有任何问题。 这些日志暗示 VIP 解析器未在引脚上看到任何数据。 您是否仔细检查过引脚多路复用? 您是否确认了在捕获流处于活动状态时切换实际引脚。

    此致、

    Manisha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manisha、

    我们在示波器上看到了 SYNC 和数据引脚的波形、它们正在切换。

    我们在连接摄像头模块的 LCD 连接器上使用了相同的引脚。它是同步、时钟和数据信号(8位)的一对一连接。
    在这种情况下、我是否需要更改引脚多路复用?
    如果是、请建议这样做的方法。


    此致、

    Marka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Marka Reddy"]我们在连接摄像头模块的 LCD 连接器上使用了相同的引脚。它是同步、时钟和数据信号(8位)的一对一连接。

    我不确定我是否理解这一发言。

    请分享原理图。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manisha、

    我们购买了 AM57xx-EVM 评估板以及 LCD 模块和摄像头模块。

    我们将 adv7611 IC 引脚(如 HSYNC、VSYNC、CLOCK 和 DATA)连接到与 LCD 模块上的 P9连接器配对的连接器。  (摄像头模块插入的 LCD 模块上的 P9连接器)。

    由于我不会改变任何引脚配置、我假设不需要引脚多路复用、因为它已用于摄像头模块(在 P9连接器上提供了 vin3a 引脚)。

    请参阅随附的图片。

    此致、

    Marka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已经在 am5728的 vin4a 端口上测试了 adv7611。我将使用嵌入式同步模式更新 adv7611.adv7611的 adv7611驱动程序和 DTS 配置

    BR、

    Vefone  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    AM57x GP EVM 板上的摄像头连接器也由多个板多路复用器控制、这些多路复用器通过 GPIO 进行控制。 如果您看一下原始的 am57xx-evm-common.dtsi、您将看到类似以下内容:

        mt9t11x@3C{

            兼容="Aptina、mt9t111";

            reg =<0x33>;

            RESET-GPIO =<&GPIO4 17 GPIO_ACTIVE_LOW>;

            oscen-GPIO =<&GPIO5 10 GPIO_ACTIVE_HIGH_>;

            POWERDOWN-GPIO =<&GPIO5 11 GPIO_ACTIVE_LOW>;

            bufen-GPIO =<&GPIO5 12 GPIO_ACTIVE_LOW>;

            卡门-GPIO =<&GPIO6 11 GPIO_ACTIVE_LOW>;

            端口{

                CAM:端点{

                    远程端点=<&V vin3a>;

                    HSYNC-ACTIVE =<1>;

                    vsync-active =<1>;

                    pclk-sample =<0>;

                    输入时钟频率=<32000000>;

                    PIXEL 时钟频率=<96000000 >;

                };

            };

        };

    在修改后的驱动程序中、您还需要按照 mt9t11x.c 驱动程序设置 GPIO 的方式来处理这些 GPIO。

    大多数情况下、信号可能会进入摄像头板、但在由 bufen-GPIO 或 camen-gpos 切换的电路板多路复用器处会逐渐消失。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    adv7611驱动器:

    e2e.ti.com/.../adv7611.c

    adv7611初始化 shell:

    e2e.ti.com/.../adv7611.txt

    DTS 配置:

    修改 VIP 驱动程序: