HDMI/DVI接口中DDC通信电平兼容问题调试总结

    最近调试HDMI接口的EDID数据存储,用到24c02的读写操作。此处的关键是不同的设备对该eeprom进行操作。需要通过单片机写入EDID数据,使用时通过外设(笔记本等HDMI信号源)读取24C02的数据,然后输出视频信号。

    接口电路如下:

                                       一般的HDMI信号源带了5V的电源。关键就在这里了,这次使用的CPLD端口电压时3.3V的,之前使用的其他端口扩展芯片电压都是5V感觉没什么问题,整个调试过程都非常顺利,就这次遇到这个问题纠结了两天。通过各种飞线各种办法测试终于找到原因是:在24C02的数据时钟端口上的电压为3.3V,当只连接HDMI接口,主机不供电时,电压为5V。

        这个问题还真有点麻烦了,难道必须要重新改电路板???考虑了几分钟,突然想到了,电压被拉低的原因,就是因为CPLD端口输出的电压造成的,那就从CPLD入手,不让她输出电压不就OK了?办法就是在正常工作模式下,将CPLD的端口设置为高阻态。果真此法有效,通过修改CPLD的程序,测试一切搞定!!!!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,我了解到您想了解如何在Python实现HDMI DDC(Display Data Channel)功能。HDMI DDC是一种用于在计算机和显示器之间传输数据的协议,它允许计算机通过HDMI接口与显示器进行通信。 在Python实现HDMI DDC功能需要使用ctypes库来调用底层的C函数。您可以按照以下步骤来实现: 1. 首先,您需要安装pywin32库,它提供了与Windows API的Python绑定,以便在Windows系统上进行HDMI DDC通信。您可以使用以下命令来安装pywin32库: ```shell pip install pywin32 ``` 2. 然后,您可以使用以下代码示例来实现HDMI DDC功能: ```python import ctypes # 定义常量 DDC_DISPLAY_ADDRESS = 0x37 DDC_READ_COMMAND = 0x01 DDC_WRITE_COMMAND = 0x02 # 定义结构体 class DDCCommand(ctypes.Structure): _fields_ = [("displayAddress", ctypes.c_ubyte), ("command", ctypes.c_ubyte), ("control", ctypes.c_ubyte), ("data", ctypes.c_ubyte)] # 调用底层函数 def send_ddc_command(display_address, command, control, data): ddc_command = DDCCommand(display_address, command, control, data) ctypes.windll.dxva2.SetMonitorBrightness(ctypes.c_void_p(), ctypes.byref(ddc_command)) # 发送读取命令 def read_ddc(display_address, control): send_ddc_command(display_address, DDC_READ_COMMAND, control, 0) # 读取返回的数据 # ... # 发送写入命令 def write_ddc(display_address, control, data): send_ddc_command(display_address, DDC_WRITE_COMMAND, control, data) # 示例:读取亮度值 brightness = read_ddc(DDC_DISPLAY_ADDRESS, 0x10) print("Brightness:", brightness) ``` 请注意,上述代码示例是基于Windows系统的,如果您使用的是其他操作系统,可能需要使用不同的库或方法来实现HDMI DDC功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值