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-Q1:Ti960+Ti953 配置

Guru**** 2874030 points

Other Parts Discussed in Thread: TSER953, DS90UB960-Q1, TDES960, DS90UB953-Q1, DS90UB960-Q1EVM, ALP, USB2ANY

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1562420/ds90ub960-q1-configuration-for-ti960-ti953

部件号:DS90UB960-Q1
主题中讨论的其他器件: TDES960DS90UB953-Q1、TSER953、 ALP、USB2ANY

工具/软件:

尊敬的 TI 团队:

我们需要 Ti960+Ti953 两种配置、您能否提供这两种配置?

配置 1:一个 Ti960 连接到四个 Ti953 器件。 传感器 (AR0234) 输出的数据格式为 4 通道 raw10、VC-id=0。

             Ti960 的输出为 4.16G、4 通道。使用虚拟 ID 来 区分四个传感器。

配置 2:一个 Ti960 连接到四个 Ti953 器件。 ISP (AP1302) 输出的数据格式为 4 通道 YUV422(8 位)、VC-ID=0

            Ti960 的输出为 4.16G、4 通道。使用虚拟 ID 来 区分四个传感器

此外、请提供两种同步方法的配置。

我们使用了来自 Ti960 的 GPIO7 的外部 SYNC 和 Ti953 的 GPIO0 的输出

2.使用 Ti960 在内部生成 25fps 帧同步信号(请提供计算频率的方法,我们将采用多个频率)、并从 Ti953 的 GPIO0 输出

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

    您好、张:

    您能回答以下问题以帮助我创建配置脚本吗?

    • 您是否使用 FPD-Link 器件 DS90UB960-Q1 和 DS90UB953-Q1 或 V3Link 器件 TDES960 和 TSER953?
    • 传感器和 ISP CSI-2 输出是否使用连续时钟?
    • 传感器和 ISP CSI-2 输出的每通道数据速率是多少?
    • 摄像头模块中是否使用外部振荡器?
    • 是否需要 953 CLK_OUT 功能来为传感器和 ISP 器件提供基准时钟? 如果需要、需要哪个时钟频率?
    • 请注意、4.16Gbps 是正向通道(953 输出/960 输入)支持的最大数据速率。 这是正向通道的预期数据速率吗? 请注意、振荡器频率存在一定的依赖性。
    • 是否打算为 960 和 953 之间的链路使用同步或异步时钟模式?
    • 您打算对 960 使用哪种转发方法? 支持以下同步转发方法:基本同步、线路交错、线路连接。
    • 使用内部生成的帧同步信号时、您打算使用多大的高/低占空比? (例如,50%高/50%低)
    • 960 输出是来自 CSI 端口 0 还是 CSI 端口 1?
    • 对于 960 CSI-2 输出、您打算使用每通道的数据速率是多少? 请注意、960 支持每通道高达 1.664Gbps 的速率、但存在一定程度上依赖于振荡器频率。
    • 您打算对 960 CSI-2 输出使用偏斜校准(初始或周期性)吗? 请注意、当每个通道的输出数据速率大于 1.6Gbps 时、通常建议这样做。
    • 应该在 960 CSI-2 输出上使用连续时钟?

    此致、

    Lucas

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

    您是否使用 FPD-Link 器件 DS90UB960-Q1 和 DS90UB953-Q1 或 V3Link 器件 TDES960 和 TSER953?
    ----- >关于这个问题、我需要首先与您确认 DS90UB960-Q1 是否可与 TSER953 配合使用?
    我们将使用 DS90UB960-Q1+ TSER953 作为工程。
    我们还会先开发 DS90UB960-Q1+ DS90UB953-Q1、
    因此我想有两种配置:Ω
    1.DS90UB960-Q1 和 DS90UB953-Q1
    2.DS90UB960-Q1 和 TSER953
    传感器和 ISP CSI-2 输出是否使用连续时钟?
    ----- >是、使用连续时钟。
    传感器和 ISP CSI-2 输出的每通道数据速率是多少?
    ----- >我们的传感器将在一些不同的模式下工作,而传感器和 ISP 的数据速率为 330Mbps/lane、248Mbps/lane 等,所以你也可以提供我更改数据速率的方法。
    摄像头模块中是否使用外部振荡器?
    ----- >是的、这是 27MHz。
    是否需要 953 CLK_OUT 功能来为传感器和 ISP 器件提供基准时钟? 如果需要、需要哪个时钟频率?
    ----- >否、不需要。
    请注意、4.16Gbps 是正向通道(953 输出/960 输入)支持的最大数据速率。 这是正向通道的预期数据速率吗? 请注意、振荡器频率存在一定的依赖性。
    ----- >是的,因为我们不能使用所有的 4.16G 带宽。
    是否打算为 960 和 953 之间的链路使用同步或异步时钟模式?
    ----- >使用异步计时。
    您打算对 960 使用哪种转发方法? 支持以下同步转发方法:基本同步、线路交错、线路连接。
    ----- >基本同步
    使用内部生成的帧同步信号时、您打算使用多大的高/低占空比? (例如,50%高/50%低)
    ----- >10%高/90%低。
    960 输出是来自 CSI 端口 0 还是 CSI 端口 1?
    ----- >从 CSI 端口 0。
    对于 960 CSI-2 输出、您打算使用每通道的数据速率是多少? 请注意、960 支持每通道高达 1.664Gbps 的速率、但存在一定程度上依赖于振荡器频率。
    ----- >是的、我们要使用的最大带宽为 960。 我们的平台可支持每通道高达 2.5G 的功率。
    您打算对 960 CSI-2 输出使用偏斜校准(初始或周期性)吗? 请注意、当每个通道的输出数据速率大于 1.6Gbps 时、通常建议这样做。
    ----- >如果每通道输出数据速率大于 1.5Gbps、则应增加偏差。
    应该在 960 CSI-2 输出上使用连续时钟?
    ----- >是、使用连续时钟。

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

    您好、张:

    感谢您提供详细信息。 我需要一些额外的时间来制作一个脚本、我希望我可以在下周中旬之前准备好一个脚本。

    此致、

    Lucas

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

    您好、张:

    请注意、V3Link 和 FPD-Link 器件不交叉兼容。 TDES960 只能与 TSER953 和 DS90UB953 一起使用、只能与 DS90UB960 或其他 FPD-Link 解串器搭配使用。

    请注意、在异步时钟模式下、正向通道数据速率取决于连接到 953 的外部振荡器的频率。 如果使用 27MHz 振荡器、则正向通道速率为 2.16Gbps、最大 CSI 带宽为 1.728Gbps。 如果所需的最大带宽为 330Mbps/通道* 4 通道= 1.32Gbps、则 27MHz 振荡器就足够了。

    下面是一个启动脚本、可用于在您的设置中配置 960 和 953。 该脚本可与 TSER953 + TDES960 或 DS90UB953 + DS90UB960 搭配使用。

    e2e.ti.com/.../Custom_5F00_960_5F00_953_5F00_Bring_5F00_Up.py

    在使用之前、请在脚本的开头填写正确的 I2C 地址和别名。 对于摄像头模块中不包含 ISP 的设置、您可以将 0x00 用于 ISP 地址和别名。

    当前、帧同步信号映射到 953 GPIO0 引脚。 如果需要将其更改为 不同的 GPIO 引脚、请告诉我。

    此致、

    Lucas

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

    您好、张:

    我还要补充一点。

    960 CSI 输出速率取决于参考时钟的频率。 速率在 1.472Gbps 至 1.6664Gbps 范围内。 偏斜校准 序列在我附加的脚本中启用。

    此致、

    Lucas

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

    大家好 、Lucas、非常感谢您的配置、我会尝试一下。

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

    您好、张:

    如果您需要任何支持、请告诉我。

    此致、

    Lucas

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

    您好、 Lucas:

    我目前正在使用第一条路由的配置进行测试。但我无法访问传感器(8 位从器件地址、16 位寄存器地址、16 位寄存器值)

    我使用了“ DS90UB960-Q1EVM“以及您提供的部分设置(如该消息最后一条所示)、我尝试访问下面的传感器寄存器:

    我可以帮我按 DS90UB960-Q1EVM 连接传感器吗?我想使用此 EVM 配置传感器和 UB960+UB953、以便进行早期开发。

    另一个问题是 、我发现在配置 SER、SENSOR、ISP 的不同地址时、可以使用 UB960 的同一寄存器 (0x5B、0x5C、0x5D、0x65、0x5E、0x66)、

    尽管您选择了不同的 RX 端口、这种 相互干扰是否会发生?

    #填写 I2C 地址和别名
    devAddr = 0x7A #960 解串器 8 位 I2C 地址
    serAddr =[0x30、0x30、0x30]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 953 串行器 8 位 I2C 地址
    serAlias =[0x1A、0x2A、0x3A、0x4A]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的串行器
    imgAddr =[0x30、0x32、0x32、0x32]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的成像仪 8 位 I2C 地址
    imgAlias =[0x1C、0x2C、0x3C、0x4C]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的成像仪
    ispAddr =[0x34、0x34、0x34、0x34]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP 8 位 I2C 地址
    ispAlias =[0x1E、0x2E、0x3E、0x4E]# 8 位 I2C aliases、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP

    导入时间
    board.WriteI2C (devAddr、0x4C、0x01)#选择 RX 端口 0


    #自动确认设置
    board.WriteI2C (devAddr、0x5B、serAddr[0]+1)#设置具有冻结功能的串行器地址
    board.WriteI2C (devAddr、0x5C、serAlias[0]+1)#设置 SER 别名和自动确认
    board.WriteI2C (devAddr、0x58、0x7A)#启用具有自动 ACK 的 I2C 直通、BC 速率= 10Mbps

    # 953 配置
    board.WriteI2C (serAlias[0]、0x02、0x73)#连续时钟、4 个通道
    board.WriteI2C (serAlias[0]、0xE、0x1E)#禁用 935 GPIO0 输入并启用输出
    board.WriteI2C (serAlias[0]、0xD、0x10)#在本地 GPIO0 上启用远程 DES GPIO0 数据
    board.WriteI2C (serAlias[0]、0x03、0x12)#模式覆盖异步外部时钟
    board.WriteI2C (serAlias[0]、0x01、0x01)#软复位
    时间睡眠 (0.01)

    # I2C 地址和别名设置
    board.WriteI2C (devAddr、0x58、0x5A)#禁用自动确认
    board.WriteI2C (devAddr、0x5B、serAddr[0])#移除冻结
    board.WriteI2C (devAddr、0x5C、serAlias[0])#禁用自动确认

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

    您好、张:

    为了通过链路与成像仪远程通信、需要在 960 寄存器 0x5D-0x6C 中配置成像仪地址和别名。 我看到您在修改后的脚本中删除了这些寄存器、因此无法与成像仪通信。 请将以下行添加到修改后的脚本中。

    board.WriteI2C (devAddr、0x5D、imgAddr[0])#配置成像仪地址
    board.WriteI2C (devAddr0x65imgAlias[0])#配置成像仪别名

    此外、请使用成像仪别名 0x1C 作为 I2C 目标地址。 960 会将发送到 0x1C 的 I2C 事务映射到地址为 0x30 的正确成像仪。 使用别名的目的是允许与多个串行器、成像仪和其他可能具有相同地址的器件进行远程通信。

    要使用 ALP 从成像仪读取 16 位寄存器 0x3000、请使用以下命令。

    board.ReadI2C (0x1C、0x30、[0x00、0x02])

    [引述 userid=“669514" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1562420/ds90ub960-q1-configuration-for-ti960-ti953/6041198

    另一个问题是 、我发现在配置 SER、SENSOR、ISP 的不同地址时、可以使用 UB960 的同一寄存器 (0x5B、0x5C、0x5D、0x65、0x5E、0x66)、

    尽管您选择了不同的 RX 端口、这种 相互干扰是否会发生?

    [/报价]

    960 寄存器 0x46-0x7F 和 0xD0-0xDF 是 RX PORT 寄存器页面的一部分。 对于 4 个 RX 端口中的每一个、这些寄存器都有唯一的副本。 寄存器 0x4C 用于选择正确的 RX 端口进行寄存器读取/写入。 我与您共享的脚本 在对寄存器 0x58-0x66 进行编程之前、正确选择具有 0x4C 的正确 RX 端口寄存器页面、因此不需要覆盖这些寄存器。

    此致、
    Lucas

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

    您好、 Lucas:

    我想澄清  前面提到的一个问题:

    摄像头模块中是否使用外部振荡器?
    ----- >是的、这是 27MHz。 (我的意思是 27MHz 用于传感器、但 UB953 使用 50MHz 外部时钟)

    因此我们应该更新配置吗?

    我遇到了一个问题 、我无法通过传感器测量 MIPI 信号输出、但 CSI0 无法测量 MIPI 信号输出、您能帮我解决这个问题吗?您能提供更多使用 UB960 和 UB953 进行调试的方法吗?  

    我现在只运行 1 个模块、MIPI 数据速率约为每通道 310Mbps、以下是 我转储的寄存器:

    UB953:

    UB960:中选择

    另一个问题:

    我现在可以使用 ALP 访问传感器、也 可以在 CSI0 上的 I2C 访问传感器和 UB953、但 CSI0 无法访问 UB960 (8 位 0x7A)、为什么这么做?

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

    您好、张:

    感谢您对外部振荡器的澄清。 如果 50MHz 与 953 一起使用、则正向通道速率为 4Gbps、最大 CSI 带宽为 3.2Gbps。 无需更改配置。

    感谢您分享寄存器转储。 我回顾并看到以下内容。

    • 953 未指示错误。
    • 960 寄存器 0x4e 指示 LINE_LEN_CHG、BUFFER_ERROR、LINE_CNT_CHG。 这些错误可能在初始化过程中发生而未被清除。 预计在初始化期间会标记一些错误。
    • 寄存器 0x73-0x76 指示 960 RX 端口接收到 1200 字节/行、2400 行/帧。
    • 寄存器 0x90-0x97 指示在 CSI 端口处检测到几个错误帧和行。 这可能是因为在仅连接一个摄像头模块的情况下启用了同步转发。
    • 寄存器 0x35 指示 CSI 端口未同步、不主动提供有效视频数据。 这解释了为何在 CSI 端口输出端看不到视频信号。

    我对脚本进行了一些修改、以便仅处理一个摄像头模块并禁用同步转发。 请尝试使用此脚本并检查问题是否已解决。

    e2e.ti.com/.../Custom_5F00_960_5F00_953_5F00_Bring_5F00_Up_5F00_1_5F00_camera.py

    脚本完成后、您能否以 1 秒的间隔重复读取以下错误/状态寄存器? 这将有助于了解是否在短突发中或连续发生任何错误。 我可以帮助您解释这些值的含义。

    • 960:0x35、0x4d、0x4e、0x55、0x56、 0x73-0x76、0x7A、0x7B、0x90-0x97
    • 953:0x52、0x55、0x56、0x5c-0x64

    我现在可以使用 ALP 访问传感器、也 可以在 CSI0 的 I2C 访问传感器和 UB953、但 CSI0 无法访问 UB960 (8 位 0x7A)、为什么要访问它?

    只是为了确认、您无法通过 Orin 访问 960 个寄存器、不过您可以通过连接到 960 的 Orin 访问 953 和传感器寄存器。 USB2ANY 同时访问 960 时是否可能存在总线争用? 或者 7 位/8 位地址转换是否不正确?

    此致、

    Lucas

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

    您好、 Lucas:

    非常感谢您的新配置!

    我 现在可以通过 CSI0 访问 960 并 通过 CSI0 测量 MIPI 信号输出、但无法通过 Jetson 平台分析信号。

    我看到我们现在使用 CSI_CTL 寄存器进行偏斜、它仅启用初始偏斜。  但在我们的平台上、它需要 同时启用初始偏斜和周期性偏斜。

    因此、这意味着我们应该使用 CSI1 而不是 CSI0、因为我看到周期性偏斜只能在 CSI_CTL2 上启用。

    如果是、能否提供新的 CSI1 配置? 包括 Visit 960+953 和 CSI1 的传感器。

    我还有一个问题想问你。

     BCC_CONFIG 寄存器 (0x58)、位 0-2 您选择 10Mbps、这意味着什么? 为什么我们不使用 50Mbps(兼容性 DS90UB953-Q1 的默认值)?

    此外,我们将有国庆节假期从 10 月 1 日至 8 日。 我将继续工作后的第九次,然后会联系你。

    谢谢!

    张庆宇

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

    您好、张:

    可以为 CSI 输出端口 0 和 1 启用定期偏斜校准。 具体取决于在寄存器 0x32 中选择的 CSI 端口寄存器页面。 我修改了 1 个摄像头和 4 个摄像头脚本以在 CSI 端口 0 上实现周期性偏斜校准。

    e2e.ti.com/.../5826.Custom_5F00_960_5F00_953_5F00_Bring_5F00_Up_5F00_1_5F00_camera.py

    e2e.ti.com/.../8540.Custom_5F00_960_5F00_953_5F00_Bring_5F00_Up.py

    50Mbps 反向通道频率是同步时钟模式的默认设置、其中串行器基准时钟从解串器通过反向通道发送。 由于您使用非同步时钟模式(其中串行器基准时钟由外部振荡器提供)、因此我编程了 10Mbps 反向通道频率。 这是非同步时钟模式的默认设置。

    我希望你有一个良好的假期休息!

    此致、

    Lucas

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

    您好、 Lucas:

    感谢 信息,我现在可以得到 4 路视频 (RAW )。

    我现在正在使用 YUV 摄像头和 ISP 工作。

    以下是我使用的配置:

    #填写 I2C 地址和别名
    devAddr = 0x7A #960 解串器 8 位 I2C 地址
    serAddr =[0x30、0x30、0x30]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 953 串行器 8 位 I2C 地址
    serAlias =[0x1A、0x2A、0x3A、0x4A]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的串行器
    imgAddr =[0x20、0x20、0x20]#成像仪 8 位 I2C 地址连接到 960 RX 端口 0、端口 1、端口 2、端口 3
    imgAlias =[0x20、0x22、0x24、0x26]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的成像仪
    ispAddr =[0x78、0x78、0x78、0x78]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP 8 位 I2C 地址
    ispAlias =[0x78、0x2E、0x3E、0x4E]# 8 位 I2C aliases、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP

    导入时间

    对于 I IN 范围 (0.4):
    如果 I=0:
    board.WriteI2C (devAddr、0x4C、0x01)#选择 RX 端口 0
    Elif i=1:
    board.WriteI2C (devAddr、0x4C、0x12)#选择 RX 端口 1
    Elif i=2:
    board.WriteI2C (devAddr、0x4C、0x24)#选择 RX 端口 2
    Elif i==3:
    board.WriteI2C (devAddr、0x4C、0x38)#选择 RX 端口 3

    #自动确认设置
    board.WriteI2C (devAddr、0x5B、serAddr[i]+ 1)#设置带有冻结功能的串行器地址
    board.WriteI2C (devAddr、0x5C、serAlias[i]+ 1)#设置 SER 别名和自动确认
    board.WriteI2C (devAddr、0x58、0x7A)#启用具有自动 ACK 的 I2C 直通、BC 速率= 10Mbps

    # 953 配置
    board.WriteI2C (serAlias[i]、0x02、0x73)#连续时钟、4 个通道
    board.WriteI2C (serAlias[i]、0xE、0x1E)#禁用 935 GPIO0 输入并启用输出
    board.WriteI2C (serAlias[i]、0xD、0x10)#在本地 GPIO0 上启用远程 DES GPIO0 数据
    board.WriteI2C (serAlias[i]、0x03、0x12)#模式覆盖异步外部时钟
    board.WriteI2C (serAlias[i]、0x01、0x01)#软复位
    时间睡眠 (0.01)

    # I2C 地址和别名设置
    board.WriteI2C (devAddr、0x58、0x5A)#禁用自动确认
    board.WriteI2C (devAddr、0x5B、serAddr[i])#移除冻结
    board.WriteI2C (devAddr、0x5C、serAlias[i])#禁用自动确认
    board.WriteI2C (devAddr、0x5D、imgAddr[i])#配置成像仪地址
    board.WriteI2C (devAddr、0x65、imgAlias[i])#配置成像仪别名
    board.WriteI2C (devAddr、0x5E、ispAddr[i])#配置 ISP 地址
    board.WriteI2C (devAddr、0x66、ispAlias[i])#配置 ISP 别名

    #960 配置
    board.WriteI2C (devAddr、0x6D、0x7C)# FPD3 CSI-2 输入模式
    board.WriteI2C (devAddr、0x6E、0x8A)#将 Fsync 信号映射到 953 GPIO0 输出
    #board.WriteI2C (devAddr、0x72、0x00)#将 I2C-ID 映射 VC 到 0
    board.WriteI2C (devAddr、0x72、I)#将 I2C-ID 映射 VC 到 I

    #帧同步: 25Hz, 10%/90%占空比
    board.WriteI2C (devAddr、0x19、0x05)# FS_HIGH_TIME_1
    board.WriteI2C (devAddr、0x1A、0x34)# FS_HIGH_TIME_0
    board.WriteI2C (devAddr、0x1B、0x2E)# FS_LOW_TIME_1
    board.WriteI2C (devAddr、0x1C、0xDF)# FS_LOW_TIME_0
    board.WriteI2C (devAddr、0x18、0x01)#启用内部生成的帧同步

    #清除错误/状态
    Time.sleep (0.1)
    board.ReadI2C (devAddr、0x4D)
    board.ReadI2C (devAddr、0x4E)
    board.ReadI2C (devAddr、0x55)
    board.ReadI2C (devAddr、0x56)
    board.ReadI2C (devAddr、0x7A)
    board.ReadI2C (devAddr、0x7B)

    # CSI 输出/转发配置
    board.WriteI2C (devAddr、0x1F、0x00)#1.472 - 1.664Gbps 串行速率
    board.WriteI2C (devAddr、0x32、0x01)#选择 CSI 端口 0
    #board.WriteI2C (devAddr、0x34、0x01)
    board.WriteI2C (devAddr、0x34、0x73)#启用偏移
    board.WriteI2C (devAddr、0x33、0x43)#启用偏移校准、4 个通道、连续时钟、启用 CSI 输出
    #board.WriteI2C (devAddr、0x21、0x04)# CSI 端口 0 上的基本同步转发
    #board.WriteI2C (devAddr、0x20、0x00)#将所有 RX 端口转发到 CSI 端口 0、启用转发
    board.WriteI2C (devAddr、0x21、0x03)# CSI 端口 0 上的基本同步转发
    board.WriteI2C (devAddr、0x20、0x00)#将所有 RX 端口转发到 CSI 端口 0、启用转发

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

    您好、张:

    我很高兴听到您的 4 摄像头 RAW10 安装工作正常。 对于 YUV 设置、我看到您对我共享的脚本进行了以下更改。

    board.WriteI2C (devAddr、0x72、I)#将 I2C-ID 映射 VC 到 I

    • 请注意、 如果传入视频流的 VC ID 为 0、则此配置仅会重新映射 VC ID。 如果传入的视频流具有任何其他 VC ID、则不会重新映射。

    board.WriteI2C (devAddr、0x34、0x73)#启用偏移

    • 此设置尝试覆盖保留的只读字段(位 6)。 周期性校准序列增加到 2^15 位。 启用单次和定期偏斜校准。
    • 我想了解为什么位 6 被置为有效、以及为什么同时启用单次偏斜校准和定期偏斜校准? 通常、对于更长序列长度的周期性偏移校准、建议设置 0x34=0x31。

    board.WriteI2C (devAddr、0x21、0x03)# CSI 端口 0 上的基本同步转发

    • 此设置启用轮循转发、而不是基本的同步转发。 这意味着数据包一旦可用就会转发到 CSI 输出、并且 不会尝试同步视频流量。

    此致、

    Lucas

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

    您好、 Lucas:

    我现在可以获得 4 路 YUV 成功,非常感谢!

    我想问、如果我不 清除错误/状态、会影响 UB960-UB953 功能吗?

    下面是我用于 4 YUV 的配置

    “"</s>“
    版权所有 2025 Texas Instruments Incorporated。 保留所有权利。

    重要事项:您对本软件的使用仅限于这些特定权利
    根据用户之间软件许可协议的条款授予
    已下载软件、其雇主(必须是您的雇主)和
    Texas Instruments Incorporated (“许可“)。 您不得使用本软件
    除非您同意遵守许可证的条款。 许可证限制您的
    使用并且您承认、不得修改、复制或复制本软件
    通常不会使用 Texas Instruments 微控制器
    集成到您的产品中。 除上述用途外、您还可以
    不使用、复制、复制、制作衍生作品、修改、分发、
    执行、展示或销售本软件和/或其文档
    安全。

    您进一步承认并同意本软件和文档是
    “按原样“提供、不提供任何明示或暗示的保证
    包括但不限于对适销性、所有权、
    不侵权且适合特定用途。 在任何情况下都不得得克萨斯州
    根据合同、文书或其许可应承担责任或义务、
    疏忽、严格责任、贡献、违反保修或其他法律规定
    公平理论任何直接或间接损害或费用、包括但不包括在内
    仅限于任何附带、特殊、间接、惩罚性或后果性
    损失、利润损失或数据损失、替代货物采购成本、
    技术、服务或第三方的任何索赔(包括但不包括
    不限于任何抗辩)或其他类似费用。

    如果您对使用本软件的权利有任何疑问、
    请通过 www.ti.com 联系 Texas Instruments Incorporated。
    “"</s>“
    #填写 I2C 地址和别名
    devAddr = 0x7A #960 解串器 8 位 I2C 地址
    serAddr =[0x30、0x30、0x30]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 953 串行器 8 位 I2C 地址
    serAlias =[0x1A、0x2A、0x3A、0x4A]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的串行器
    imgAddr =[0x20、0x20、0x20]#成像仪 8 位 I2C 地址连接到 960 RX 端口 0、端口 1、端口 2、端口 3
    imgAlias =[0x20、0x22、0x24、0x26]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的成像仪
    ispAddr =[0x78、0x78、0x78、0x78]#连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP 8 位 I2C 地址
    ispAlias =[0x40、0x42、0x44、0x46]# 8 位 I2C 别名、用于读取/写入连接到 960 RX 端口 0、端口 1、端口 2、端口 3 的 ISP

    导入时间

    对于 I IN 范围 (0.4):
    如果 I=0:
    board.WriteI2C (devAddr、0x4C、0x01)#选择 RX 端口 0
    Elif i=1:
    board.WriteI2C (devAddr、0x4C、0x12)#选择 RX 端口 1
    Elif i=2:
    board.WriteI2C (devAddr、0x4C、0x24)#选择 RX 端口 2
    Elif i==3:
    board.WriteI2C (devAddr、0x4C、0x38)#选择 RX 端口 3

    #自动确认设置
    board.WriteI2C (devAddr、0x5B、serAddr[i]+ 1)#设置带有冻结功能的串行器地址
    board.WriteI2C (devAddr、0x5C、serAlias[i]+ 1)#设置 SER 别名和自动确认
    board.WriteI2C (devAddr、0x58、0x7A)#启用具有自动 ACK 的 I2C 直通、BC 速率= 10Mbps

    # 953 配置
    board.WriteI2C (serAlias[i]、0x02、0x73)#连续时钟、4 个通道
    board.WriteI2C (serAlias[i]、0xE、0x1E)#禁用 935 GPIO0 输入并启用输出
    board.WriteI2C (serAlias[i]、0xD、0x10)#在本地 GPIO0 上启用远程 DES GPIO0 数据
    board.WriteI2C (serAlias[i]、0x03、0x12)#模式覆盖异步外部时钟
    board.WriteI2C (serAlias[i]、0x01、0x01)#软复位
    时间睡眠 (0.01)

    # I2C 地址和别名设置
    board.WriteI2C (devAddr、0x58、0x5A)#禁用自动确认
    board.WriteI2C (devAddr、0x5B、serAddr[i])#移除冻结
    board.WriteI2C (devAddr、0x5C、serAlias[i])#禁用自动确认
    board.WriteI2C (devAddr、0x5D、imgAddr[i])#配置成像仪地址
    board.WriteI2C (devAddr、0x65、imgAlias[i])#配置成像仪别名
    board.WriteI2C (devAddr、0x5E、ispAddr[i])#配置 ISP 地址
    board.WriteI2C (devAddr、0x66、ispAlias[i])#配置 ISP 别名

    #960 配置
    board.WriteI2C (devAddr、0x6D、0x7C)# FPD3 CSI-2 输入模式
    board.WriteI2C (devAddr、0x6E、0x8A)#将 Fsync 信号映射到 953 GPIO0 输出
    #board.WriteI2C (devAddr、0x72、0x00)#将 I2C-ID 映射 VC 到 0
    board.WriteI2C (devAddr、0x72、I)#将 I2C-ID 映射 VC 到 I

    #帧同步: 25Hz, 10%/90%占空比
    board.WriteI2C (devAddr、0x19、0x05)# FS_HIGH_TIME_1
    board.WriteI2C (devAddr、0x1A、0x34)# FS_HIGH_TIME_0
    #board.WriteI2C (devAddr、0x1B、0x2E)# FS_LOW_TIME_1 25fps
    #board.WriteI2C (devAddr、0x1C、0xDF)# FS_LOW_TIME_0 25fps
    board.WriteI2C (devAddr、0x1B、0x26)# FS_LOW_TIME_1 30fps
    board.WriteI2C (devAddr、0x1C、0x26)# FS_LOW_TIME_0 30fps
    #board.WriteI2C (devAddr、0x1B、0x7C)# FS_LOW_TIME_1
    #board.WriteI2C (devAddr、0x1C、0xFB)# FS_LOW_TIME_0
    board.WriteI2C (devAddr、0x18、0x01)#启用内部生成的帧同步

    #清除错误/状态
    Time.sleep (0.1)
    board.ReadI2C (devAddr、0x4D)
    board.ReadI2C (devAddr、0x4E)
    board.ReadI2C (devAddr、0x55)
    board.ReadI2C (devAddr、0x56)
    board.ReadI2C (devAddr、0x7A)
    board.ReadI2C (devAddr、0x7B)

    # CSI 输出/转发配置
    board.WriteI2C (devAddr、0x1F、0x00)#1.472 - 1.664Gbps 串行速率
    board.WriteI2C (devAddr、0x32、0x01)#选择 CSI 端口 0
    #board.WriteI2C (devAddr、0x34、0x01)
    board.WriteI2C (devAddr、0x34、0x31)#启用偏移
    board.WriteI2C (devAddr、0x33、0x43)#启用偏移校准、4 个通道、连续时钟、启用 CSI 输出
    #board.WriteI2C (devAddr、0x21、0x04)# CSI 端口 0 上的基本同步转发
    #board.WriteI2C (devAddr、0x20、0x00)#将所有 RX 端口转发到 CSI 端口 0、启用转发
    board.WriteI2C (devAddr、0x21、0x03)# CSI 端口 0 上的基本同步转发
    board.WriteI2C (devAddr、0x20、0x00)#将所有 RX 端口转发到 CSI 端口 0、启用转发

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

    您好、张:

    可以听到 4 个摄像头 YUV 设置正常工作。

    如果您删除寄存器读取以清除错误/状态、它不会影响操作。 请记住、如果您稍后需要检查错误/状态寄存器、则需要忽略第一次回读。

    在初始化期间、预计会标记多个错误、而不会指示任何实际问题。 需要读回寄存器才能清除这些标志。

    此致、

    Lucas

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

    您好、 Lucas:

    感谢您的解释!

    我 对同步还有另一个要求。

    我将使用两个 UB960 来连接总共 8 个摄像头、所有这些摄像头都应该同步。

    因此、我想使用 Xavier NX 向 UB960 的 GPIO4 提供触发信号、并从 Ti953 的 GPIO0 输出。

    您能否提供其配置、而不是 通过 UB960 生成帧同步信号?

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

    您好、张:

    请使用以下脚本使用外部帧同步进行配置。

    e2e.ti.com/.../Custom_5F00_960_5F00_953_5F00_Bring_5F00_Up_5F00_Ext_5F00_FrameSync.py

    此致、

    Lucas