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.

[参考译文] DS90UB947-Q1:941+948强制二次链路模式(单链路)

Guru**** 2578945 points
Other Parts Discussed in Thread: DS90UB947-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1118429/ds90ub947-q1-947-948-force-secondary-link-mode-single-link

器件型号:DS90UB947-Q1
主题中讨论的其他器件: ALP

大家好、  

客户希望947+948在仅次要链路模式(ROUT1-RIN1)下工作、保持主链路断开、您能否帮助确认如何配置?

查看数据表、它似乎可以使用默认设置

  • 947:0x5B[0]在自动检测 FPD-Link III 模式下工作
  • 948:0x34[3:4] 根据接收到的数据自动检测

您是否还可以检查 仅使用辅助链路时对 I2C/GPIO 直通功能的影响?

此致、

东宝

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

    以下是947和948的脚本,您能帮助修改并使其在仅链接辅助模式下工作吗? 谢谢。

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

    尊敬的 Dongbao:

    感谢您的提问。 只要您将947和948保持在自动检测模式、通过您识别的寄存器、此配置就可以正常工作、无需进行任何其他更改。

    此致、

    Darrah

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

    您好、Darrah、

    感谢您的反馈。

    1.您能否确认次要链路操作是否会影响 i2c 和 GPIO 直通功能、因为客户确认系统在仅主链路模式下工作、但次级链路不工作?

    2.如果 Q1不受影响、TX_Port1_SEL 和 Port1_I2C_EN 位的用途是什么? 您能否分享应用场景? 由于947只能支持一个下行器件92x/94x、我看不到独立端口0/1寄存器的需求。

    此致、

    东宝

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

    DS90UB947-Q1可自动检测下行链路的功能、并可解决连接单个器件、双功能器件还是多个单链路器件的问题。  然后根据检测到的配置自动选择正确的工作模式和功能。 例如、连接两个器件(双链路)将导致复制模式、而仅在第二链路上连接一个器件将导致仅在第二链路上发送视频。 但是、主链路上必须没有连接才能成功进行自动检测。

    独立端口寄存器允许访问特定端口的寄存器、因为许多寄存器是重复的(每个端口一个)。 设置其中一个或两个端口可直接控制相应的寄存器。

    PORT1_I2C_EN 位专门为第二个端口启用第二个 I2C 从器件地址。 设置该寄存器(0x1E[2])意味着您将使用基本 I2C 地址+ 1。

    如果客户在使用端口1访问 I2C 时遇到问题、 则建议设置0x1E[1]。  

    此致、

    Darrah

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

    您好 Darrah:

    非常感谢您提供的信息。 我将向您展示问题解决的进展。

    1.只有端口1 是硬件连接的,端口0断开连接。在这种情况下,我们将947设置为自动检测模式,然后将948设置为自动检测模式(默认情况下为自动检测模式),则没有运行 vedio 链接。  我想在这种传感器中、Ser 947和 DES 948正在等待对方、没有器件可循序渐进、这就是没有 Vedio 链路工作的原因。

    2、只有端口1是硬件 连接的、端口0断开连接。 在这种情况下 、我们将947设置为自动检测模式、 然后在端口1模式下设置948为强制输入(由于 IIC 链路不起作用、因此无法通过947执行此设置、我们在948侧通过附加 MCU 设置948)、在该传感器中、Vedio 链路工作正常、 图片和显示在显示屏中。但问题是 IIC 链接不起作用、即使在947和948端设置了 PORT_SEL1位。  

    那么、在我们的应用中:只有端口1上的 traminit、我们不需要通过将 Port1_I2C_EN 位设置为1来启用第二个 IIC、我对吗? 您能解释第二个 I2C 的功能吗?

    对于我们的应用要求、948侧的 MCU 必须启用端口1模式上的强制输入。您同意吗?

    等待您的反馈、祝您愉快!

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

    您好 Darrah、

    我们已经试验了947和940 EVM 板:

    1. 仅连接到 PORT0 (949:DOUT0+、DOUT0-;940:RIN0+、RIN0-),使用默认配置,您可以直接通信。

    成功读取远程寄存器

    仅连接到端口1 (949:DOUT1+、DOUT-1;940:RIN1+、RIN1-)、使用默认配置、通信无法成功。 如图所示、无法读取远程寄存器。

    将  寄存器0x34[]:值0x01更改为0x1B、940可以读取949的合作伙伴信息、但合作伙伴信息 为灰色 无法读取远程寄存器。

    相应的949终端根本无法读取940的信息。

    949:值0x01中的寄存器0x1E[]更改为0x02、显示与解串器的连接、但显示为926、仍然无法读取远程寄存器。

    3.将配置和连接方法保持在2中, 并选中“启用发生器”,然后将“计时源”更改为“内部”。

    在940侧、您可以看到949信息、它显示连接为是、并且可以读取949的远程寄存器。

    但在949侧、您可以看到合作伙伴信息可以读取940的信息、但它是灰色的、无法读取远程寄存器。

    以总结实验:

    1. 使用 Port0时,可以使用默认配置。
    2. 使用 Port1时、无法使用该模式、中间设置的自动选择通道将不起作用、因此必须手动将其更改为相应的 port1寄存器。
    3. 配置相应的寄存器后、940可以读取949的信息、并且可以读取远程寄存器。 相反、949只能读取940的信息、但不能读取远程寄存器。

    此现象与客户的电路板一致。

    我是否可以询问我们的电路板是否可以仅使用 Port1完成通信? 如果是、还需要进行其他哪些配置?

    此致、

    萧祥

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

    德高、晓祥、

    感谢您的详细更新。  

    第二个 I2C 地址(通过设置  PORT1_I2C_EN 启用)专门为 Port1启用 I2C 地址。 例如、当仅设置 PORT1_SEL 时、PORT1的寄存器访问将来自主 I2C 地址。 启用第二个 I2C 地址后、对端口1寄存器的访问将来自 DeviceID+1地址。 这基本上为每个端口提供了一个特定的地址。 对于您的应用、主地址应该足够了、因为您只使用 Port1、但如果可以使用次地址读取远程寄存器、则可能值得测试。

    948 确实 具有通过 DUAL_RX_CTL 寄存器实现的强制输入模式、该寄存器可以是 MCU 以外的选项。

    只需确认一下、您是否启用了 I2C 直通或设置了任何从别名? 当您尝试读取远程寄存器时、它们是否全部设置为零或您是否看不到任何内容? 您是否还可以检查串行器侧的寄存器0x5A 和0x06的值? 很奇怪、没有到解串器的链接。  


    此致、

    Darrah

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

    您好、Darrah、

    您能否在实验室中设置基准测试? 很容易重复客户和现场面临的问题。

    对于 ALP 和 EVM、当您尝试读出所有远程寄存器时、i2c 直通会自动启用;从屏幕截图中可以看到、949可以检测到更清楚的 i2c 地址、但无法识别940。  

    您提到的设置 端口1_I2C_EN 的方法、我们还尝试将 i2c 地址从0x58更改为0x5B (0x06寄存器地址)、但它不起作用。

    根据当前的调查结果、我认为数据表中的陈述不准确。 请与设计人员核实、然后在您的实验室中重新测试。

    此致、

    东宝

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

    尊敬的 Dongbao:

    我将在工作台上对此进行研究、并在下周三(7/27)为您提供最新信息。 同时、您是否可以通过"Scripting"选项卡尝试手动 I2C 读取和写入? 是否可以确认已设置从别名?

    此致、

    Darrah

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

    尊敬的 Dongbao:

    在工作台上重复此问题需要更长时间。 我将在星期五为您提供最新信息。

    此致、

    Darrah

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

    尊敬的 Dongbao:

    感谢您对此问题的耐心等待。 复制和查找解决方案需要更多时间。  我将在星期二之前再次向您提供最新信息。

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

    我们设法复制了该问题、并找到了允许手动脚本读取和写入远程寄存器到正向和反向通道的序列。 我们将继续寻找一种更直接的方法来允许通过远程寄存器选项卡进行访问。 我将在本周结束时向您提供最新信息。

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

    您好 Darrah:

    我是本例的最终用户。 首先、非常感谢您的支持。

    您的检查结果将影响我的项目变化、我将在本周等待您的好消息。

    谢谢。

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

    您好、Li、

    我们已经解决了这个问题并创建了一个工作脚本。 我们正在使用949和948。 请按照以下步骤在您的一侧复制解决方案:

    1. 仅连接到端口1 (949:DOUT1+、DOUT-1;948:RIN1+、RIN1-)

    2. 在948侧:选择寄存器0x34 -> 0001 1000 (0x18)


    3.  在949侧: 将图形发生器设置为启用发生器并将时序源切换为内部

      1. 948现在应该能够识别949并与之通信

    4. 在949侧:  
      1. 使用以下代码创建 python 文件以更改以下寄存器。 您可能需要更改所使用器件的寄存器/器件地址。
        serAddr = 0x18
        desAddr = 0x58
        
        board.WriteI2C(serAddr,0x1E,0x04) # Enable secondary I2C address for port 1
        board.WriteI2C(serAddr+2,0x03,0xDA) # Enable I2C passthrough on port 1
        print hex(board.ReadI2C(desAddr,0x00,1)) # Read DES address
      2. 在949上运行代码。 949现在可以与948通信、而不会出现任何问题、反之亦然。
      3. ALP 软件无法识别948。 但正向通道  现在正在运行

    请告诉我您是否能够在您的端复制解决方案  

    尊敬的、

    William Yi