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.

[参考译文] DS90UB953-Q1:低温下的 CSI_ERR 标志

Guru**** 3001220 points

Other Parts Discussed in Thread: DS90UB953-Q1, DS90UB954-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1660390/ds90ub953-q1-csi_err-flags-at-low-temperatures

器件型号: DS90UB953-Q1
Thread 中讨论的其他器件: DS90UB954-Q1、 ALP

您好:

在摄像头设计中将 DS90UB953-Q1 串行器与 OV10652 成像仪配合使用时、我注意到五个不同的摄像头在 CSI_ERR_CNT (0x5C) 上显示错误、并 在–40C 条件下测试 CSI_ERR_DLANE01 (0x5E) 或 CSI_ERR_DLANE23 (0x5F) 寄存器时显示错误。

例如、对于一个摄像头、轮询寄存器会显示以下内容:

CSI_ERR_CNT (0x5C)= 4A

CSI_ERR_DLANE01 (0x5E)= 60

 

我的问题是:可以采取哪些措施来更好地理解这些错误的原因、以及可以采取哪些措施来排除故障原因?

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

    您好 Gerald、

    您是否根据 953 数据表第 75 页和第 76 页实施了温度斜坡初始化代码? 此外、为了缩短系统启动时间、我们建议对 0x0A = 0x12 进行编程。 有关更多详细信息、请参阅数据表的第 7.3.1.1 节“系统初始化“。

    我的问题是:可以采取什么措施来更好地理解这些错误的原因、以及可以采取什么措施来解决原因?

    串行器上报告的这些 CSI 错误源于从传感器传入的数据。 具体来说、错误寄存器 0x5E 和 0x5F 会报告与输入 SER 的任何特定 4 个 CSI 数据通道相关的错误。 您的摄像头是否也具有诊断功能、是否报告了任何错误?

    为了更好地进行故障排除、我首先建议实施温度升降脚本并在初始化期间对 0x0A = 0x12 进行编程。 如果仍然遇到问题、最好在运行期间获取 SER 和 DES 的完整寄存器转储并发送在此处进行审查。

    您还能否提供测试设置和过程的更多详细信息、例如:

    是否将温度降至–40°C、然后打开 953 串行器? 还是在 953 上电时降低温度? SER 和 DES 是否一起存在于温度室中?  

    此致、

    Ethan Woods

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

    尊敬的 Ethan:

    我们尚未实现温度斜坡代码、因为在测试期间、我们无法动态设置示例中所示的值。 我将尝试根据起始芯片温度手动设置正确的配置、看看在–40°C 下这是否会影响结果。 我还可以尝试将 看门狗计时器加速设置为 0x0A = 0x12。

    我们测试了一批摄像头、发现 5 个摄像头在设置 CSI_ERR 标志方面存在类似问题、因此我将在温度转储 SER 和 DES 并发送以供审核。

    对于测试程序、测试室斜升至 25°C、然后斜升至 85°C、然后斜升至–40°C、然后斜升至 25°C。 在每个温度下、摄像头与板载串行器一起上电并进行初始化、而解串器则保持在暗室之外。 在温度下获取数据后、摄像头(和串行器)会断电、然后再按顺序斜升到下一个温度。

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

    您好 Gerald、

    感谢您为我提供有关测试设置的更多信息。 鉴于此、温度变化不应该是这里的主要问题、因为 SER 已经在温度下通电。 您可以尝试手动设置它、但如果没有实际的温度斜坡发生、那么这应该不是问题。 看门狗计时器加速应该有所帮助、但我认为它对于这个特定的测试也没有帮助。 为了在较低/较高斜坡温度下实现链路稳定性、这些变化更为明显。

    进一步深入探究您看到的特定 CSI 错误后、CSI_ERR_DLANE01/CSI_ERR_DLANE23 寄存器会在传入串行器的数据时标记错误。 也就是说、 通常意味着图像传感器配置不正确并输出错误数据、或者 MIPI 布线不正确、这会导致串行器接收损坏的数据。

    您知道 OV10652 是否具有任何诊断功能? 如果是、是否报告了任何错误? 我也很期待您的寄存器转储。 如果可能、一个有效和失败的情况是理想的。

    此致、

    Ethan Woods

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

    Ethan、

    我有两个摄像头的转储 SER/DES 信息、两者都在–40°C 和 25°C 下进行比较。 我希望获得更多两个单元的数据、并在可用时分享这些数据。  

    e2e.ti.com/.../SERDES-Dump-Summary_5F00_2.xlsx

    OV10652 成像仪具有也在监控的诊断寄存器、但在测试过程中我没有发现任何问题。

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

    您好 Gerald、

    感谢您获得寄存器转储。 给我一两天时间来看看他们,看看我能找到什么。

    此致、

    Ethan Woods

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

    您好 Gerald、

    感谢您的耐心。 我已经移交所提供的寄存器转储。 有关反馈和一些问题、请参阅下文。

    寄存器转储反馈:

    在解串器上(假设 DS90UB954-Q1、因为未说明、但寄存器 ID 相关)、我没有发现任何严重问题。 发生故障的情况和工作情况之间的主要区别是 SENSOR_STS_0 (0x51) 寄存器和 SENSOR_STS_3 (0x54) 寄存器中的串行器警报位被置为有效。 寄存器 0x51 中标记的串行器警报是 CSI_ALARM 和 LINK_DETECT_ALARM。 在寄存器 0x54 中、U04 十六进制代码标记了 CSI_CNTRL_ERR、而 U13 十六进制代码标记了 CSI_SYNC_ERR。

    与这两种温度情况类似、解串器报告了线长变化和线数更改标志、这意味着在传入解串器的数据中检测到线长/计数发生变化。 通常、这之后是某种标记的错误、但在这两种情况下、解串器都未从串行器报告任何 CSI 错误或任何其他类型的错误。  

    在串行器上、您可以在这里看到寄存器 0x5E 和 0x5F 中标记的错误。 不同温度之间不同的错误是 SENSOR_STATUS (0x57) 寄存器中的 T_SENSOR_LO 标志、SENSOR_T (0x5A) 寄存器中的 TEMP_MIN 位字段差异[2:0]、然后 CSI_ERR_DLANE01/23 (0x5E/0x5F) 寄存器中已经看到错误。 温度传感器标志与器件的内部温度相关、因此预计这些标志将在最低工作温度下进行标记。 除这些错误外、在 CSI_ERR_STATUS (0x5D) 寄存器中未报告其他 CSI 错误。 这可能指向进入串行器的数据问题。

    在为后续步骤提供一些建议之前、您能否帮助回答以下问题:

    • 您能详细介绍一下您的系统吗? 什么是解串器? 您当前使用的 SER 和 DES 之间的电缆和长度是多少? 什么是成像仪分辨率、fps、数据类型和消隐(用于带宽估算)?
    • 错误标志之外的故障是什么样子的? 您是否观察到解串器的视频输出并看到任何视觉干扰? 由于解串器未报告 CSI 错误、我想看看 SERDES 链之后的视频输出是否有干扰。
    • 串行器电路板的故障率是多少? 测试了多少个不同的板? 他们是全部失败了还是只有一部分失败了?
    • 如果在低温环境下有一块工作的电路板和可正常工作的串行器、您能否将出现故障的串行器更换到工作的电路板上、看看它是否会出现故障?
    • 您是否测试过串行器上的图案生成 (PATGEN) 以绕过成像仪? 如果是、解串器或串行器是否报告任何错误?
    • 这些错误是一次性的吗? 如中所示、一旦它们在读取时被清除、它们是否会返回?
    • 如果热像仪的分辨率或数据速率降低、是否会重现此问题?
    • 如果视频带宽足够低(低于成像仪 1.6Gbps)、SER 和 DES 上的 CSI 数据速率从 800 Mbps(当前数据速率)降低到 400 Mbps 是否表现出任何改善?
    • 根据我之前的理解、在温度室达到所需温度之前、串行器电路板不会通电。 这是正确的吗? 在此温度下、您是否遇到过锁定问题、或者错误仅与 CSI 相关?

    期待您的回答。

    此致、

    Ethan Woods

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

    尊敬的 Ethan:

    感谢您查看数据并提供此反馈。  听起来这可能是由于进入串行器的数据引起的问题。

    至于您的问题

    • 解串器确实是 DS90UB954-Q1。 摄像头模块与 OV10652 成像仪位于同一电路板上、包含 953 串行器。 在测试设置中、摄像头通过 Fakra 电缆连接到带有 954 解串器的单独电路板、该解串器可通过 USB 连接到计算机进行监测。 fakra 电缆长度约为 7m。 成像仪 分辨率 为 1824x940 @ 36fps、 12 位组合 HDR 原始数据类型、620px 水平消隐和 291px 垂直消隐。
    •  当出现错误时、我没有注意到图像中的任何视觉干扰。
    • 我总共测试了 52 个摄像头、5 个摄像头的串行器上显示了与 CSI 相关的错误。 5 个摄像头中的每一个都在三个不同的工作台上(不同的电缆,解串器板和计算机)进行了测试、以排除潜在的基准设置问题、并能够复制这些错误。
    • 我可以尝试这种方法、但此时我们还没有对摄像机执行任何破坏性测试。
    • 这听起来也是一个有助于缩小原因范围的好主意。 我假设这是在第 6.7.2.1 节中 — 此测试是否有推荐的配置?
    • 是的、如果摄像头仍在–40°C 下进行测试、则会返回错误
    • 我将尝试进行测试、并在下周初分享测试结果。
    • 我也会尝试这种方法
    • 是的、测试通常以这种方式进行。  整个摄像头在–40°C 的温度下通电、在测试期间会监控板载串行器。 在这些测试期间、我没有看到成像仪或解串器的错误、也没有看到串行器锁定的其他错误。

    下周初、我应该能够尝试您建议的一些测试并分享结果。 感谢您发送编修。

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

    您好 Gerald、

    感谢您如此快速地回答问题、感谢您的反馈。

    由于您在测试期间没有看到输出视频流出现任何视觉中断、因此此处的主要问题是确定导致串行器上标记错误的原因。 这是正确的吗?

    鉴于某些摄像头模块仅存在故障、PATGEN 可以是一个“绕过“摄像头模块并确定串行器本身是否存在任何问题的好工具。  

    这听起来也是一个帮助缩小原因范围的好主意。 我假设这在第 6.7.2.1 节中 — 此测试是否有推荐的配置?

    模式生成可用于创建在串行器上生成的视频流、实质上是将成像仪从测试中移除。 PATGEN 配置需要对 953 上的间接寄存器映射进行一组特定的 I2C 写入。 有关 PATGEN 的代码示例、请参阅 953 数据表的第 6.6.4 节。 此外、如果您可以访问解串器上的本地 I2C 总线、则可以连接到我们的模拟 Launchpad (ALP) 软件、以便通过 GUI 更轻松地配置 PATGEN。 请在此处找到 ALP 软件: ALP 支持软件|德州仪器 TI.com。 如需了解如何将 ALP 与 953 配合使用的更多信息、请参阅 DS90UB953-Q1 EVM 用户指南。

    此外、您可以使用下面的计算器工具来确定所需 PATGEN 的特定分辨率、数据类型、消隐和其他属性的寄存器值、而不是通过 ALP 进行此操作。 我们建议测试与来自已连接成像仪的视频流非常相似的 PATGEN 序列。

    e2e.ti.com/.../PATGEN-Calculator.xlsx

    您是否还可以测试温度从–40°C(发生错误的地方)升高到–30°C 或–20°C、看看错误是否消失? 这样也有助于了解此测试的结果。

    在您下周初进行测试时、我将与团队讨论您的回答、以获得进一步的建议。 期待您的其余结果。

    此致、

    Ethan Woods

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

    您好、Ethan、我仍在进行最后一组推荐的测试、尽管我能够识别串行器来自哪个卷轴: 3771836ZGT、 3584872ZGT 和 3748677ZGT 。 这是否有助于查找客户的批次并确定是否存在任何已知问题?

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

    您好 Gerald、

    感谢您的更新。

    识别批次的最佳方法是在受影响的串行器上写下顶部标记。 由于这是一个公共论坛、您可以通过 e-woods@ti.com 与我联系 、以进一步讨论相关问题。 该主题应继续反映当前调试、我们可以根据外部通信的任何发现进行相应更新。

    好极了。

    Ethan Woods

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

    Eric、

    在我们单独讨论的同时、我将发布所执行的其他测试的结果。

    这是在两个摄像机上执行的、放置在一个暗室中、之后斜升到–40°C。

    我编写了一个脚本来禁用 OV10652 成像仪并启用 PATGEN、更改了以下内容:


    // Enable Pattern Generator
    SERIAL_REG = 0x30, 0xB2, 0x01, 8:8

    // Color Bar Pattern Generation
    SERIAL_REG = 0x30, 0xB2, 0x33, 8:8

    // CSI-2 Data Type = RAW12
    SERIAL_REG = 0x30, 0xB2, 0x2E, 8:8

    // Line Size = 2736 Bytes
    // Corresponds to 1824 Pixels in RAW12 Format
    SERIAL_REG = 0x30, 0xB2, 0x0A, 8:8

    SERIAL_REG = 0x30, 0xB2, 0xB0, 8:8


    // Produce 8 Vertical Color Bars Across Image
    SERIAL_REG = 0x30, 0xB2, 0x00, 8:8


    SERIAL_REG = 0x30, 0xB2, 0xE4, 8:8


    // Active Frame Height = 944 Lines
    SERIAL_REG = 0x30, 0xB2, 0x03, 8:8


    SERIAL_REG = 0x30, 0xB2, 0xB0, 8:8

    // Total Frame Height = 960 Lines
    SERIAL_REG = 0x30, 0xB2, 0x03, 8:8


    SERIAL_REG = 0x30, 0xB2, 0xC0, 8:8

    // Line Period
    SERIAL_REG = 0x30, 0xB2, 0x0B, 8:8

    SERIAL_REG = 0x30, 0xB2, 0xF5, 8:8

    // Vertical Back Porch
    SERIAL_REG = 0x30, 0xB2, 0x04, 8:8

    // Vertical Front Porch
    SERIAL_REG = 0x30, 0xB2, 0x08, 8:8

    在此情况下、影像仪已禁用、并且正在发送以下影像:

    使用这些设置进行初始化、我在–40°C 时仍在串行器寄存器上看到以下内容:

    CSI_ERR_CNT (0x5C) = 0x01

    CSI_ERR_DLANE01 (0x5E) = 0x26 

    CSI_ERR_DLANE23 (0x5F) = 0x60

    这很有趣。 “你说什么?

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

    您好 Gerald、

    这对我来说也很有趣。 PATGEN 生成位于串行器中的 CSI 诊断/错误检测块之后、因此不应与其关联 CSI 错误。

    这就引出了几个问题:

    • 这是第一次拉取错误寄存器吗? 这些寄存器在读取时被清除、因此在启用 PATGEN 的情况下、它们是否每次都有相同的错误?
    • 仅在 PATGEN 块之前的传入数据上标记特定于通道的错误。 您是否确定成像仪已禁用并且未向串行器发送任何类型的数据? 这只是一个健全性检查。
    • 解串器上是否标记了任何 CSI 错误? 请注意、从之前的寄存器转储中、未报告 CSI 错误。 您可以通过查看解串器上的寄存器 0x7B 来查找是否存在任何 CSI 错误。 如果 0x7B 不为零、则至少报告 1 个 CSI 错误

    期待您的其余结果和答案。

    此致、

    Ethan Woods

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

    Ethan、

    我再提供一些细节

    • 我让我们的技术在两个不同的摄像头上运行三次测试、在每次测试之间重新初始化摄像头
      • 虽然一些测试恢复清晰、但在浸泡在处理室内时、两者最终都出现与 CSI 相关的误差。
      • 每次寄存器内容都不相同。 为完整起见、我将在每次试验时列出 SER/DES 的寄存器内容

    第 05 单元 — 试用 1:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x00

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 05 单元 — 试用 2:

    CSI_ERR_CNT (0x5C) = 0x24

    CSI_ERR_DLANE01 (0x5E) = 0x02

    CSI_ERR_DLANE23 (0x5F) = 0x06

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 05 单元 — 试用 3:

    CSI_ERR_CNT (0x5C) = 0x01

    CSI_ERR_DLANE01 (0x5E) = 0x44

    CSI_ERR_DLANE23 (0x5F) = 0x44

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 18 单元 — 试用 1:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x00

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 18 单元 — 试用 2:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x02

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 18 单元 — 试用 3:

    CSI_ERR_CNT (0x5C) = 0x25

    CSI_ERR_DLANE01 (0x5E) = 0x06

    CSI_ERR_DLANE23 (0x5F) = 0x06

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    • 在进行这些测试并激活 PATGEN 之前、OVT10652 寄存器设置为 0x3012 = 0x00、以便结束流式传输并将芯片置于待机状态。 我将让我们的技术人员尝试另一项测试、将成像仪设置为断电状态而不是待机状态、以查看行为是否存在差异。
    • 重新运行测试时、我将记录 0x7B 的内容并发回报告
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我重写了摄像头的初始化、以便可以重新运行测试、这次在启用 PATGEN 并在–40°C 下运行测试之前将成像仪设置为断电状态

    第 05 单元 — 试用 1:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x00

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 05 单元 — 试用 2:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x00

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 18 单元 — 试用 1:

    CSI_ERR_CNT (0x5C) = 0x1D

    CSI_ERR_DLANE01 (0x5E) = 0x40

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    第 18 单元 — 试用 2:

    CSI_ERR_CNT (0x5C) = 0x00

    CSI_ERR_DLANE01 (0x5E) = 0x00

    CSI_ERR_DLANE23 (0x5F) = 0x00

    SENSOR_STS_0 (0x51) = 0x28

    SENSOR_STS_3 (0x54) = 0x00

    我错误地说、我们的技术报告 0x7B 寄存器的内容、因此我将再次尝试运行测试以收集数据。 无论如何、似乎仍然有一些串行器寄存器上标记了位的实例。

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

    您好 Gerald、  

    感谢您提供最新测试结果。 SENSOR_STS_0 寄存器中的值 0x28 对应于来自串行器的 CSI 错误和链路检测的警报标志、但在许多试验中、串行器上没有标记 CSI 错误。  

    更有趣的是、即使成像仪处于断电状态、仍会标记特定于通道的错误。 如前所述、除非连接的 CSI 数据通道中有某种数据传入串行器、否则不应标记此错误。  

    在此测试期间、成像仪是否有任何时间点向串行器发送数据、从而可能导致出现这些标志? 也就是说、在初始化过程中、成像仪是否已启用并在禁用之前发送数据? 这是我可以想到在串行器上标记这些特定错误的唯一原因。

    将来、如果再次运行此测试并且出现这些特定数据通道错误、您能否重新读取相关寄存器几次、其间有一些延迟、看看启用 PATGEN 后错误是否会自行重新标记?

    请注意、您可能监视的另一个寄存器是串行器上的 CSI_ERR_STATUS (0x5D) 寄存器、它保存其余 CSI 错误标志、这些标志会计入寄存器 0x5C 中的 CSI 错误总计数。

    此致、

    Ethan Woods