我可以将Raspberry Pi用作USB外围设备吗?


44

Raspberry Pi具有Micro USB端口用于供电。我的问题是该端口仅用于供电还是可以用于数据?我希望能够将Raspberry Pi作为USB外设连接到另一台计算机。这可以通过电源端口进行吗?如果没有,可以通过其他方式完成吗?


我知道这个问题早就解决了,但是如果您真的想做的话,可以做的是用两个串行端口对Arduino进行编程以简单地传递消息。有点骇人听闻,但您应该能够以这种方式工作。
瑞安·肯尼迪

计算模块开发套件随附的新IO板似乎具有USB从接口...如何使它工作?
Kozuch 2014年

Pi上的端口仅用于供电,但可以通过适配器通过串行连接连接到Pi,以基本访问Pi
Wilf 2015年

Answers:


29

我看了原理图 ; 微型USB连接的数据引脚未连接任何东西。因此,无法将RPi安装为外部设备。

使用SSH可以挂载RPi的硬盘或通过网络登录。

GPIO引脚包括一组UART数据线,可用于从PC到RPi的串行连接。

位撞击式USB

位撞击USB已完成(AVR V-USB),但是,您需要设计自己的扩展板,并添加另一个USB端口。可以想象该端口可以为RPi供电。完成此操作后,您将需要编写某种驱动程序。祝好运。

如果您准备好解决所有这些麻烦,那么也许值得考虑使用FTDI芯片。您可以将其连接到RPi的UART引脚。从软件的角度来看,您将与计算机进行通信,就好像它是串行设备一样。


除了可能用GPIO重新实现USB?

2
那里没有希望。您无法位USB。
Alex Chamberlain 2012年

那张图正是我想要的。好答案。
Jivings 2012年

1
@ Alex,Bit-banging USB已经完成。40MHz PIC可以执行低速USB。也许700MHz的ARM可以达到正常速度?
finnw 2012年

3
dicks.home.xs4all.nl/avr/usbtiny-另一个用于12Mhz AVR的受冲击的USB。请注意,这是唯一可行的,因为在微控制器中您可以完全控制时钟和中断。您至少需要运行RTLinux才能获得这种控制。另外,您应该使用SPI而不是GPIO来执行此操作。
Alistair Buxton 2012年

8

由于微型USB端口的数据引脚未连接到SoC的USB PHY,因此您无法使用此端口进行数据传输(在主机或从机模式下)。

但是,应该可以在从机模式下使用Model A上的USB Type A端口。

一些进一步的细节;

B型使用SMSC LAN9512 USB 2.0集线器和10/100以太网控制器IC从Broadcom SoC上的单个USB OTG端口提供多个物理USB主机端口。(请参见此处的原理图:http : //www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf

该集线器IC的存在阻止了USB端口在从机模式下使用。但是,由于Model A没有该IC,而只有一个USB端口直接连接到SoC的OTG端口,因此应该可以通过软件将其配置为从模式。

由于A型具有母USB母端口,因此需要HOST到HOST的转换电缆。

请参阅此Raspberry Pi论坛线程以获取更多详细信息:http ://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696


5

由于PI上的USB是OTG,因此Model A将能够使用标准的小工具接口,因此您可以强制其进入设备模式。

但这意味着您将丢失以太网和任何其他USB


5

由于多种原因,Rasberry PI A / A + / B / B +模型已禁用OTG模式:

  • USB集线器(以太网)占用的USB端口,
  • 缺少OTG第5引脚(接地),或
  • 数据引脚未连接(电源端口)。

您需要RTG的Raspberry PI Zero或所谓的Gadget Mode。数据USB端口可用于OTG和“电源”。在撰写本文时,已经对串行和以太网进行了测试,但其他设备(键盘,磁盘,摄像机等)也应进行适当的工作。复合设备也应工作。查看更多信息

预期该工作将合并到rpy-4.4版本的内核中以实现OTG功能,以便OOTB可以使用它进行更简单的黑客攻击。

大多数举重工作在Github raspberrypi / linux Issue#1212中进行


你好,欢迎光临。谢谢您的意见。你可能想在这里也贡献:raspberrypi.stackexchange.com/questions/38576/...
Ghanima


我可以将电源端口用作客户端设备,将另一个端口用作主机端口吗?将电源端口用作虚拟以太网以连接到PC,将另一个端口用于将USB设备连接到pi会很酷。
allo

这个答案很困惑,特别是因为链接没有提供任何支持性证据证明电源插座可以用于数据。它们中的大多数都只是关于在内核中实现OTG小工具模式,这是现在的标准操作,可以通过电源插孔完成,但是不能通过电源插孔完成。只有一个可用于插孔电源和数据,而不是两个。
goldilocks

我更正了答案。事实是数据端口可用于为Raspberry PI Zero供电,也可作为OTG端口
myroslav

4

不幸的是,电源端口通常无法以这种方式工作,因此您将无法将micro USB端口用于除电源以外的任何其他功能。

我目前无法想到可以将Pi用作外围设备的方法,但是您可以通过其他几种方式访问​​Pi,包括SSH,FTP或samba共享。

如果您详细说明您要实现的目标,那么我们可以建议最佳的实现方法。


只是一个直观的例子,我想将Raspberry Pi用作声卡。我当然会为两端编写驱动程序,但是我需要以某种方式将其连接到PC。

1
一个很好的解决方案是通过SSH传输音频。当然,您也可以尝试使用GPIO!
吉文斯2012年


1

是的,如果您使用某些带有SPI接口的USB外设控制器(例如MAX3420E)并为其编写驱动程序(如果Linux尚不支持该驱动器并处理您要实现的特定USB类),则可以。




-2

您可以从PC到Raspberry Pi建立简单的网络连接,然后使用Pulse Audio通过网络传输声音。Pulse Audio是提供网络透明性的声音服务器。因此,您可以在PC上播放声音文件,并通过连接到Raspberry Pi的扬声器收听声音文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.