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.
您好!
是否有任何方法可以通过 I2C 使 HDMI 接口以编程方式重新建立?
我想使用 I2C 将 EDID 结构上传到 DS90UB929 SRAM、但我必须重新插入 HDMI 电缆以强制这些更改在 HDMI 源(PC)上生效。 是否有任何方法仅使用 I2C 接口即可实现此目的?
我假设正确的方法是切换 HPD 引脚。 但是写入 I2C 复位寄存器(寄存器地址0x01)似乎不会影响 HPD 引脚。
您好!
我将查看寄存器、看看这是否可以完成。
好的、如果我加载新的 EDID、然后将0x10写入0x1寄存器、则不会影响 HPD 引脚。 我尝试了 RESET0、RESET1和 HDMI 复位位位。
下面是我的配置:Windows 10 PC -> HDMI -> SV600978 Devboard -> FPD-Link -> DS90UB926 -> 854x480屏幕
上电后、我通过 I2C 配置远程解串器和屏幕。 我在屏幕上看到失真的图像、因为 PC 发送了720p 视频流。 由于默认 SV600978开发板 EDID、它会发送720p。
然后、我将 EDID 加载到串行器 SRAM 中。 PC 仍将 Devboard 检测为720p 接收器。 在这里、如果我手动重新插入 HDMI 电缆、则 PC 会将开发板检测为854x480接收器。
加载 EDID 后、如果您尝试使用0x01寄存器上的不同位进行复位、它根本不起作用。
帮助我在不重新插入 HDMI 的情况下进行重新设计的唯一方法是:
1) 1)将 HPD 引脚设置为低电平1秒、并将 GPIO 配置为开漏
2)、然后将0x02值(RESET1)写入寄存器0x01
您好!
您可以使用以下命令取消对 HPD 的置位:
0x48 = 0x01
0x49 = 0x00
0x4A = 0x00
0x4B = 0x01
0x4C = 0x00
0x4D = 0x00
0x4E = 0x00
您可以使用以下命令将其重新置为有效:
0x48 = 0x01
0x49 = 0x00
0x4A = 0x00
0x4B = 0x01
0x4C = 0x00
0x4D = 0x00
0x4E = 0x01
此致、
Casey
您好!
此代码有助于解决此问题:
I2CRegWriteByte (Addr1、0x40、0x10);
I2CRegWriteByte (Addr1、0x41、0x49);
I2CRegWriteByte (Addr1、0x42、0x10);
I2CRegWriteByte (Addr1、0x42、0x00);
thread.Sleep (200);
I2CRegWriteByte (Addr1、0x40、0x14);
I2CRegWriteByte (Addr1、0x41、0x49);
I2CRegWriteByte (Addr1、0x42、0x10);
I2CRegWriteByte (Addr1、0x42、0x00);