主题中讨论的其他器件: ALP
大家好、
客户希望947+948在仅次要链路模式(ROUT1-RIN1)下工作、保持主链路断开、您能否帮助确认如何配置?
查看数据表、它似乎可以使用默认设置
- 947:0x5B[0]在自动检测 FPD-Link III 模式下工作
- 948:0x34[3:4] 根据接收到的数据自动检测
您是否还可以检查 仅使用辅助链路时对 I2C/GPIO 直通功能的影响?
此致、
东宝
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.
大家好、
客户希望947+948在仅次要链路模式(ROUT1-RIN1)下工作、保持主链路断开、您能否帮助确认如何配置?
查看数据表、它似乎可以使用默认设置
您是否还可以检查 仅使用辅助链路时对 I2C/GPIO 直通功能的影响?
此致、
东宝
您好、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的信息、但它是灰色的、无法读取远程寄存器。


以总结实验:
此现象与客户的电路板一致。
我是否可以询问我们的电路板是否可以仅使用 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寄存器地址)、但它不起作用。
根据当前的调查结果、我认为数据表中的陈述不准确。 请与设计人员核实、然后在您的实验室中重新测试。
此致、
东宝
您好、Li、
我们已经解决了这个问题并创建了一个工作脚本。 我们正在使用949和948。 请按照以下步骤在您的一侧复制解决方案:




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


请告诉我您是否能够在您的端复制解决方案
尊敬的、
William Yi