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/TMDSEVM572X:流式传输时出现 I2C 超时错误

Guru**** 2560180 points
Other Parts Discussed in Thread: TMDSEVM572X, AM5718, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594788/linux-tmdsevm572x-i2c-timeout-error-while-streaming

器件型号:TMDSEVM572X
主题中讨论的其他器件: AM5718AM5728

工具/软件:Linux

您好!

我将 TMDSEVM572x 摄像头模块与 AM572x 评估模块搭配使用。 我不使用 LCD 模块、而是直接将摄像头模块放置在 P16接头 EVM 上。  

我进行了相应的引脚多路复用配置。

我能够加载 i2c 驱动程序。 请查找日志。

以下命令的结果是-

lsmod mt9t11x
mt9t11x 14769 1.


v4l2-ctl --list-devices
wbcap (平台:omapwb-cap):
/dev/video11

omapwb-M2M (平台:omapwb-M2M):
/dev/video10

VIP (平台:VIP):
/dev/video1

VPE (平台:VPE):
/dev/video0


dmesg |grep mt9t11x
[8.891174] mt9t11x 4-003c:输入时钟频率:32000000
[8.896338] mt9t11x 4-003c:像素时钟频率:96000000
[8.902394] mt911x 4-003c:GPIO 查找以进行使用者复位
[8.902402] mt9t11x 4-003c:使用器件树进行 GPIO 查找
[8.902465] of_get_named_gpio_FLAGS:已解析节点'/ocp/i2c@4807c000/mt9t11x@3C[0]的'reset-GPIO'属性-状态(0)
[8.902484] mt9t11x 4-003c:GPIO 查找用于消费类断电
[8.902492] mt911x 4-003c:使用器件树进行 GPIO 查找
[8.902515] of_get_named_gpio_FLAGS:解析了节点'/ocp/i2c@4807c000/mt9t11x@3C[0]的'POWERDOS-GPIO'属性-状态(0)
[8.902531] mt9t11x 4-003c:用于消费类示波器的 GPIO 查找
[8.902539] mt9t11x 4-003c:使用器件树进行 GPIO 查找
[8.902562] of _get_named_gpio_FLAGS:解析了节点'/ocp/i2c@4807c000/mt9t11x@3C[0]的'oscen-GPIO'属性-状态(0)
[8.902577] mt9t11x 4-003c:消费类 bufen 的 GPIO 查找
[8.902583] mt9t11x 4-003c:使用器件树进行 GPIO 查找
[8.902600] of _get_named_gpio_FLAGS:解析了节点'/ocp/i2c@4807c000/mt9t11x@3C[0]的'bufen-GPIO'属性-状态(0)
[8.902613] mt9t11x 4-003c:使用方面的 GPIO 查找
[8.902618] mt9t11x 4-003c:使用器件树进行 GPIO 查找
[8.902635] of _get_named_gpio_FLAGS:解析了节点'/ocp/i2c@4807c000/mt9t11x@3C[0]的'camon-GPIO'属性-状态(0)
[8.957907] mt9t11x 4-003c:mt9t111芯片 ID 2680
[8.964024] mt9t11x 4-003c:已注册 mt9t11x 传感器驱动程序!!
[11.537880] vip2-s0:端口 A:使用 subdev mt9t11x 进行捕获

gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 640、height=(int) 480'! VPE num-input-buffers=8! 排队! fakesink
正在将管道设置为暂停...
管道处于活动状态,不需要 PREROLL...
正在将管道设置为正在播放...
新时钟:GstSystemClock
错误:来自元素/GstPipeline:流水 线0/GstV4l2Src:v4l2src0:无法从资源读取。
其他调试信息:
./../../gst-plugins-good-1.6.3/sys/v4l2/gstv4l2bufferpool.c (1055):gst_v4l2_buffer_pool_poll ():/GstPipeline0/GstV4l2Src:v4l2src0:
轮询错误1:远程 I/O 错误(121)
执行在0:00:05.083971472之后结束
正在将管道设置为暂停...
正在将管道设置为就绪...

(GST-LAUNCH-1.0:1084):GStreamer-critical **:GST_MINI_OBJECT_UNREF:断言'mini_object->refcount >0'失败
正在将管道设置为 NULL ...
正在释放管道...

之后、我由于"控制器超时"而出错


dmesg
2:1.0/0003:0461:4D81.0003/输入/输入2
[15.219167] hid-generic 0003:0461:4D81.0003:输入:USB HID v1.11鼠标[USB 光电鼠标]、位于 usb-xhci-hcd.1.auto-1.2/input0上
[16.076309] cpsw 48484000。以太网 eth0:链路向上- 1Gbps/全-流控制 Rx/TX
[16.084226] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
[20.708104] RTC-ds1307 2-006F:写入 secs=56、mins=25、hours=11、mDay =11、mon=4、 yage=117、wday =4
[20.708120] RTC-ds1307 2-006F:写入:D6 25 11 0d 11 05 17
[20.708799] RTC-ds1307 2-006F:读取:D6 25 11 2D 11 05 17
[20.708815] RTC-ds1307 2-006F:读取 secs=56、mins=25、hours=11、mDay =11、mon=4、 yage=117、wday =4
[24.044977] omap_hwmod:mu1_dsp1:_wait_target_disable 失败
[24.057772] OMAP_hwmod:mu0_dsp1:_wait_target_disable 失败
[24.084723] omap_hwmod:mu1_dsp2:_wait_target_disable 失败
[24.098515] OMAP-hwmod:mu0_dsp2:_wait_target_disable 失败
[303.844385] EXT4-FS (mmcblk0p2):自上次 fsck 以来的错误计数:1.
[303.850337] EXT4-FS (mmcblk0p2):时间1493976321时的初始错误:__ext4_get_inode:4094:inode 43501:块164490
[303.861222] EXT4-FS (mmcblk0p2):时间1493976321时的最后一个错误:__ext4_get_inode:4094:inode 43501:块164490
[304.406568] OMAP_i2c 4807c000.i2c:仲裁丢失
[305.824434] OMAP_i2c 4807c000.i2c:控制器超时
[306.874437] OMAP_i2c 4807c000。i2c:控制器超时
[307.924466] OMAP_i2c 4807c000.i2c:控制器超时
[308.974465] OMAP_i2c 4807c000.i2c:控制器超时

请指导我执行 more.e2e.ti.com/.../log_5F00_camera.zip 所需的操作

谢谢。

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

    您是否尝试使用 yavta 验证视频捕获-

    yavta -C60 -fYUV -Fvout_640x480_yuiv.yUV -s640x480 /dev/video1 

     

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

    大家好、Manisha、

    感谢您的回复。

    我尝试了 yavta、得到了以下结果-

    器件/dev/video1已打开。
    `平台:VIP'上的器件`VIP'是一个视频输出(无 mPlanes)器件。
    视频格式集:YUYV (56595559) 640x480 (STRIDE 1280)字段无缓冲区大小614400
    视频格式:YUYV (56595559) 640x480 (STRIDE 1280)字段无缓冲区大小614400
    请求8个缓冲器。
    长度:614400偏移量:0时间戳类型/源:单声道/EOF
    映射到地址 bbb6d7b000的 Buffer 0/0。
    长度:614400偏移量:614400时间戳类型/源:单声道/EOF
    缓冲区1/0映射在地址 bb6ce5000。
    长度:614400偏移量:1228800时间戳类型/源:单声道/EOF
    缓冲区2/0映射在地址 bb6c4f000处。
    长度:614400偏移量:1843200时间戳类型/源:单声道/EOF
    缓冲区3/0映射在地址 bb6bb9000。
    长度:614400偏移量:2457600时间戳类型/源:单声道/EOF
    缓冲区4/0映射在地址 b6b23000。
    长度:614400偏移量:3072000时间戳类型/源:单声道/EOF
    地址0xb6a8d000处映射的缓冲区5/0。
    长度:614400偏移量:3686400时间戳类型/源:单声道/EOF
    缓冲区6/0映射在地址0xb69f7000上。
    长度:614400偏移量:4300800时间戳类型/源:单声道/EOF
    地址0xb6961000处映射的缓冲区7/0。
    无法开始流式传输:远程 I/O 错误(121)。
    8个缓冲器被释放。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有时还会显示错误-
    无法开始流式传输:连接超时(110)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有更新吗?

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

    您好!

    我还想补充 一点、我怀疑与摄像头模块一起使用的5个 GPIO 的引脚多路复用配置也存在问题。 由于我已将这些 GPIO 更改为新的引脚配置、因此我仅用两个文件进行更改-

    1)"mux_data.h"..........位于 board-support/u-boot-2016.05+gitAUTOINC+4db46a6bbbd-g4db46a6bbbbd/board/ti/am57xx 中

    2)"am57xx-beagle-x15-common.dtsi"............位于 board-support/linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/arch/arm/boot/dts。

    McASP1_AXR8替换为 GPMC_AD12。

    McASP1_AXR9替换为 GPMC_AD13。

    McASP1_AXR10替换为 GPMC_AD14。

    McASP1_AXR11替换为 GPMC_AD15。

    GPIO6_11被 GPMC_A13取代。

    您能否建议我、如果有任何其他文件需要配置为 GPIO 配置?

    附加 mux_data.h、am57xx-beagle-x15-common.dtsi。

    e2e.ti.com/.../am57xx_2D00_beagle_2D00_x15_2D00_common.txte2e.ti.com/.../mux_5F00_data.txt

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

    请在启用 VIP 调试的情况下共享 dmesg 日志。 您可以使用以下命令从 VIP 启用调试日志-

    echo 4 >/sys/module/ti_vip/parameters/debug

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

    您好!

    请找到随附的启用 VIP 的 dmesg 日志。

    此外,请澄清我的两个疑问。

    1) 1)我在上面使用的步骤和我在 pinmux 配置中使用的两个文件是足够正确的? 或其他需要做的事情。

    2) 2)在 mux_data.h 文件中、Bydefault GPIO 引脚被声明为输入-

    {McASP1_AXR8、(M14 | PIN_INPUT)}、// McASP1_axr8.GPIO5_10 for OSC_EN */
    {McASP1_AXR9、(M14 | PIN_INPUT)}、// McASP1_axr9.GPIO5_11 for CAM_PWRDN*/
    {McASP1_AXR10、(M14 | PIN_INPUT)}、// McASP1_axr10.GPIO5_12 for buff _EN*/
    {McASP1_AXR11、(M14 | PIN_INPUT_PULLUP)}、// McASP1_axr11.GPIO4_17用于复位*/
    {GPIO6_11、(M0 | PIN_INPUT_PULLUP)}、// GPIO6_11.GPIO6_11用于 LCD 模块中的 Cam_en *

    但我认为这些必须从 BeagleBoard 输出到摄像头模块。 因此、我更改了-

    {GPMC_AD12、(M14 | PIN_OUTPUT)}、// GPMC_AD12.OSC_EN GPIO1_18*/
    {GPMC_AD13、(M14 | PIN_OUTPUT)}、// GPMC_ad13.buff _EN GPIO1_19*/
    {GPMC_AD14、(M14 | PIN_OUTPUT)}、// GPMC_ad14.GPIO GPIO1_20*/
    {GPMC_AD15、(M14 | PIN_OUTPUT)}、// GPMC_ad15.CAM_PWR GPIO1_21*/
    {GPMC_A13、(M14 | PIN_OUTPLUP)}、// GPMC_A13.GPIO2_3 for Cam_en */

    对吗?

    e2e.ti.com/.../log_5F00_camera_5F00_vip.zip

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

    您好!

    在我运行 yavta 命令后、

    dmesg 日志文件随附在 here-e2e.ti.com/.../dmesg_5F00_vip_5F00_after_5F00_error.zip 上

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这有点紧急、我现在就卡在这里。
    请多多包涵。 感谢你的帮助。
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rahul、

    我在前面漏掉了您没有使用 LCD 模块、而是直接将摄像头板连接到 P16连接器。 基板(Beagle X15板) 不能用于将摄像机模块直接连接到 P16。 P16中缺少 I2C 连接器。 请参阅此处提供的电路板原理图文件、以查看引脚连接- www.ti.com/.../TMDSEVM572x 文档

    如果您使用的是 GPEVM、则 LCD 板必须连接到摄像头、否则、如果您不想使用 LCD 模块、但希望将摄像头直接连接到基板、则可以使用 AM5728/AM5718 IDK EVM。

    此致、

    Manisha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经考虑了这一点。
    我已经配置了 p16接头支持的 i2c 引脚、还使用基于 i2c 的外部传感器验证了这些 i2c 引脚。 问题出在5个 GPIO 上。 我已将默认 GPIO 替换为其他 GPIO。 您可以验证我之前发送给您的两个文件"mux_data.h"和"am57xx-beagle-x15-common.dtsi"。 但这些并不反映我配置的输出。 我分配了适当的引脚多路复用、但没有结果。 我该怎么做? 如何切换 P16接头的 GPIO?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我详细说明我所做的工作、我制作了一个小 PCB、用于将来自摄像头模块的信号(i2c 和 GPIO)与 BeagleBoard X15 P16接头相连。 因此、我不会对硬件连接产生任何问题。 也不是 i2c 引脚、它们配置正确。
    我只想知道如何配置新的 GPIO、而不是使用默认的 GPIO。 我还提到了这些 GPIO。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有更新吗?

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

    您好!

    我还检查了用作 AM57xx EVM 的 BeagleBoard x-15原理图。

    我配置为新 GPIO (GPMC_AD12至 GPMC_AD15)的引脚用作(VIN3A_D12至 VIN3A_D15)。

    这些引脚通过10K 电阻器从外部上拉/下拉。 这是不能反映我在 am57xx DTS 文件中的更改的原因吗?

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

    您好!

    我知道你们也必须忙于处理他人的问题。

    我提供了有关我的问题的所有数据。 请多多包涵。 我想我在边缘、让摄像机朝上。

    谢谢。

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

    这里似乎讨论了这个问题:
    e2e.ti.com/.../2193908

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

    该线程与我在这里询问的内容是分离的。
    此时、需要使用不同的方法来切换 GPIO。

    在这里、我要求已成功加载 i2c 驱动程序、但无法运行摄像头。
    我已经讨论了我获得的步骤和日志。 我出了什么问题? 如果我的步骤中出现问题、请向我提出建议。

    此外,请在这个特定的问题上澄清我的问题--
    要配置 P16报头的新 GPIO,是否只需要两个文件?(mux_data.h 和 am57xx-beagle-x15-common.dtsi)。

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

    您好!

    有更新吗?

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

    MUX_DATA.c 和.dtsi 文件应该是所有需要更改的文件。 您能否在 u-boot 中停止并使用 md.l 命令查看您所使用的 GPIO 的 pinmux、以确保它已针对 GPIO 进行多路复用? 然后在引导内核时也是如此、但使用 devmem2转储寄存器。

    Steve K.

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

    您好、Steve、

    请查找日志。

    这些引脚是否在引导后复位?

    e2e.ti.com/.../md.l-logs.zip