¿Puedo usar Raspberry Pi como dispositivo periférico USB?

44

Raspberry Pi tiene un puerto Micro USB para fuente de alimentación. Mi pregunta es si este puerto es solo para fines de alimentación o también se puede usar para datos. Me gustaría poder conectar mi Raspberry Pi como un periférico USB a otra computadora. ¿Es esto posible a través de un puerto de alimentación? Si no, ¿se puede hacer esto de otra manera?

SDsolar
fuente
Sé que esta pregunta está cerrada desde hace mucho tiempo, pero una cosa que podría hacer si realmente quisiera sería programar un Arduino con dos puertos seriales para simplemente pasar los mensajes. Un poco hack, pero deberías poder hacer que algo funcione de esa manera.
Ryan Kennedy
La nueva placa IO incluida con el Kit de desarrollo del módulo de cómputo parece tener un conector esclavo USB ... ¿cómo se puede hacer que funcione?
Kozuch 01 de
El puerto en el Pi es solo para fines de alimentación, pero a través de un adaptador es posible conectarse al Pi a través de una conexión en serie para tener acceso básico al Pi
Wilf

Respuestas:

29

He echado un vistazo al esquema ; Los pines de datos para la conexión micro USB no están conectados a nada. Por lo tanto, no hay forma de montar el RPi como dispositivo externo.

Podría ser posible montar el disco duro del RPi o iniciar sesión en la red utilizando SSH.

Los pines GPIO incluyen un conjunto de líneas de datos UART, que podrían usarse para formar una conexión en serie al RPi desde su PC.

USB de bits

Se ha realizado un USB de bits ( AVR V-USB ), sin embargo, necesitaría diseñar su propia placa de expansión que agregara otro puerto USB. Es concebible que este puerto pueda alimentar el RPi. Una vez hecho esto, necesitaría escribir algún tipo de controlador. Buena suerte.

Si está preparado para enfrentarse a todos estos problemas, puede valer la pena mirar un Chip FTDI . Conectaría esto a los pines UART del RPi. Desde la perspectiva del software, se comunicaría con la computadora como si fuera un dispositivo en serie.

Alex Chamberlain
fuente
¿Excepto quizás reimplementar USB con GPIO?
2
No hay esperanza allí. No puedes golpear bit a USB.
Alex Chamberlain
Ese diagrama era lo que estaba buscando. Buena respuesta.
Jivings
1
@Alex, se ha hecho un USB de bit-banging. Un PIC de 40MHz puede hacer USB de baja velocidad. ¿Quizás un BRAZO de 700MHz podría hacer la velocidad normal?
finnw
3
dicks.home.xs4all.nl/avr/usbtiny - otro USB golpeado para 12Mhz AVR. Tenga en cuenta que solo es posible porque en los microcontroladores tiene control total sobre el reloj y las interrupciones. Necesitaría ejecutar RTLinux como mínimo para obtener ese tipo de control. También debe usar SPI, no GPIO para hacer esto.
Alistair Buxton
8

Como los pines de datos del puerto micro USB no están conectados al USB PHY del SoC, no puede usar este puerto para datos (en modo host o esclavo).

Sin embargo, debería ser posible utilizar el puerto USB Tipo A en el Modelo A en modo esclavo.

Algunos detalles adicionales;

El Modelo B utiliza un concentrador SMSC LAN9512 USB 2.0 y un controlador 10/100 Ethernet IC para proporcionar múltiples puertos físicos USB host desde el único puerto USB OTG disponible en el Broadcom SoC. (Vea el esquema aquí: http://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf )

La presencia de este concentrador IC evita que los puertos USB se usen en modo esclavo. Sin embargo, como el Modelo A no tiene este IC presente y, en cambio, solo tiene un puerto USB conectado directamente al puerto OTG del SoC, debería ser posible configurarlo para que actúe en modo esclavo a través del software.

Como el Modelo A tiene un puerto USB host hembra, se necesitará un cable de conversión HOST a HOST.

Consulte este hilo del foro de Raspberry Pi para obtener más detalles: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696

Rob_Bishop
fuente
5

El Modelo A podrá usar la interfaz de gadget estándar, ya que el USB en el PI es OTG, entonces puede forzarlo al modo de dispositivo.

Pero esto significa que pierde Ethernet y cualquier otro USB

Gordon
fuente
5

Los modelos Rasberry PI A / A + / B / B + tienen el modo OTG desactivado por varias razones:

  • Puerto USB ocupado con concentrador USB (ethernet),
  • Falta el quinto pin OTG (conectado a tierra), o
  • los pines de datos no están conectados (puerto de alimentación).

Necesitarías Raspberry PI Zero para OTG o el llamado Modo Gadget. El puerto USB de datos se puede utilizar para OTG y "alimentación". Al momento de escribir esto, se probaron Serial y Ethernet, pero otros deberían funcionar con la cantidad adecuada de esfuerzos (teclado, disco, cámara, etc.) Los dispositivos compuestos también deberían funcionar. Ver más información en

Se espera que el trabajo se fusione con la versión rpy-4.4 del kernel para que la funcionalidad OTG esté disponible OOTB para un pirateo más simple.

La mayoría del levantamiento de pesas se realizó en Github raspberrypi / linux Edición # 1212 .

myroslav
fuente
Hola y bienvenido. Gracias por su aporte. También puede contribuir aquí: raspberrypi.stackexchange.com/questions/38576/…
Ghanima
@Ghanima: hecho;) raspberrypi.stackexchange.com/a/40626/39346
myroslav
¿Puedo usar el puerto de alimentación como Cliente-Dispositivo y el otro puerto como Host-Port? Sería genial usar el puerto de alimentación como ethernet virtual para conectarse a la PC y el otro puerto para conectar dispositivos USB a la pi.
allo
Esta respuesta es confusa, especialmente porque los enlaces no proporcionan ninguna evidencia que respalde la afirmación de que el conector de alimentación se puede usar para datos. La mayoría de ellos se trata simplemente de implementar el modo de gadget OTG en el núcleo, que ahora es estándar y se puede hacer pero no a través del conector de alimentación. Sólo hay un conector que se puede utilizar para ambos energía y datos, no dos.
Ricitos de oro
Había corregido la respuesta. El hecho es que el puerto de datos se puede utilizar para alimentar Raspberry PI Zero y como puerto OTG
myroslav
4

Lamentablemente, los puertos de alimentación generalmente no funcionan de esta manera, por lo que no podrá utilizar el puerto micro USB para otra cosa que no sea la alimentación.

Actualmente no puedo pensar en una forma en que pueda usar la Pi como dispositivo periférico, sin embargo, hay varias otras formas en que puede acceder a la Pi, incluido el uso compartido de SSH, FTP o samba.

Si elabora lo que está tratando de lograr, podemos aconsejarle el mejor método para hacerlo.

Jivings
fuente
Solo un ejemplo hipotético, me gustaría usar Raspberry Pi como tarjeta de sonido. Por supuesto, escribiría controladores para ambos extremos, pero necesito conectarlo a la PC de alguna manera.
1
Una solución elegante para eso sería canalizar audio a través de SSH. ¡Por supuesto, también puedes intentar usar el GPIO!
Jivings
1

Sí, puede hacerlo si usa algún controlador periférico USB con interfaz SPI como MAX3420E y escribe un controlador para él si aún no es compatible con Linux y maneja la clase de USB específica que desea implementar.

avra
fuente
1

Se ha trabajado mucho desde el momento en que se hizo la pregunta. Ahora es posible utilizar algunos modelos de Rasberry Pi como dispositivo periférico USB (por ejemplo, almacenamiento masivo, serie, ethernet, teclado, mouse). Vea esta esencia y esta guía .

Diomidis Spinellis
fuente
-2

Puede hacer una conexión de red simple desde su PC a la Raspberry Pi y usar Pulse Audio para transferir sonido a través de la red. Pulse Audio es un servidor de sonido que ofrece transparencia de red. Para que pueda reproducir archivos de sonido en su PC y escucharlos con altavoces conectados a su Raspberry Pi.

MrBlues
fuente