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.

[参考译文] DS90UB954-Q1:通信问题-裕度分析显示低裕度

Guru**** 1090800 points
Other Parts Discussed in Thread: DS90UB953-Q1EVM, DS90UB954-Q1, DS90UB954-Q1EVM, DS90UB953-Q1, ALP
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1230222/ds90ub954-q1-communication-issue---margin-analysis-show-low-margin

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

您好!

我正在处理一个项目、在这个项目中、我们使用解串器耦合来开发我们的电路板和远程 CSI CMOS 传感器之间的通信。

我们使用 设计器(DS90UB954-Q1)开发了定制电路板、并尽可能遵循设计规则。

现在、我们使用集成在 Analog LaunchPAD 软件中的裕度分析功能检查了通信的完整性、得到的以下结果相当差:

为了获得在 DS90UB954-Q1EVM 评估板上使用的结果、我们将外部 I2C 端口连接到解串器的 I2C 输入(焊接在定制板上)、并检查了我们的解串器具有正确的 I2C 地址(不同于 EVM 板上的解串器地址) 然后我们启动了测试。

我们尝试了不同的电缆长度、但遗憾的是结果是相似的。 此外、使用不同的端口(端口0或端口1)来连接同轴电缆的结果是相同的。

您有何建议来提高信号完整性?

我可以执行其他测试来更好地了解问题是什么?

如果我将我的 PCB 设计发送给您、您能否检查是否有一些宏观错误?

提前感谢您。

此致、

亚历山德罗

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

    尊敬的 Alessandro:

    要将什么串行器与954配合使用? 尽管裕度较小、系统是否仍然正常运行、还是您在这里也遇到了一些问题?

    954上是否有稳定的锁? 您可以重复读取寄存器0x4d、以查看当前锁定状态以及锁定状态是否最近更改。  请确保在读取0x4d 之前选择正确的 RX 端口。

    您尝试过哪些类型的电缆和电缆长度? 尝试不同电缆长度时、您是否获得了类似的裕度结果?

    我可以查看您的原理图和 PCB 布局、但我想更好地了解您首先要处理的问题。

    此致!

    卢卡斯

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

    您好、Lucas:
    非常感谢您的回答。
    我正在使用 DS90UB953-Q1串行器。 为了执行裕度分析、我将使用  DS90UB953-Q1EVM 评估板、该评估板通过 FAKRA 母- SMA 公同轴电缆连接到我们的电路板。
    我尝试了不同的电缆,我有在我的实验室和 Resul 总是相同的。  特别是,我尝试了一个12cm 的电缆和一个4m 的电缆,得到类似的结果。
    此外、我对954EVM 和953EVM 进行了裕度分析、结果非常好、所以我可以肯定是我的定制954板出现了问题。

    我现在尝试在端口0上连续读取寄存器0x4D、然后将结果返回给您。


    此致、
    亚历山德罗

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

    尊敬的 Alessandro:

    您的分析对我来说很合理、我同意布局问题可能是利润率较低的原因。 您能否发送原理图和 PCB 布局进行检查? 此外、您是否还可以在进行测试后共享寄存器0x4D 值?

    此致!

    卢卡斯

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

    您好、Lucas:
    我给您发送了一封私人邮件、其中附有我们的项目、因此您可以开始查看它。
    我会尽快将我对寄存器0x4D 的测试发送给您。
    此致、
    亚历山德罗

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

    您好、Lucas:
    我做了您建议的测试:我连续读取寄存器0x4D 大约10分钟、每50ms 一次、并且始终得到相同的结果= 0x03、这意味着 LOCK 和 PASS 为真、并且锁定状态在实验过程中从未改变。  

    我尝试了一个短电缆(12厘米)和一个长电缆(5米),结果总是相同的。

    "你怎么知道的? 即使裕度很低、系统也是稳定的? 我还可以执行其他测试吗?
    我在应用手册中看到可以进行所谓的 BIST 测试。 您认为这对更好地了解情况有用吗?

    此致、

    亚历山德罗

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

    尊敬的 Alessandro:

    尽管存在裕度分析结果、但您的链接肯定是稳定的。 运行 BIST 确实有助于测试链路稳定性。 954数据表的第7.5.12节对 BIST 运行进行了说明。

    您可以运行的另一个测试是在953上配置 patgen、并查看数据是否顺利传输到954。 您可以使用 ALP 上的 Patgen 选项卡来设置953上的分辨率/编码参数、然后检查寄存器0x4d、0x4e、0x55、0x56、0x7a、 以及954上的0x7B 表示错误。

    我将暂时推迟布局审查、以查看您的系统在 BIST 和 Patgen 测试中的表现。

    此致!

    卢卡斯

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

    您好、Lucas:
    我按照您的建议尝试了 BIST 测试。
    为此、我遵循了 应用手册 snla267a (如何使用 DS90UB953-Q1和 DS90UB954-Q1 (Rev. A)(TI.com)中的脚本
    您可以在下面的中找到完整的过程。 以蓝色显示 了这些指令、 包括954解串器(DES)和953串行器(SER)的寄存器的读取和写入。 你还会发现我的评论解释了已经做了什么以及我从读取寄存器中得到的结果。 我用红色突出显示了最关键的观点、并用绿色突出显示了我对测试的一些问题。

    //串行器复位
    WriteI2C (SER、0x01、0x01);

    等待(0.5s)

    //解串器复位
    WriteI2C (DES、0x01、0x01);

    等待(0.5s)

    //选择解串器的端口0
    WriteI2C (DES、0x4C、0x01);

    //读取描述 I2C_Device_ID
    Data = ReadI2C (DES、0x00);
    //结果:数据= 0x60 (好! 它是描述器 I2C 地址)

    //读取描述器 DEVICE_STS
    Data = ReadI2C (DES、0x04);
    //结果:数据= 0xDF (确定! LOCK=1、PASS=1、REFCLK_VALIDE=1、CFG_INIT_DONE=1、CFG_CKSUM_STS=1)

    //读取描述器 RX_PORT_STS1
    Data = ReadI2C (DES、0x4D);
    //结果:数据= 0x13 (好! 我看到的唯一错误标志是 LOCK_STS_CHG=1、这意味着锁定状态在最后一次读取该寄存器后发生变化、但复位后可能发生变化)

    //读取描述器 RX_PORT_STS2
    Data = ReadI2C (DES、0x4E);
    //结果:数据= 0x0C (对吧? 我看到的唯一错误标志是 CSI_ERROR=1、但我认为这是可能的、因为我没有初始化与传感器的 CSI 通信)

    //清除串行器错误
    WriteI2C (SER、0x49、0x28);

    等待(1s)

    //读取串行器寄存器0x79 (?) ->第36页的应用手册 snla267a 告诉我们读取该寄存器、但我在串行器数据表中看到它是保留的。 为什么?
    数据= ReadI2C (SER、0x79);
    //结果:data = 0x00 (我不知道此寄存器的含义、我假设0x00正确)

    //读取串行器的设备 STS
    数据= ReadI2C (SER、0x51);
    //结果:数据= 0xC0 (好! CFG_INIT_DONE=1、CFG_CKSUM_STS=1)

    //读取串行器的 GENERAL_STATUS
    数据= ReadI2C (SER、0x52);
    //结果:数据= 0x45 (好! RX_LOCK_DETECTED = 1、LINK_LOCK_FLAG=0、BIST_CRC_ERR=0、HS_PLL_LOCK=1、CRC_ERR=0、 LINK_DET=1)

    //在启动 BIST 测试之前读取 BIST_ERR_CNT 串行器
    数据= ReadI2C (SER、0x54);
    //结果:数据= 0x00 (好! 无 BIST 错误)

    //开始 BIST 测试之前读取除法器上的 BIST 控制
    Data = ReadI2C (DES、0xB3);
    //结果:数据= 0x08 (好! 禁用 BIST)

    //开始 BIST 测试
    WriteI2C (DES、0xB3、0x01);

    //在 BIST 测试开始后立即读取除法器上的 BIST 控制
    Data = ReadI2C (DES、0xB3);
    //结果:数据= 0x01 (好! BIST 测试已开始)

    等待(0.25s)

    //读取描述器 RX_PORT_STS1以清除 LOCK_STS_CHG 标志(在 BIST 启动后、系统可能会松锁)
    Data = ReadI2C (DES、0x4D);
    //结果:数据= 0x13 (好! 我看到的唯一错误标志是 LOCK_STS_CHG=1、这意味着锁定状态在测试开始后发生变化)

    //验证 BIST 测试是否已在 SER 上开始(在 DES 上读取电阻器 PORT_DEBUG)
    Data = ReadI2C (DES、0xD0);
    //结果:数据= 0x20 (好! SER_BIST_ACT=1、意味着 BIST 测试也在串行器上启动)

    等待(5s)//根据需要尽可能多地等待以执行 BIST 测试

    //读取描述器 RX_PORT_STS1以验证 BIST 期间锁定状态是否发生更改
    Data = ReadI2C (DES、0x4D);
    //结果:data =有时我可以得到0x03 (一切正常), 有时我得到0x07 (奇偶校验_ERROR=1)。
    //NB:我将奇偶校验错误阈值设置为1、因此单个奇偶校验错误足以触发错误标志。 无论如何、我认为这是系统不稳定的指示信号。 是这样吗?

    //停止 BIST 测试
    WriteI2C (DES、0xB3、0x00);

    //Read BIST Control on deser、以验证测试是否已正确停止
    Data = ReadI2C (DES、0xB3);
    //结果:数据= 0x01 (好! BIST 测试未运行)

    等待(0.5s)

    //读取描述器 RX_PORT_STS1以清除 LOCK_STS_CHG 标志(我观察到停止 BIST 测试可以改变锁定状态。 这是正常的吗?)
    Data = ReadI2C (DES、0x4D);
    //结果:数据= 0x13 (好! 我看到的唯一错误标志是 LOCK_STS_CHG=1、这意味着锁定状态已更改)

    //读取描述器 RX_PORT_STS2
    Data = ReadI2C (DES、0x4E);
    //结果:数据=有时我得到的是0x0C (一切正常、除 CSI_error=1)、有时我得到的是0x2C (FPD3_ENCODE_ERROR=1)。
    //NB:我启用了 LINK_ERROR_COUNT 并且 LINK_ERR_THRESHOLD=3 (默认值)、因此 FPD3_ENCODE_ERROR=1意味着链路至少出现3次故障。 BIST 测试关闭了、可能会发生什么情况吗?

    //验证 BIST 测试是否已在 SER 上停止(在 DES 上读取电阻器 PORT_DEBUG)
    Data = ReadI2C (DES、0xD0);
    //结果:数据= 0x00 (好! SER_BIST_ACT=0、意味着 BIST 测试没有在 SER 上运行)

    //读取描述 I2C_Device_ID
    Data = ReadI2C (DES、0x00);
    //结果:数据= 0x60 (好! 它是描述器 I2C 地址)

    //读取描述器 DEVICE_STS
    Data = ReadI2C (DES、0x04);
    //结果:数据= 0xDF (确定! LOCK=1、PASS=1、REFCLK_VALIDE=1、CFG_INIT_DONE=1、CFG_CKSUM_STS=1)

    //读取描述器 RX_PORT_STS1
    Data = ReadI2C (DES、0x4D);
    //结果:数据=有时我得到的是0x03 (一切正常),有时我得到的是0x13 (LOCK_STS_CHG=1)

    //读取描述器 RX_PORT_STS2
    Data = ReadI2C (DES、0x4E);
    //结果:数据= 0x0C (对吧? 我看到的唯一错误标志是 CSI_ERROR=1、但我认为这是可能的、因为我没有初始化与传感器的 CSI 通信)

    //读取串行器的设备 STS
    数据= ReadI2C (SER、0x51);
    //结果:数据= 0xC0 (好! CFG_INIT_DONE=1、CFG_CKSUM_STS=1)

    //读取串行器的 GENERAL_STATUS
    数据= ReadI2C (SER、0x52);
    //结果:数据= 0x45 (好! RX_LOCK_DETECTED = 1、LINK_LOCK_FLAG=0、BIST_CRC_ERR=0、HS_PLL_LOCK=1、CRC_ERR=0、 LINK_DET=1)

    //读取 BIST_ERR_CNT 以查看测试期间是否出现 BIST 错误
    数据= ReadI2C (SER、0x54);
    //结果:数据= 0x00 (好! 无 BIST 错误)

    您可以看到、我的系统始终无法通过测试(请参阅红色注释、特别是 经过5秒测试后出现 FPD3_ENCODE_ERROR)。
    我尝试了很多次测试,有时一切正常,测试通过了,有时我看到上面描述的问题。
    我想、这些都是 
    系统不稳定的所有同义词
    "那你打算怎么办?"

    我还在解串器的评估板上执行了与串行器的评估板完全相同的测试、并且从未观察到问题:使用评估板测试总是通过的、因此我很确信我们的定制板有一些设计问题。
    此时、您可以继续检查我们的设计吗?

    同时,我将安排专利测试尽快可能有进一步的信息。
    此致、
    亚历山德罗

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

    尊敬的 Alessandro:

    //read deser RX_PORT_STS2
    Data = ReadI2C (DES、0x4E);
    //结果:数据= 0x0C (对吧? 我看到的唯一错误标志是 CSI_ERROR=1、但我认为这是可能的、因为我没有初始化与传感器的 CSI 通信)

    是的、这是正确的。

    //read serializer 寄存器0x79 (?) ->第36页的应用手册 snla267a 告诉我们读取该寄存器、但我在串行器数据表中看到它是保留的。 为什么?
    数据= ReadI2C (SER、0x79);
    //结果:data = 0x00 (我不知道此寄存器的含义,我想0x00是正确的)

    0x79是用于 BCC 状态的保留寄存器。 值00表示无错误。

    //read deser RX_PORT_STS1、以验证在 BIST 期间锁定状态是否更改
    Data = ReadI2C (DES、0x4D);
    //结果:data =有时我可以得到0x03 (一切正常), 有时我得到0x07 (奇偶校验_ERROR=1)。
    //NB:我将奇偶校验错误阈值设置为1、因此单个奇偶校验错误足以触发错误标志。 无论如何、我认为这是系统不稳定的指示信号。 是否正确?

    正确、任何奇偶校验错误都表示潜在的链路问题。

    //read deser RX_PORT_STS1以清除 LOCK_STS_CHG 标志(我观察到停止 BIST 测试可能会改变锁定状态。 这是正常的吗?)
    Data = ReadI2C (DES、0x4D);
    //结果:数据= 0x13 (好! 我看到的唯一错误标志是 LOCK_STS_CHG=1、表示锁定状态已更改)

    是的、在 BIST 开始和结束时看到 LOCK_STS_CHG 标志是正常的。

    //read deser RX_PORT_STS2
    Data = ReadI2C (DES、0x4E);
    //结果:数据=有时我得到的是0x0C (一切正常、除 CSI_error=1)、有时我得到的是0x2C (FPD3_ENCODE_ERROR=1)。
    //NB:我启用了 LINK_ERROR_COUNT 并且 LINK_ERR_THRESHOLD=3 (默认值)、因此 FPD3_ENCODE_ERROR=1意味着链路至少出现3次故障。 这是不是由于关闭了 BIST 测试而可能发生的事情?

    在 BIST 开始和结束时、链路应该会出现两次故障、但这并非预期行为。 FPD3_ENCODE_ERROR 绝对是一个问题。

    //read deser RX_PORT_STS1
    Data = ReadI2C (DES、0x4D);
    //结果:数据=有时我得到的是0x03 (一切正常),有时我得到的是0x13 (LOCK_STS_CHG=1)

    此处锁定状态不应更改。

    请等待~1周以进行原理图和布局审核。 此外,请分享结果的 Patgen 测试一旦你能够执行它,因为这可以是非常有价值的理解你的问题。

    此致!

    卢卡斯

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

    尊敬的 Alessandro:

    在您获得 Patgen 结果的同时、我将 在6月22日星期四之前审查您的原理图/布局并提供有关它们的反馈。  

    此致、

    信迪

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

    Cindy、您好!
    非常感谢您的帮助。

    同时,我 正在工作的 patgen 测试。 使用 ALP 软件我试图设置 patgen 配置,并通过检查"启用"标志启动 patgen。
    不过,我现在有几个问题:

    -我看到我可以在 ser 或 deser 上启动 patgen (我从数据表中看到 ser 和 deser 都有一个 PGEN_CTL 寄存器和一个 PGEN_ENABLE 标志)。 区别是什么? 我是从 ser 还是从 deser 开始 pgen 吗?
    您可以看到下面的 patgen 软件还允许通过选择设备在 ser 或 deser 上启用 patgen:


    -一旦专利启用,我想象视频流正在通过同轴电缆流动。 如何验证是否发生了某些错误? 我可以读取哪个寄存器?
    启用测试后、您是否有要检查的寄存器列表?

    提前感谢您。
    此致、
    亚历山德罗

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

    尊敬的 Alessandro:

    有何区别? 我是否必须从 ser 或 deser 启动 pgen?

    串行器和解串器都独立具有图形发生器特性。 DES 可以生成一个图形并将其从 CSI-2发送器发出。 这 有助于确认 DES 和 SOC 之间可以传输有效的 CSI-2数据。 SER 模式将数据通过 链路发送至 DES、因此有助于确认在 SER 和 DES 之间传输 CSI-2数据的 FPD-Link 稳定性。 您应该在本例中在 SER 上启用 patgen。

    -启用 patgen 后、我可以想象视频流在同轴电缆中流动。 如何验证是否发生了某些错误? 我可以读取哪个寄存器?

    您可以通过检查寄存器0x73-0x76 (线数和线长度寄存器)来验证954是否接收到正确的视频参数。

    在接收数据时、该数据也会显示在954 ALP 配置文件的"Information"选项卡中:

    您可以监测954中的以下寄存器以在测试期间检查错误:0x4D、0x4E、0x55、0x56、0x7A、 0x7B。

    可以监控953寄存器0x52、以检查反向通道链路检测和反向通道 CRC 错误。  

    此致、

    信迪

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

    尊敬的 Cindy:
    我有 patgen 测试结果。
    您可以在下面的详细步骤中找到我执行测试的详细过程。 在蓝色部分中、您可以看到我通过 I2C 发送到解串器(DES)和串行器(SER)的命令。 在红色框中、您会发现最关键的点是测试失败、而在绿色框中、您会发现一些疑问和问题。

    // PatGen 测试、640x480、RAW10,120fps:

    //写入 PGEN_CFG (间接父寄存器0x02)= 0x25 (4个色条、5个块)
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x02);
    WriteI2C (SER、0xB2、0x25);

    //写入 PGEN_CSI_DI (间接注册寄存器0x03)= 0x2B (VC=0、数据类型= RAW10)
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x03);
    WriteI2C (SER、0xB2、0x2B);

    //写入 PGEN_LINE_SIZE (1行中的字节数)= 640*10/8=800=0x0320
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x04);
    WriteI2C (SER、0xB2、0x03);
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x05);
    WriteI2C (SER、0xB2、0x20);

    //写入 PGEN_BAR_SIZE = PGEN_LINE_SIZE/4 = 200 = 0x00C8
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x06);
    WriteI2C (SER、0xB2、0x00);
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x07);
    WriteI2C (SER、0xB2、0xC8);

    //写入 PGEN_ACT_LPF (每帧有效行数)= 480 = 0x01E0
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x08);
    WriteI2C (SER、0xB2、0x01);
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x09);
    WriteI2C (SER、0xB2、0xE0);

    //写入 PGEN_TOT_LPF (每帧有效行数+垂直消隐)= 525 = 0x020D
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0A);
    WriteI2C (SER、0xB2、0x00);
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0B);
    WriteI2C (SER、0xB2、0xC8);

    //写入 PGEN_LINME_PD = 100000000/(120*525)[10ns]= 0x0633
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0C);
    WriteI2C (SER、0xB2、0x06);
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0D);
    WriteI2C (SER、0xB2、0x33);

    //写入 PGEN_VBP (垂直后沿)= 33 = 0x21
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0E);
    WriteI2C (SER、0xB2、0x21);

    //写入 PGEN_VFP (垂直前沿)= 10 = 0x0A
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x0F);
    WriteI2C (SER、0xB2、0x0A);

    //激活中断标志 IE_LINE_LEN_CHG 和 IE_LINE_CNT_CHG
    WriteI2C (DES、0xD9、0x60);
    //问题:是否需要此操作? 我在说明器数据表中看到、如果我激活了中断标志、寄存器0x73-0x76中的值会被冻结、直到读取。 是这样吗?

    //在启动图形发生器之前,我仅检查 CSI 错误以清除寄存器中的错误标志
    Data = ReadI2C (DES、0x4E);     //此处我检查 CSI_error 标志
    if (CSI_error!= 0){
      CSI_ERROR_NUMBER = ReadI2C (DES、0x7B);
      CSI_ERROR_STATUS = ReadI2C (DES、0x7A);

    //结果:我在这里看到了一些 CSI 错误,但我忽略了这些错误,因为图形发生器尚未激活。 错误标志在读取后被清除

    //在我启动图形发生器之前,我检查其他错误,只从寄存器中清除错误标志
    Data = ReadI2C (DES、0x4D);
    Data = ReadI2C (DES、0x4E);
    //结果:我在这里没有看到任何错误。 有时我会在寄存器中看到 LOCK_STS_CHG。 0x4D

    //在 SER 上启动图形发生器(在 patgen 的间接寄存器0x01中写入0x01)
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x01);
    WriteI2C (SER、0xB2、0x01);

    //启动后我检查 RX_PORT_STS1和 RX_PORT_STS2中的错误标志,并检查 CSI 错误:
    Data = ReadI2C (DES、0x4D);//结果:0x03
    Data = ReadI2C (DES、0x4E);//结果:0x04
    Data = ReadI2C (DES、0x7B);//result 0x00
    //结果:一切正常,我看到没有错误

    //I 使系统保持2s、并使 patgen 处于活动状态、并且 I 定期监视 LINE_COUNT、LINE_LENGTH 和 RX_PORT_STS
    循环2s{
      LINE_COUNT_MSB = ReadI2C (DES、0x73);
      LINE_COUNT_lsb = ReadI2C (DES、0x74);
      LINE_LENGTH_MSB = ReadI2C (DES、0x75);
      LINE_LENGTH_lsb = ReadI2C (DES、0x76);
      Data = ReadI2C (DES、0x4D);
      Data = ReadI2C (DES、0x4E);
      等待(20ms);
    }//结束循环
    //结果:我看到在2秒 patgen 测试期间,有时我读取 line_count 和 line_length = 0。 此外、我有时会看到 RX_PORT_STS1 = 0x10或0x01、这意味着系统未处于锁定和通过状态!
    我还看到通常在某个点 RX_PORT_STS2变为0x0C、这意味着检测到 CSI_ERROR。

    //经过2秒后,我检查 CSI_ERRORS
    Data = ReadI2C (DES、0x4E);  //在此处检查 CSI_error 标志
    if (CSI_error!= 0){
      CSI_ERROR_NUMBER = ReadI2C (DES、0x7B);
      CSI_ERROR_STATUS = ReadI2C (DES、0x7A);

    //结果:经常我会看到一些错误(我尝试过很多次,总是看到 CSI_ERROR_NUMBER = 1、2、3或4,所以如果我将它们与在120fps 时以2秒传递的帧数进行比较,即240帧),错误就很少。
    在各种测试中、我看到了 CSI_ERROR_STATUS 的不同值:有时我会看到标志 LENGTH_ERR=1、有时我会看到 CKSUM_ERR=1或 ECC2_ERR=1;通常这是这些值的组合。

    //停止 SER 上的图形发生器(在 patgen 的间接寄存器0x01中写入0x00)
    WriteI2C (SER、0xB0、0x02);
    WriteI2C (SER、0xB1、0x01);
    WriteI2C (SER、0xB2、0x00);

    //i 在 patgen 被关闭后检查错误
    Data = ReadI2C (DES、0x4D);
    Data = ReadI2C (DES、0x4E);
    if (CSI_error!= 0){
      CSI_ERROR_NUMBER = ReadI2C (DES、0x7B);
      CSI_ERROR_STATUS = ReadI2C (DES、0x7A);

    //结果:在这里,我有时看到 CSI_errors,但不经常看到。 可能是由于最后一个帧上存在错误、该帧在 STOP 和 STOP 命令之前的最后一次检查之间传递。 实际上、在这些情况下、CSI_err-number 等于1。
    你认为这是一个可能的解释吗?

    您可以看到、系统未通过测试、因为我在视频流式传输过程中看到的错误包括 CSI_error、帧维度不匹配以及锁定损耗。
    "那你打算怎么办?"
    测试是以正确的方式进行的、还是我做错了什么? 通过以不同的方式/顺序读取寄存器、我可以更好地强调什么吗?

    提前感谢您。
    此致、
    亚历山德罗


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

    尊敬的 Alessandro:

    //question:是否需要执行此操作? 我在说明器数据表中看到、如果我激活了中断标志、寄存器0x73-0x76中的值会被冻结、直到读取。 是否正确?

    该功能可用于判断是否发生了线长度和线数变化。 要正确启用中断、您可以对954寄存器0x23进行编程、以启用全局中断和 RX 端口中断。 然后、您要对寄存器0xD9 PORT_ICR_LO 进行编程以选择要启用的 RX 端口中断。 发生中断条件时、将在寄存器0x24中报告、具体条件可在寄存器0xDB PORT_ISR_LO 中找到。 并且正确、 如果中断标志被激活、这些值将在读取前被冻结。

    //results:我看到在2秒 patgen 测试期间、有时我读取 line_count 和 line_length = 0。 此外、我有时会看到 RX_PORT_STS1 = 0x10或0x01、这意味着系统未处于锁定和通过状态!
    我还看到通常在某个点 RX_PORT_STS2变为0x0C、这意味着检测到 CSI_ERROR。[/引号]

    运行 patgen 几秒钟后出现的错误可能表明链接存在问题。 只是为了确认一下、当 patgen 被启用时、您是否多次读取了0x4D、并且它不会保留0x03?  

    可能是由于最后一个帧上存在错误、该帧在 STOP 和 STOP 命令之前的最后一次检查之间传递。 实际上、在这些情况下、CSI_err-number 等于1。
    您认为这是可能的解释吗?

    这是可能的解释。 中断视频流时可能会出现 CSI-2错误。  

    您对此有何看法?
    测试是以正确的方式进行的、还是我做错了什么? 是否可以通过以不同的方式/顺序读取寄存器来更好地突出显示某些内容?

    如果您在运行 patgen 之前清除了所有状态寄存器并开始观察错误、则此测试是正确的。  

    我仍在关注您的布局、下周我会向您提供更多反馈。  

    此致、

    信迪

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

    Cindy、您好!
    非常感谢您的解释。

    只是为了确认,您在启用 Patgen 的情况下是否多次读取0x4D,而且它不会保留0x03?  [/报价]

    我确认读取 Reg.x4D 很多次它并不总是0x03。 有时我会得到0x10、0x13或0x00 (这很少见、但会发生)。 我还在连接在一起的评估板上尝试了相同的测试、并且我从未在寄存器0x4D 中获得更改(我始终读取0x03)、因此我更确信问题在于我们的定制板。
    我等待您的反馈。
    再次感谢您的帮助。


    此致、


    亚历山德罗

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

    尊敬的 Alessandro:

    感谢您的确认。 我将在星期四之前提供有关您的原理图/布局的反馈。  

    此致、

    信迪

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

    尊敬的 Alessandro:

    感谢您的耐心。 请参阅随附的、查看您的原理图和电路板:  

    e2e.ti.com/.../Schema-Elettrico-PVZ_2D00_DES_2D00_COAX-Rev1.0_5F00_Feedback.pdfe2e.ti.com/.../DS90UB954_2D00_Q1_5F00_Layout_5F00_Feedback.pptx 

    此致、

    信迪

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

    尊敬的 Cindy:
    不好感谢你的评分

    我们将在下一个原型中实施建议的修改。

    好奇:如何估算跟踪阻抗? 您能为我推荐一个估算它的工具吗?

    此外、您是否使用任何工具在特定 PCB 布局中仿真信号传播?

    提前感谢您。
    此致、

    亚历山德罗

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

    尊敬的 Alessandro:

    布线阻抗将取决于您的堆叠情况。  我们 建议使用 ANSYS 等 EM 求解器来估算高速布线的 IL、RL 和阻抗。

    此致、

    信迪