主题中讨论的其他器件: DS90UB948-Q1、 ALP、 OPT3001
您好,
我正在尝试将 DS90UH941AS-Q1EVM 连接到具有 DS90UB948-Q1解串器的完整 LCD 模块;我可以通过任何方式配置解串器寄存器来启动 LCD? 我似乎无法配置 DES 寄存器... 谢谢!

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.
您好,
我正在尝试将 DS90UH941AS-Q1EVM 连接到具有 DS90UB948-Q1解串器的完整 LCD 模块;我可以通过任何方式配置解串器寄存器来启动 LCD? 我似乎无法配置 DES 寄存器... 谢谢!

您好、Nick、
您是否正在尝试从948 ALP 端访问远程寄存器? 如果是,您可以通过941AS ALP 配置文件在本地访问941AS 寄存器,也可以通过941AS 配置文件远程访问948寄存器,因为948是连接到941AS 远程 I2C 的下游器件。
通过941AS ALP 配置文件访问948远程寄存器

如果要从948侧访问941AS,可以使用“Scripting”(脚本)选项卡。

对941AS 使用 devAddr --在我的例子中它是0x18。 读取以十六进制形式为我提供的器件 ID 24或0x18、这是941AS ID 的预期值。

此致、
Fadi A.
您好、Nick、
您能给我提供有关如何配置941和948的更多详细信息吗? 您是否已在单路或双路 FPD-Link 模式下连接它们? 您使用的是什么 PCLK? Ser/Des 的 IDX 地址是什么,您尝试从何处访问 I2C?
您能否给我发送一份包含 Ser/Des 的应用方框图并指向我您尝试从哪个位置与948通信?
现在、让我们在本地建立与941AS 的 I2C 通信。 打开 ALP 并将其设置为941AS 配置文件。 在本例中、EVM IDX 设置为0x18 -请参阅下表。

这意味着、如果我想在本地读取941AS ID 寄存器0x00

我会在 ALP 脚本选项卡中使用以下 python 命令。
serAddr = 0x18
board.ReadI2C (serAddr、00) #This 将在本地读取941AS 的寄存器0x00值、在本例中为0x18。
本例中的948 IDX 设置为0x58
因此、如果我想与之通信、我也可以对941AS 使用相同的 ALP 脚本选项卡、但使用 948 IDX 地址而不是941AS IDX 地址与 DES 端通信。
例如:如果我想从941AS 脚本选项卡中读出948的一般状态

我将编写以下代码:
DESADDR = 0x58
board.ReadI2C (DesAddr、0x1C)
如果我要通过941AS "Scripting"选项卡远程向948寄存器0x24写入值0x01、我将执行以下操作:
board.WriteI2C (DesAddr、0x24、0x01)
如果我想将0xFA 写入941AS 寄存器0x03、我将执行以下操作:
serAddr = 0x18 #器件 ID 由 IDX 外部自举分压 器网络设置。
board.WriteI2C (serAddr、0x03、0xFA)
如果您在上面尝试但仍然无法正常工作、
通过 FPD-link 通道将941AS 连接到948、并在本地将 I2C 连接到941AS、然后向我发送941AS 信息选项卡的屏幕截图。
它应该与下图类似、只有您才能看到 DS90UB948作为合作伙伴信息、而下图中的 DS90UH928则是如此。

此致、
Fadi A.
我在这里找出了问题,并使用 hex()来转换 I2C 读取值。
另一个问题- I2C 如何写入2字节数据?
对于另一个远程 I2C 器件(OPT3001 -环境光传感器)、我尝试将 I2C 2字节数据访问到寄存器、但似乎不成功。
board.ReadI2C (0x88、0x7F、2)
[48、1]
board.ReadI2C (0x88、0x7F、2)
[48、1]
十六进制(board.ReadI2C (0x88、0x7F))
'0x30'
十六进制(board.ReadI2C (0x88、0x7F))
'0x30'
board.ReadI2C (0x88、0x02、2)
[0、0]
board.ReadI2C (0x88、0x02、2)
[0、0]
board.WriteI2C (0x88、0x02、0xBBFF)
board.ReadI2C (0x88、0x02、2)
[0、0]