市中心道格·布朗 ❷ 仅在 Mac 上运行的 Elgato HD60 S 的硬件维修

作者遇到一个从未见过的奇怪问题及最终的硬件修复方法。此前修复过 Elgato Game Capture HD60 S HDMI 捕获卡的 LED,此次为确认新模型中闪存数据正确而购买一个 eBay 上宣称不工作的设备,虽便宜但为较新款式,其描述为接入电脑后电源灯亮但电脑无法识别。到货后发现配的 USB A 至 C 线非超高速线,即使使用已知工作的线也会出现 Windows 10 立即识别为断开的情况,打开后发现是旧型号 HD60 S 装在新外壳中,已有多个旧型号工作示例,此次无法从中学到新关于 LED 的东西,而是面临新挑战能否修复。遇到 USB-C 端口问题时可尝试反转插线方向,此设备两种方向都不行,在其他电脑如运行 Windows 11 的笔记本及运行 Linux 的电脑上也有相同故障,将其接入 M2 Mac mini 时却能完美工作,在 Linux 或 macOS 系统下工作正常,在 Windows 系统下则立即断开。通过 Wireshark 和 USBPcap 研究发现 Windows 系统下驱动进行特定控制传输时会出现 USBD_STATUS_XACT_ERROR 错误代码,用 USB 捕获创建 libusb 程序在 Linux 或 Mac 系统下回放导致设备断开,确定是与 Windows 设置的 USB 3.0 主机控制器不兼容的硬件问题。dump 此有问题设备的 SPI 闪存内容,发现其固件与之前修复的新设备相同,确认软件无问题,进行硬件逆向工程,确认 PI3USB302 的 mux SEL 引脚根据插线方式正确变化,更换 PI3USB302 芯片无效,尝试去掉 TVS 二极管和串联电容器也无变化,最终确定是 USB-C 端口本身或 CYUSB3014 主处理器损坏,因怀疑 USB 端口问题而专注于 CYUSB3014,购买价格便宜的 LCSC 芯片替换,经过多次加热焊接尝试,最终成功修复,视频捕获完美,在 Windows 和 macOS 系统下都工作正常,作者对焊接工作很有成就感,认为软向下轻敲起了作用,此修复标志着作者对早期 LED 修复的确认,也许原 CYUSB3014 芯片因 ESD 损坏,仍觉得在 Mac 或 Linux 系统下工作正常而在 Windows 系统下不行很奇怪,还发现一些 USB 控制传输数据与之前修复的设备中 corrupted LED 动画的“junk headers”模式匹配,可能是 LED 动画被损坏的线索,总体而言修复很成功,若未来在 eBay 上再遇到便宜的坏设备可能会继续挑战,还有新的 CYUSB3014 芯片等待使用。

阅读 11
0 条评论