Hacker News 中文摘要

RSS订阅

从零开始打造24位街机CRT显示适配器 -- Building a 24-bit arcade CRT display adapter from scratch

文章摘要

作者和朋友为游戏厅的CRT显示器自制了一个24位显示适配器,通过USB连接普通电脑,解决了非标准信号输入的问题。

文章总结

从零打造24位街机CRT显示适配器

项目背景

2026年2月,作者Stephen为Recurse Center的街机"RCade"开发了一款定制显示适配器。这台街机保留了原装CRT显示器,但需要将驱动设备从树莓派升级为性能更强的电脑,因此需要解决非标准分辨率(336x262)和色彩深度(24位)的显示适配问题。

技术挑战

  1. 非标信号处理:CRT通过JAMMA接口接收信号,需转换VGA协议。市售VGA适配器无法支持低于640x480的分辨率。
  2. 色彩提升:原树莓派方案仅支持18位色深,存在明显色带问题。
  3. 接口限制:需通过USB连接笔记本电脑而非PCI-e接口。

开发历程

第一阶段:RP2040微控制器实验 - 利用RP2040的PIO(可编程IO)模块编写精确时序的VGA信号生成程序 - 成功实现基础显示功能,但受限于USB全速(11Mbps)带宽,帧率不足10FPS

第二阶段:STM32方案重构 - 改用支持USB高速(480Mbps)和LTDC(LCD控制器)的STM32H723芯片 - 设计定制电路板包含: - 8位DAC电阻网络(精确匹配0.7V VGA标准) - HyperRAM帧缓存 - 长度匹配的存储器走线(38条同步信号) - 遭遇设计失误:未发现芯片需外接USB PHY才能支持高速模式

第三阶段:最终方案实现 - 改用STM32H750IBT芯片(176引脚LQFP封装) - 解决晶体振荡器不稳定问题(临时用人体电阻替代缺失的1MΩ电阻) - 成功实现: - 60Hz刷新率 - 24位真彩色显示 - 通过Linux内核原生支持的GUD协议传输视频

成果展示

在RCade实机测试中,新适配器显著改善了画面质量: - 完全消除色彩断层 - 保持原始CRT的扫描线效果 - 用户反馈游戏画面"好得暴露了原图形的取巧设计"

现存问题与改进方向

  • USB接口偶发故障(疑似ESD问题)
  • 计划增加音频支持(可能采用电子管放大器)
  • 软件端实现多缓冲机制
  • 为GUD协议编写正式文档

技术细节亮点

  1. DAC设计:通过SAT求解器计算电阻网络,实现精确的电压分压和阻抗匹配(75Ω)
  2. 时序控制:LTDC外设直接生成CRT所需的RGB+同步信号
  3. 成本控制:最终单板成本约100美元(含关税和运费)

项目代码已开源,包含硬件设计、固件实现及辅助工具。作者特别指出这个项目虽然耗时远超预期,但极大地提升了其工程能力。

注:文中Mini-USB接口的选择引发作者激烈辩护,称其"可爱且符合直觉",并嘲讽USB-C标准混乱——这成为技术文档中罕见的情绪化段落。

评论总结

以下是评论内容的总结:

  1. 对Raspberry Pi RP2040的正面评价

    • 认为RP2040价格便宜(约1美元),内置264KB RAM和可编程IO(PIO)功能。
    • 引用:"I like the Raspberry Pi RP2040 a lot...has tons of on-board RAM"
    • 引用:"The new RP 2350 has an enhanced PIO...relaxes some constraints"
  2. 对硬件项目的兴趣与开源分享

    • 有评论者表达对硬件项目的怀念和兴趣。
    • 开源分享的复杂性可能导致他人难以复现,但仍有启发意义。
    • 引用:"I miss messing around with hardware."
    • 引用:"people don't reproduce them...but yeah ultimately gotta do it for yourself."
  3. 技术改进建议

    • 对PCB设计提出详细建议,包括ESD保护、缓冲器使用、R-2R DAC替代方案等。
    • 引用:"Add ESD protection to all pins...a simple TVS will work."
    • 引用:"Consider a buffer between your resistor DAC and the output."
  4. 对CRT技术的讨论

    • 认为CRT技术很有趣,尤其是扁平型号。
    • 对消隐(blanking)的示例图像提出质疑,认为其未准确反映实际效果。
    • 引用:"CRT tech is neat, the flat ones are cooler."
    • 引用:"The blanking was on all sides...not just two sides."
  5. 对现代技术与CRT结合的诗意表达

    • 认为用现代工程知识复兴CRT的模拟效果具有诗意。
    • 引用:"There's something deeply poetic...warm, fuzzy glow of an analog CRT."
  6. 对其他项目的兴趣

    • 对RP2350的新功能(如HSTX单元)表示关注,并分享相关项目链接。
    • 引用:"The new HSTX unit is really well suited for rapid line coding."

总结保持了对不同观点的平衡,涵盖了技术细节、个人感受和项目改进建议。