树莓派4 PCIe桥“芯片”

2020-07-01 22:06:20

在看到Thomasz Mloduchowski和Colin Riley在设法将Raspberry Pi 4的PCI-Express总线连接到USB 3.0端口方面所做的工作后,然后看到这些关于Hack-a-day的评论,我想我也应该试一试!

因此,这里有一个PCIe桥“芯片”,它简单地取代了PI上的VL805USB3.0控制器芯片,允许在USB3.0端口上访问PCI-Express总线。然而,这确实意味着失去PI的所有USB功能。如果你曾经搞砸了网络,需要连接一个键盘,这可能会是一个小问题。不要紧,USB-C电源连接器似乎可以作为USB主机运行,如果通过GPIO接口提供5V电源,则允许连接键盘。

桥接“芯片”是来自OSHPark的0.8 mm厚的PCB,在与真实VL805 QFN68 IC封装相同的位置有铜垫,然后将PCIe焊盘连接到连接到上层USB 3.0端口的USB焊盘。复位、唤醒和其他一些信号也连接到较低的USB 3.0端口。

中心附近也有一个小孔,这使得大接地垫上的任何剩余焊料在放置芯片时都有地方可去,否则焊料可能会在边缘周围被挤压,导致焊盘短路。PCB比QFN68封装稍大,因为铜与边缘的距离是有限制的。制作的PCB应该磨光到正确的尺寸,这样就可以在PCB的边缘看到铜垫的横截面,就像在QFN封装上一样。

在用网桥芯片替换了VL805后,我尝试了几块随处可见的PCIe卡,第一块是基于Realtek RTL8168的以太网适配器…。它没有起作用。然后我尝试了ASMedia ASM1083 PCIe到PCI的转换器,同样也不起作用。我检查了所有的焊点,检查了连通性和短路,一切似乎都很正常。我尝试了所有的方法,比如移除电容器和交换每个信号的+和-,以防它们在设备端被交换,因为这是PCIe的一个称为极性反转的功能,可能控制器不支持。私家侦探就是不会发现他们。似乎无法训练PCIe链路,因为dmesg显示LINK DOWN而不是LINK UP,2.5 Gbps x1(!SSC)。最后,我订购了一块包含VL805的USB3.0扩展卡,与PI相同。当它最终到达时,我把它插上电源,第一次就被检测到了!我发现了一个基于Realtek RTL8111的以太网适配器,而且它也工作得很好!安装RTL8111的驱动程序后,它可以从DHCP服务器获取IP,我可以ping接口。

我想知道RTL8168和ASM1083是什么让它们与树莓Pi不兼容?也许他们只是不喜欢通过大量USB连接器和电缆传输的PCIe信号。更新:使用ASM1184e PCIe交换机,但仍未检测到这两个扩展卡,因此可能没有信号问题。设备树文件已修改为允许多个PCIe设备,如Colins博客中所述。交换机中的其他卡工作正常,但这两个卡除外。

使用插入VL805扩展卡的4个USB 3.0闪存驱动器进行快速测试后,在5 Gbps PCIe 2.0链路上的最大理论吞吐量4 Gbps中,总读取吞吐量为3 Gbps。闪存驱动器的读取速度几乎达到极限,可能是因为读取时必须在每个驱动器之间切换的开销而略微放慢了速度。更新:使用5个USB闪存驱动器、一个USB集线器和一个USB转以太网适配器进行的另一次测试再次导致3Gbps,因此这似乎是VL805或CPU的限制。通过USB3使用固态硬盘的其他RPi4基准测试也达到了3Gbps的峰值。

应切断Riser卡上的复位和唤醒轨迹,否则复位将连接到GND,阻止卡启动,而唤醒将连接到5V,如果该引脚不能容忍5V,则可能会损坏设备。然后,复位线应将10k上拉连接到3.3V电源,或连接到PI的较低USB 3.0端口的D信号。

Colin提到,Thomasz的设置也有内核恐慌问题,我也有一些恐慌和冻结,但这似乎是由于摆动PCIe卡太多造成的。

这个PDF在第7页和第8页上有一个使用VL805的完整原理图(见下图),非常方便,因为关于芯片的任何信息都很少。

这些“筹码”可以在我的丁丁专卖店买到!或者可以直接向我订购,请发送电子邮件至[email protected]