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.

[参考译文] DS90UB960-Q1EVM:无法接收来自解串器的数据

Guru**** 2393725 points
Other Parts Discussed in Thread: DS90UB960-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1508776/ds90ub960-q1evm-cannot-receive-data-from-deserializer

器件型号:DS90UB960-Q1EVM
Thread 中讨论的其他器件:DS90UB960-Q1ALP

工具/软件:

HI 支持、

我们将使用 J722S/TDA4VEN + DS90UB960-Q1 EVM + LI-OV2312-FPDLINKIII-110H 来运行 edgeai-gst-apps 推理演示。 但是、我们未能收到数据。

正确操作器件树二进制叠加层(.dtbo)后、我们可以在 Linux 中检测解串器和传感器、但运行数据采集流水线将始终挂起并一直等待。

我们之前尝试了 BIST、它看起来可以正常工作、但我们仍然无法从图形生成中获取数据。

任何建议都将受到高度赞赏。 我们不会在此类评估模型上运行演示

这是以前在处理器论坛上的讨论的链接(这个网站可能有一些错误,我有时无法正确加载): e2e.ti.com/.../tda4ven-q1-keep-hanging-when-capturing-frame

此致

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

    尊敬的孟红:

    您是否对在 UB960上运行的配置脚本有任何详细信息? 目标是在 Ub960 CSI TX 上启动图形发生器、还是启动多个序列发生器图形生成器以在 TDA4上显示不同的虚拟通道流?  

    此致、

    Thomas

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

    尊敬的 Thomas:

    最后、我们希望通过 UB960驱动多个摄像头、但我们目前只是初步尝试使用一个摄像头。 我认为唯一使用的配置脚本是 此脚本 (以及 TI 的 Linux SDK 提供的器件驱动程序)。 在 Linux 中正确检测到解串器和摄像头。

    由于我们无法从摄像头获取流/数据、因此我们尝试启用图形生成器、以检查摄像头或解串器侧是否出现故障。

    我被告知、TI 仅在处理器论坛上的 Fusion Board 1 Rev.C 型号上测试了此驱动程序、但 DS90UB960-Q1-EVM 也是从 UB960解串器扩展而 来、我认为它也可以在 J722S/TDA4VEN 上运行。

    谢谢你

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

    尊敬的孟红:

    您知道我在哪里可以看到正在这里完成的 I2C 写入的任何日志吗? 查看您喜欢设置摄像机的 shell 脚本、这似乎不会专注于如何配置 ser/des (如果我在这里遗漏了一些内容、请表示歉意)。 查看 SER/DES 寄存器级别后、我们可以诊断这里发生的情况。

    此致、

    Thomas

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

    尊敬的 Thomas:

    很抱歉晚才回复。 这是从内核驱动程序转储的消息:

    # boot
    [	8.739387]: ub960, 0x01, 0x02
    [	8.755376]: ub960, 0x0c, 0x00
    [	8.768187]: ub960, 0x1f, 0x00
    [	8.773175]: ub960, 0x32, 0x01
    [	8.791183]: ub960, 0x33, 0x42
    [	8.796318]: ub960, 0x4c, 0x12
    [	8.802443]: ub960, 0xd8, 0x07
    [	8.812318]: ub960, 0xd9, 0x7f
    [	8.822440]: ub960, 0x5c, 0x8a
    [	8.832005]: ub960, 0x42, 0x71
    [	8.836661]: ub960, 0x41, 0xa9
    [	8.851169]: ub960, 0xb0, 0x08
    [	8.918602]: ub960, 0xb1, 0x08
    [	8.944103]: ub960, 0xb2, 0x08
    [	8.959283]: ub960, 0xb1, 0x09
    [	8.964574]: ub960, 0xb2, 0x08
    [	8.969817]: ub960, 0xd5, 0xe0
    [	8.977993]: ub960, 0x01, 0x01
    [	9.063227]: ub960, 0xb1, 0x08
    [	9.081629]: ub960, 0xb1, 0x09
    [	9.109095]: ub960, 0x4c, 0x01
    [	9.131672]: ub960, 0x4c, 0x12
    [	9.146758]: ub960, 0x4c, 0x24
    [	9.166955]: ub960, 0x4c, 0x38
    
    [	9.967017]: ub953, 0x0b, 0x13
    [	9.976595]: ub953, 0x0c, 0x26
    [	9.983738]: ub953, 0x02, 0x52
    [	9.988411]: ub953, 0x0d, 0x00
    [	9.998244]: ub953, 0x0e, 0x0f
    [   10.014810]: ub953, 0x06, 0x41
    [   10.023537]: ub953, 0x07, 0x28
    [   10.146691]: ub960, 0x4c, 0x12
    [   10.162446]: ub960, 0x5d, 0xc0
    [   10.171468]: ub960, 0x65, 0x94
    [   10.432043]: ub953, 0x06, 0x43
    [   10.448541]: ub953, 0x07, 0x7d
    
    # run application
    [   48.723034]: ub960, 0x72, 0x04
    [   48.728028]: ub960, 0x20, 0xf0
    

    开头是系统引导的时间戳。
    我想我已经放弃了所有的操作。 如果仍缺少一些内容、请告诉我。

    谢谢你

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

    尊敬的孟红:

    感谢您提供这些详细信息。 您知道我们是否能够在启动后对解串器进行读取/写入? 检查诊断寄存器(例如 SER/DES 锁定、接收到的视频行数/长度等)以确认错误可能出现在哪里会有所帮助。

    此致、

    Thomas

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

    尊敬的 Thomas:

    提供的消息确实已包含引导后的操作(请参阅最后两行)。 此外、我重新配置了驱动程序的调试级别以显示更多原始消息:

    # it failed because ds90ub960-q1-evm has only one deserializer, the default target is Fusion Daughter Board 2
    [    8.058615] ds90ub960 5-0036: supply vddio not found, using dummy regulator
    [    8.098152] ds90ub960 5-0036: ub960_write: cannot write register 0x01 (-121)!
    [    8.105613] ub960 (ub960_write): 0x01, 0x02
    [    8.116453] ds90ub960 5-0036: reset failed: -121
    [    8.128725] ds90ub960 5-0036: ub960_read: cannot read register 0x03 (-121)!
    [    8.135886] ds90ub960 5-0036: error -EREMOTEIO: Cannot read first register, abort
    [    8.150434] ds90ub960: probe of 5-0036 failed with error -121
    
    [    8.157061] ds90ub960 5-003d: supply vddio not found, using dummy regulator
    [    8.167950] ub960 (ub960_write): 0x01, 0x02
    [    8.173985] ds90ub960 5-003d: Found ub960 (rev/mask 0x40)
    [    8.185165] ds90ub960 5-003d: refclk valid 1 freq 28 MHz (clk fw freq 25 MHz)
    [    8.185321] ub960 (ub960_write): 0x0c, 0x00
    [    8.190764] ub960 (ub960_write): 0x1f, 0x00
    [    8.195839] ub960 (ub960_txport_select): 0x32, 0x01
    [    8.208530] ub960 (ub960_txport_write): 0x33, 0x42
    [    8.214362] ub960 (ub960_rxport_select): 0x4c, 0x12
    [    8.229207] ub960 (ub960_rxport_write): 0xd8, 0x07
    [    8.239607] ub960 (ub960_rxport_write): 0xd9, 0x7f
    [    8.245962] ub960 (ub960_rxport_write): 0x5c, 0x8a
    [    8.264005] ub960 (ub960_write): 0x42, 0x71
    [    8.268690] ub960 (ub960_write): 0x41, 0xa9
    [    8.273303] ub960 (ub960_select_ind_reg_block): 0xb0, 0x08
    [    8.279126] ub960 (ub960_write_ind): 0xb1, 0x08
    [    8.285189] ub960 (ub960_write_ind): 0xb2, 0x08
    [    8.310288] ub960 (ub960_write_ind): 0xb1, 0x09
    [    8.316382] ub960 (ub960_write_ind): 0xb2, 0x08
    [    8.322316] ub960 (ub960_rxport_write): 0xd5, 0xe0
    [    8.328466] ub960 (ub960_write): 0x01, 0x01
    [    8.402613] ds90ub960 5-003d: Wait locks done in 2 loops
    [    8.410436] ub960 (ub960_read_ind): 0xb1, 0x08
    [    8.419264] ub960 (ub960_read_ind): 0xb1, 0x09
    [    8.424896] ds90ub960 5-003d:        rx1: locked, SP: 2, EQ: 0, freq 100000000 Hz
    [    8.425080] ub960 (ub960_rxport_select): 0x4c, 0x01
    [    8.433876] ub960 (ub960_rxport_select): 0x4c, 0x12
    [    8.440066] ub960 (ub960_rxport_select): 0x4c, 0x24
    [    8.446354] ub960 (ub960_rxport_select): 0x4c, 0x38
    [    8.452671] ds90ub960 5-003d: Fixed dependency cycle(s) with /bus@f0000/i2c@20020000/i2c-mux@70/i2c@0/deser@3d/links/link@1/serializer
    [    8.519220] ds90ub960 5-003d: rx1: remote serializer at alias 0x45 (5-0045)
    
    [    9.917742] ds90ub953 5-0045: mode from strap: 0x0
    [    9.917988] ds90ub953 5-0045: Found ub953 rev/mask 0x20
    [    9.997022] ds90ub953 5-0045: i2c strap setting 3.3 V
    [    9.998593] ub953 (ub953_write): 0x0b, 0x13
    [   10.020147] ub953 (ub953_write): 0x0c, 0x26
    [   10.042366] ub953 (ub953_write): 0x02, 0x52
    [   10.047234] ub953 (ub953_write): 0x0d, 0x00
    [   10.055165] ub953 (ub953_write): 0x0e, 0x0f
    [   10.069836] ds90ub953 5-0045: ub953_calc_clkout_params 4000000000 / 4 * 1 / 40 = 25000000 (requested 25000000)
    [   10.070021] ub953 (ub953_write): 0x06, 0x41
    [   10.074556] ub953 (ub953_write): 0x07, 0x28
    [   10.084277] ds90ub953 5-0045: clkout: fc rate 4000000000, hs_clk_div 4, mul 1, div 40 = 25000000
    [   10.124372] ub960 (ub960_rxport_select): 0x4c, 0x12
    [   10.161002] ub960 (ub960_rxport_write): 0x5d, 0xc0
    [   10.166390] ub960 (ub960_rxport_write): 0x65, 0x94
    [   10.166586] ds90ub960 5-003d: rx1: client 0x60 assigned alias 0x4a at slot 0
    [   10.167062] ds90ub953 5-0045: Fixed dependency cycle(s) with /bus@f0000/i2c@20020000/i2c-mux@70/i2c@0/deser@3d/links/link@1/serializer/i2c/sensor@60
    [   10.554816] ds90ub953 5-0045: ub953_calc_clkout_params 4000000000 / 4 * 3 / 125 = 24000000 (requested 24000000)
    [   10.554852] ds90ub953 5-0045: ub953_calc_clkout_params 4000000000 / 4 * 3 / 125 = 24000000 (requested 24000000)
    [   10.554866] ds90ub953 5-0045: ub953_calc_clkout_params 4000000000 / 4 * 3 / 125 = 24000000 (requested 24000000)
    [   10.554875] ds90ub953 5-0045: ub953_clkout_set_rate 24000000 (requested 24000000)
    [   10.555042] ub953 (ub953_write): 0x06, 0x43
    [   10.560002] ub953 (ub953_write): 0x07, 0x7d
    [   10.564842] ds90ub953 5-0045: clkout: fc rate 4000000000, hs_clk_div 4, mul 3, div 125 = 24000000
    [   14.579330] ds90ub960 5-003d: ub960_get_vc_maps: VC map for port 1 is 0x04
    [   14.579360] ds90ub960 5-003d: Mapping sink 1/0 to output VC 0
    [   14.579367] ds90ub960 5-003d: Mapping sink 1/1 to output VC 1
    [   15.987014] ds90ub960 5-003d: ub960_get_vc_maps: VC map for port 1 is 0x04
    [   15.987045] ds90ub960 5-003d: Mapping sink 1/0 to output VC 0
    [   15.987052] ds90ub960 5-003d: Mapping sink 1/1 to output VC 1
    [   19.462770] ds90ub960 5-003d: ub960_get_vc_maps: VC map for port 1 is 0x04
    [   19.462800] ds90ub960 5-003d: Mapping sink 1/0 to output VC 0
    [   19.462807] ds90ub960 5-003d: Mapping sink 1/1 to output VC 1
    
    # start the out-of-the-box demo
    [   63.084416] ds90ub960 5-003d: ub960_get_vc_maps: VC map for port 1 is 0x04
    [   63.084450] ds90ub960 5-003d: Mapping sink 1/0 to output VC 0
    [   63.084458] ds90ub960 5-003d: Mapping sink 1/1 to output VC 1
    [   63.085103] ds90ub960 5-003d: Prepare for streaming
    [   63.085122] ds90ub960 5-003d: ub960_get_vc_maps: VC map for port 1 is 0x04
    [   63.085263] ub960 (ub960_rxport_write): 0x72, 0x04
    [   63.090242] ub960 (ub960_write): 0x20, 0xf0
    [   63.094515] ds90ub960 5-003d: enable TX port 0
    [   63.094819] ds90ub960 5-003d: enable RX port 1
    [   63.095074] ds90ub960 5-003d: enable RX port 1 streams 0x3
    [   63.338641] ds90ub960 5-003d: INTERRUPT_STS 2
    [   63.338802] ds90ub960 5-003d: FWD_STS 0x0
    [   63.339498] ds90ub960 5-003d: rx1 line len changed: 2000
    [   63.339663] ds90ub960 5-003d: rx1 line count changed: 1300
    
    # stop after something went wrong in demo
    [   68.299546] ds90ub960 5-003d: disable RX port 1 streams 0x3
    [   68.319890] ds90ub960 5-003d: disable RX port 1
    [   68.320355] ds90ub960 5-003d: disable TX port 0
    [   68.458654] ds90ub960 5-003d: INTERRUPT_STS 2
    [   68.458817] ds90ub960 5-003d: FWD_STS 0x0
    
    # Processor support said this is not matter
    [   68.459356] ds90ub960 5-003d: rx1 CSI error: 0xc
    [   68.463999] ds90ub960 5-003d: rx1 CSI checksum error
    [   68.469000] ds90ub960 5-003d: rx1 CSI length error

    我注意到驱动程序检测到的线路长度为2000。 但是、 该摄像头 显示分辨率应为1600 * 1300。 正确吗?

    此致

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

    尊敬的孟红:

    在这种情况下、行长度将以字节为单位显示、您知道这里使用的数据类型吗? 这个最新的日志很有用、它看起来好像有一个根据行数和行长度的变化触发的中断。 一个重要的事项是确认我们是否在上电和传感器流式传输后清除这些标志。 当传感器开始流式传输时、将触发这些标志、因为在传感器流式传输时、行数会更新到稳定状态。 您能否检查这些错误是否在上电后仍然发生、或者是否在首次读取时清除了它们?

    此致、

    Thomas

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

    尊敬的 Thomas:

    在这种情况下、行长度将以字节为单位显示、您知道这里使用的数据类型吗?

    我认为它使用 RAW10 (bggi10)格式、因此线长(2000 * 8 / 10 = 1600)似乎是正确的。 但这里的线数仍然是1300吗?

    一个重要的事项是确认我们是否在上电和传感器流式传输后清除这些标志。

    您是说"UB960_RR_RX_PORT_STS2_LINE_LEN_CHG (在寄存器0x4e 中)"标志(在最新日志中为 Line 89~90)吗?

    您能否检查这些错误是否在上电后仍然发生、或者是否在首次读取时清除了它们?

    我不确定我真的能正确地理解你的想法。 我已经多次尝试运行演示、并且行长度/计数变化(最新日志中的行89~90)没有发生乘法、只出现一次。

    谢谢你

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

    尊敬的孟红:

    在这种数据类型为 RAW10的情况下、第89/90行中的报告似乎具有正确的分辨率。 根据我的理论、当传感器开始流式传输时、行数/长度会从0变为正确的行长度/行数。 此时、寄存器0x4E 中的"线路计数变化"和"线路长度变化"标志将设置为高电平。

    如果此日志不能代表发生的情况、您是否有显示不同错误类型的其他日志的输出?

    此致、

    Thomas

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

    尊敬的 Thomas:

    我认为它们涵盖了所有 I2C 操作。 这些日志消息是否足以帮助识别问题或确定是否存在硬件故障?

    谢谢你

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

    尊敬的孟红:

    您是否详细了解这些日志中显示的其他类型的故障?

    我不确定我真的能正确地理解你的想法。 我已经多次尝试运行演示、并且行长度/计数变化(最新日志中的行89~90)没有发生乘法、只出现一次。

    [/报价]

    从提供的日志中、流式传输似乎可以、我们只需清除错误标志。 但我知道,这可能不是每一个日志的情况。

    此致、

    Thomas

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

    尊敬的 Thomas:

    我们只是猜测这个问题是否是由硬件故障引起的。

    理论上、我们应该能够在启用该流后从解串器接收该流。

    我们还尝试使用 TI ALP 中的图形发生器来绕过传感器并专注于解串器、但我们仍然无法接收任何数据。

    谢谢你  

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

    尊敬的孟红:

    从解串器的角度来看、我们似乎收到了正确的线路数和线路长度。 您可能执行的另一项检查是验证寄存器0x90 - 0x91中的 CSI-2输出是否符合 CSI-2输出端口上的帧计数。 在硬件方面、您是否有有关 TDA4连接的更多详细信息?

    此致、

    Thomas