修改HDMI欺骗器EDID信息

问题

之前购置的HDMI的EDID欺骗器,其读取的EDID信息与真实的显示器EDID差别较大,希望调整成真实的显示器的EDID,应该如何操作?

探索

EDID欺骗原理

首先要知道EDID欺骗器的原理。经过搜索,得到了这个文档一种强制hdmi接口输出视频信号的装置和方法。其内容描述了如何欺骗HDMI输出设备,其核心是把HPD拉高,并使用了24C02的EEPROM来响应HDMI输出设备的DDC查询。因此,我手头的HDMI欺骗器应该也是类似的构造。HDMI欺骗器

EDID欺骗方案确认

将欺骗器使用手锯切开,拿掉金属外壳,使用细一字螺丝刀小心的把内部填充的软塑胶撕开并移除,留下内部的电路板。其外观如下
HDMI欺骗器拆解
经过测量,5脚的SOT23封装的芯片,标注着P02A 7KP32,分别连接到了HDMI的SCL,SDA,HPD,5V,GND。基本可以确认这就是一颗24C02。其引脚布局如下
引脚布局对比
经过与查询到24C02芯片的Datasheet中的封装进行对比,可以确认就是24C02芯片

I2C烧录线设计

烧录方案打算使用CH341A烧录器的I2C模式进行烧录。

欺骗器中的24C02的WP引脚,使用1k电阻上拉至5V,因此平时工作时是写保护状态。如果想写入,则必须将其下拉到GND。因此,烧录时需要将HPD与GND连接到一起。其他引脚均依次连接即可。

由于这里希望制作一个通用的烧录器,不想把所有都HDMI EDID欺骗器都拆开进行烧录,因此需要将HDMI接口处的引脚引出,连接到烧录器上。由于购置的HDMI转接板还有好几天才能到,因此打算用家里现成的工具进行制作。找了一圈,家里有HDMI母对母的转接头,还有质量较差的设备自带的短HDMI线,因此打算使用一条剪断的HDMI线,配合面包板和杜邦排针做一个接头。剪开后剥出线芯,通过母对母转接头插上EDID欺骗器,使用万用表二极管档位测量线芯和24C02的芯片引脚的对应关系如下

因此焊接方案如下

  • HDMI Pin19(HPD)与Pin17(GND)包芯透明线焊接到 I2C的GND
  • HDMI Pin15(DDC SCL)紫色线焊接到I2C的SCL
  • HDMI Pin16(DDC SDA)蓝色线焊接到I2C的SDA
  • HDMI Pin18(+5V)白色线焊接到I2C的VCC

焊接效果如下
EDID烧录线焊接
如果不想焊接,可以去某宝上购买HDMI母转2.54mm排针的转接器,使用杜邦线连接到面包板上,再连接到烧录座上。

连接烧录器

参照24C02的TTSOP的封装引脚定义连接烧录线与CH341上的转接板
24C02-8lead
烧录线连接烧录器和待烧录的EDID欺骗器效果如下
EDID完整烧录套件

准备烧录软件

我使用macOS进行烧录操作。经过搜索,网上已经有了CH341烧录I2C的工具ch341eepromtool。下载后进行编译安装,得到了一个命令行工具 ch341eeprom

这个工具可以读取和写入和验证I2C的eeprom

实操

获得目标EDID

接下来要获取用于写入的EDID信息。经过搜索,根据macOS 下读取并解析 EDID文章的说明,克隆并编译了 edid-decode。然后移除EDID欺骗器,使用 ioreg读取EDID信息

将尖括号里的内容单独保存到文本文件,命名为 edid.log
然后使用 edid-decode将其转换为二进制文件

至此待写入的EDID信息准备完毕

写入目标EDID

写入过程正常结束无报错,断开CH341的电源并拔出EDID欺骗器。

效果

插上更新EDID信息的欺骗器,在系统设置里查看显示器名称,发现已经与裸显示器一样了!
问题解决~

发表评论

为防机器,验证码请直接输入4个数字1

*