自制PSV microSD卡适配器:硬件改造与USB存储技术解析

本文详细介绍了为PSV游戏机开发自定义microSD卡适配器的全过程,包括硬件设计、芯片选型、PCB布局、原型测试及电源优化等技术内容,实现了通过3G调制解调器接口扩展USB存储功能。

psvsd:自定义Vita microSD卡适配器

关于Vita破解,我最喜欢的是它的深度。在花了大量时间对软件和硬件进行逆向工程后,你以为会没有什么可破解的了。但每个未解决的问题都会引出一个长达数月的项目。这一切始于HENkaku Ensō的开发。我们想要一种在启动早期打印调试语句的简单方法。UART是一个很好的候选方案,因为设备初始化非常简单且协议标准。Vita SoC(内部可能称为Kermit)有七个UART端口。然而,在零售版游戏机上它们不太可能全部连接。在深入研究内核代码后,我发现3G调制解调器驱动程序bbmc.skprx包含对UART的引用。经过可靠的FCC搜索,发现Vita的3G调制解调器使用mini-PCIe连接器,但采用自定义引脚布局和外形规格。数据手册为每个引脚提供了有用的描述,UART_KERMIT似乎是最可能的候选方案(还有UART_SYSCON连接到板底部的SCEI芯片,作为系统控制器,以及UART_EXT在Vita端未连接)。因此,找到调试输出端口是成功的,但有了数据手册,USB端口引起了我的注意。放入一个自定义USB设备不是很好吗?

Vita上的USB

关于不同型号Vita上发现的各种USB端口的简要说明:

  • OLED型号上的顶部端口(通常称为“神秘端口”,被误称为“隐藏视频输出端口”)是USB主机。未知该端口是否默认启用或如何启用。
  • OLED型号上的底部端口(有时称为“多连接器”)支持UDC(USB客户端),但也可以启用USB主机支持。未知此切换如何控制,但我猜测syscon参与其中,可能是USB OTG。
  • LCD型号上的microUSB端口连接了ID引脚,这意味着支持USB OTG或类似功能。然而,未知如何激活此功能。
  • PS TV上有一个USB A型端口。
  • PS TV中还有一个USB转以太网芯片用于以太网端口,通过USB连接到Kermit。
  • 所有型号的音频编解码器芯片都通过USB连接到Kermit。
  • 当然,OLED型号上的3G调制解调器通过USB连接。在仅WiFi型号上,未填充的mini-PCIe焊盘的VDD缺少桥接。相邻屏蔽下的USB D+/D-信号也缺少铁氧体磁珠。未知桥接这三个位置是否会在WiFi型号上启用USB端口,或者是否需要额外的工作。

设计microSD适配器

为了更熟悉硬件设计并了解USB在Vita上的工作原理,我认为创建一个适合调制解调器端口的自定义Vita USB设备会很有趣。我选择此端口的主要原因是它最容易构建。只需设计和制造PCB,这很简单。相比之下,连接到任何其他USB端口需要创建自定义适配器、注塑塑料和处理机械问题。为外部端口创建适配器也不是一个可用的解决方案,因为Vita应该是便携的,大多数人不愿意悬挂一个USB端口。此外,我的自定义Vita调制解调器卡可以暴露UART端口作为控制台输出设备(这开始了整个项目)。对于这个第一个项目,我想构建一个microSD适配器。Vita存储卡以昂贵著称,32GB卡零售价为79.99美元。相比之下,具有类似性能和容量的microSD卡售价为12美元。因此,使用microSD卡作为USB存储替代专有Vita存储卡将非常有用。

选择部件

SD转USB IC非常便宜和常见——你在任何USB SD适配器中都能找到它们。快速研究表明,大多数廉价适配器使用Alcor或Genesys芯片。还有Maxim的MAX14500系列芯片,已停产,以及Microchip的USB2244芯片。廉价亚洲制造芯片的文档缺乏,因此我选择了USB2244,尽管它更贵(反正我不打算大规模生产)。相比之下,Microchip提供了良好的文档,包括布局指南和参考设计。不幸的是,我找不到USB2244的Eagle库,因此必须自己设计(使用Sparkfun的教程)。

接下来,我需要一个Vita调制解调器外形规格的Eagle部件。幸运的是,我找到了一个良好的mini-PCIe部件,并能够根据数据手册中的图纸修改为Vita使用的自定义尺寸。

原理图

接下来是将部件连接在一起。毫无经验,我再次求助于Sparkfun的教程。复制参考设计,我设计了一个带有microSD适配器和UART引脚接头的板子。

布局

我再次从Sparkfun学习板布局,确保遵循Microchip的设计指南。我还通过查看参考板的布局并确保相对距离与我的设计匹配来作弊。主要挑战是由于尺寸受限而进行布线,但通过一些创造力,我成功连接了一切。

制造

下一步是生产一些原型。幸运的是,在当今时代这非常容易。Pcbshopper允许你选择设计需求,并在许多PCB制造商中搜索最佳价格。许多中国制造商的价格(加运费)相似——标准选项10块板约15美元。问题是交付周期慢,运输更慢。在整个项目中,我尝试了EasyEda、SeeedStudio、DirtyPCBs和PCBway。以下是我与每个制造商经验的迷你评论。

我使用DirtyPCBs制作分线适配器。运输时间每美元最快(使用最便宜的运输费率,我在两个半星期内收到包裹)。板质量良好,但几个适配器的PCIe连接器切割不当,因此需要打磨才能适合Vita。即使我使用了允许的最小尺寸,布线或钻孔也没有问题。

我从SeeedStudios购买了前三个原型,因为他们的网站最容易使用,并且在PCBshopper上最干净。最便宜的运输慢(花了近一个月到达),我收到的一半以上适配器的PCIe连接器切割不当。我没有发现电气问题。

EasyEDA是我使用过的所有制造商中质量最好的。所有切割良好,钻孔非常精确且完全居中。他们不提供廉价运输,构建时间比他们估计的2-4天长几天。我还从他们那里订购了钢网,效果也很好。

PCBway是我推荐的制造商。虽然质量不如EasyEDA优秀,但仍优于其他制造商(连接器没有问题)。他们也不提供廉价运输,但构建时间比EasyEDA快几天。更重要的是,PCBway为PCB组装提供有竞争力的价格(比SeeedStudios便宜5倍),并最终成为本项目最终生产运行的制造商。

原型制作

调试设计的最具成本效益的方法是什么?考虑到构建这些板如此便宜,最好的调试方法是构建另一个板也就不足为奇了。我创建了第二个基于mini-PCIe的设计——这次板上有一个mini-PCIe插座作为分线板。由于分线板的设计简单,验证板的唯一要求是在到达后对每个引脚进行连通性测试。然后我可以探测分线端口上的焊盘以调试主设计上的信号。

使用分线板,我可以检查3G调制解调器的信号,预期有某种自定义握手协议。幸运的是,没有这样的序列,USB端口按原样工作。当第一批板子回来时(等了一个月),我能够通过将分线板上的USB焊盘连接到USB电缆并将psvsd卡连接到计算机来测试它。

立即,我发现了一些错误并在设计中修复了它们。在板子到达时准备好测试计划确实加快了过程。

资金

软件破解作为爱好的好处是它只花费时间而不花钱。但对于这个硬件破解,我在这个项目上花了略多于100美元用于零件、用品和板子。这比买两个视频游戏还少,因此我对成本没有疑虑,但考虑到社区表现出的兴趣,我认为将成本分摊给所有感兴趣的人更公平。我的想法是:我将限量生产100块板子(不再多,因为我将自己发货包裹,相当费力)。这些板子将以成本价出售,并额外增加1美元以支付我的费用。我听过许多众筹出问题的恐怖故事,因此我采取了许多步骤确保这将成功。

首先,我制作了一个电子表格覆盖所有成本:用品、板子、运输材料、平台费用等。然后我增加了100美元的缓冲用于任何额外费用(例如,另一个原型运行)。接下来,我确保非常清楚地提前说明贡献者支付的是什么:我开发此项目的用品。因为毫无疑问,以如此低的成本制造100块板子不会有完美的良率,我知道一小部分这些板子会有缺陷。我没有时间或金钱处理这些问题的客户服务,因此板子低价格的一部分是每个贡献者承担一定风险,即他们的板子有缺陷。最后,我设定了一个固定目标,直到60天后我才能收到钱。我在此期间花自己的钱。我希望60天后,我要么完成项目并使用解锁的钱报销自己并资助限量生产。要么,我会遇到一些无法解决的主要问题,在这种情况下我将退款给每个人,并只损失我至今花费的约200美元。然而,经过一个月的稳定进展,我感到足够自信,可以再接受400个订单,总共500个。然后从制造商那里获得大量良好样品后,我也觉得在发货前测试并确保每个适配器工作正常是可以的。

反馈非常热烈,资金目标在发布一天后达成。这给了我足够的信心和动力继续项目并确保其成功。

软件

幸运的是,驱动程序很容易创建。Vita已经有USB存储驱动程序(在PS TV安全模式下用于重新安装固件),但通常被禁用。在HENkaku Ensō上运行的简单补丁在启动时启用它,并使用The_FloW的将USB存储挂载为存储卡的补丁,一切几乎都能正常工作。

测试

接下来是重要部分,我觉得许多雄心勃勃的项目负责人会跳过——即测试。我想要一些真实世界使用数据,更重要的是,我想知道我的设计对电池的影响。这是我遇到的第一个障碍。初步结果显示,安装psvsd时空闲电池寿命减少一小时。更糟的是,即使关机也会消耗电池(无法持续一夜)。这对于日常使用是不可接受的。我拿了一个分线板,重新利用它作为电流测量工具,通过切割电源输入走线并将每端连接到电流表。

然后,我能够测量各种使用情况(读取、写入、空闲等)下的精确电流消耗。以下是其中一些测试的视频。

在测试了几个不同USB设备的功耗并在硬件论坛上询问后,我发现问题有两个方面。首先,当Vita关机时,它不关闭USB电压线,但将两个USB数据线拉低。不幸的是,这使USB设备处于“复位”模式而不是“低功耗暂停”模式。可能这对3G调制解调器不是问题,因为它是自定义设计,仅与Vita配对,并且有比仅查看USB数据线更智能的独立电源管理IC。第二个问题是USB2244是一个耗电芯片。即使SD卡上没有活动,当不在“低功耗暂停”模式时(Vita不支持),它平均和最小消耗100mA。

因此,我别无选择,只能选择“廉价亚洲制造芯片”,尽管文档和支持较少。幸运的是,我在网上找到了一些GL823的数据手册和参考原理图,并能够购买一些来试用。我发现便宜并不总是意味着质量较差。GL823不仅消耗更少功率(平均仅30mA,“复位”模式下1.5mA),而且在读写速度上也优于USB2244!更好的是,GL823不需要外部晶体,因此我可以减少一些面积占用。我本当从一开始就选择这个芯片。

此时我还购买了一个专用的USB电源测试仪,因此能够快速获取数据测量。

由于额外硬件必须以某种方式供电,电池寿命的某些下降是预期的,但在最终设计中,这种下降完全不明显。

下一步是什么?

最后,我制作了五个原型和一个分线适配器。这是一张全家福,右边是最终产品。

感谢所有为这个项目做出贡献的人!对于那些感兴趣的人,在Indiegogo页面有过程中每个步骤的更详细帖子(有更多图片)。你可以在psvsd.henkaku.xyz上找到设计。由于设计是开源且免费商业使用,我认为有人会制造、销售和支持它。这是另一个免费想法:购买大量<3.60固件的3G主板(在Aliexpress上每块约15-25美元)和螺丝(M1.6x4mm平头无沉孔),并将它们与psvsd适配器和microSD卡捆绑在一起,形成Vita破解入门套件。

我不打算自己大规模生产,但由于取消订单和额外零件,我最多有50个额外单元。因此,我决定将它们拍卖给那些最想要的人,直到2017年9月。你可以在这里找到更多相关信息。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计