Posso usar o Raspberry Pi como um dispositivo periférico USB?

44

Raspberry Pi possui uma porta Micro USB para fonte de alimentação. Minha pergunta é se essa porta é apenas para fins de energia ou pode ser usada para dados também? Gostaria de poder conectar meu Raspberry Pi como um periférico USB a outro computador. Isso é possível através de uma porta de energia? Caso contrário, isso pode ser feito de outra maneira?

SDsolar
fonte
Eu sei que essa pergunta está encerrada há muito tempo, mas uma coisa que você poderia fazer se realmente quisesse seria programar um Arduino com duas portas seriais para simplesmente passar mensagens. Um pouco tolo, mas você deve conseguir fazer algo funcionar dessa maneira.
Ryan Kennedy
A nova placa IO fornecida com o Compute Module Development Kit parece ter um conector escravo USB ... como alguém pode fazê-lo funcionar?
Kozuch
A porta do Pi é apenas para fins de potência, mas através de um adaptador é possível conectar-se ao Pi através de uma conexão serial para ter acesso básico ao Pi
Wilf

Respostas:

29

Eu dei uma olhada no esquema ; os pinos de dados da conexão micro USB não estão conectados a nada. Portanto, não há como montar o RPi como um dispositivo externo.

Pode ser possível montar o disco rígido do RPi ou fazer login na rede usando SSH.

Os pinos GPIO incluem um conjunto de linhas de dados UART, que podem ser usadas para formar uma conexão serial com o RPi no seu PC.

USB que bate com bit

Já foi feito o USB de troca de bits ( AVR V-USB ), no entanto, você precisaria projetar sua própria placa de expansão que adicionasse outra porta USB. É concebível que esta porta possa alimentar o RPi. Depois de fazer isso, você precisaria escrever algum tipo de driver. Boa sorte.

Se você estiver preparado para enfrentar todo esse problema, pode valer a pena examinar um chip FTDI . Você conectaria isso aos pinos UART do RPi. Da perspectiva do software, você se comunicaria com o computador como se fosse um dispositivo serial.

Alex Chamberlain
fonte
Exceto, talvez, a reimplementação do USB com o GPIO?
2
Não há esperança lá. Você não pode fazer um bit USB.
Alex Chamberlain
Esse diagrama era o que eu estava procurando. Boa resposta.
Jivings
1
@Alex, o USB que bate com bit foi feito. Um PIC de 40 MHz pode executar USB de baixa velocidade. Talvez um braço de 700MHz possa fazer a velocidade normal?
finnw
3
dicks.home.xs4all.nl/avr/usbtiny - outro USB danificado para o AVR de 12Mhz. Observe que isso só é possível porque nos microcontroladores você tem controle total sobre o relógio e interrompe. Você precisaria rodar o RTLinux no mínimo para obter esse tipo de controle. Além disso, você deve usar o SPI e não o GPIO para fazer isso.
Alistair Buxton
8

Como os pinos de dados da porta micro USB não estão conectados ao USB PHY do SoC, você não pode usar essa porta para dados (no modo host ou escravo).

No entanto, deve ser possível usar a porta USB Tipo A no Modelo A no modo escravo.

Mais alguns detalhes;

O Modelo B usa um SMSC LAN9512 USB 2.0 Hub e 10/100 Ethernet Controller IC para fornecer várias portas físicas do host USB a partir da única porta USB OTG disponível no Broadcom SoC. (Veja o esquema aqui: http://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf )

A presença deste IC de hub impede que as portas USB sejam usadas no modo escravo. No entanto, como o modelo A não possui esse IC presente e apenas possui uma única porta USB conectada diretamente à porta OTG do SoC, deve ser possível configurá-lo para atuar no modo escravo por meio de software.

Como o Modelo A possui uma porta USB host feminina, será necessário um cabo de conversão HOST para HOST.

Consulte este tópico do Raspberry Pi Forum para obter mais detalhes: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696

Rob_Bishop
fonte
5

O Modelo A poderá usar a interface padrão de gadget, já que o USB no PI é OTG, então você pode forçá-lo a entrar no modo de dispositivo.

Mas isso significa que você perde Ethernet e qualquer outro dispositivo USB

Gordon
fonte
5

Os modelos Rasberry PI A / A + / B / B + têm o modo OTG desativado por vários motivos:

  • Porta USB ocupada com hub USB (Ethernet),
  • quinto pino OTG ausente (aterrado) ou
  • pinos de dados não estão conectados (porta de alimentação).

Você precisaria do Raspberry PI Zero para OTG ou o chamado Modo Gadget. A porta USB de dados pode ser usada para OTG e "energia". Até o momento em que este artigo foi escrito, foram testados o Serial e o Ethernet, mas outros deveriam trabalhar com a quantidade adequada de esforços (teclado, disco, câmera etc.). Os dispositivos compostos também deveriam funcionar. Veja mais informações em

Espera- se que o trabalho seja mesclado na versão rpy-4.4 do kernel para que a funcionalidade OTG esteja disponível OOTB para hackers mais simples.

A maioria dos levantamentos pesados ​​foi realizada no Github raspberrypi / linux Edição # 1212 .

myroslav
fonte
Olá e bem-vindo. Obrigdo por sua contribuição. Você também pode contribuir aqui: raspberrypi.stackexchange.com/questions/38576/…
Ghanima
Posso usar a porta de energia como Dispositivo Cliente e a outra porta como Porta Host? Seria legal usar a porta de alimentação como Ethernet virtual para conectar ao PC e a outra porta para conectar dispositivos USB ao pi.
allo
Essa resposta é confusa, especialmente porque os links não fornecem nenhuma evidência de suporte para a alegação de que o conector de força pode ser usado para dados. A maioria deles é simplesmente sobre a implementação do modo de gadget OTG no kernel, que agora é padrão e pode ser feito, mas não através da tomada de energia. Há apenas uma tomada que pode ser usado para ambos energia e dados, e não dois.
goldilocks
Eu corrigi a resposta. O facto é que a porta de dados pode ser usada para poder framboesa PI Zero e como OTG porta
Myroslav
4

Infelizmente, as portas da fonte de alimentação geralmente não funcionam dessa maneira, portanto você não poderá usar a porta micro USB para outra coisa que não seja a energia.

Atualmente, não consigo pensar em uma maneira de usar o Pi como um dispositivo periférico, no entanto, existem várias outras maneiras de acessar o Pi, incluindo SSH, FTP ou compartilhamento de samba.

Se você especificar o que está tentando alcançar, podemos aconselhar o melhor método para fazê-lo.

Jivings
fonte
Apenas um exemplo hipotético, eu gostaria de usar o Raspberry Pi como uma placa de som. É claro que eu escreveria drivers para os dois lados, mas preciso conectá-lo ao PC de alguma forma.
1
Uma solução elegante para isso seria canalizar o áudio através do SSH. Claro que você também pode tentar usar o GPIO!
Jivings
2

Sim, você pode usar um modelo A como um dispositivo escravo USB:

http://www.raspberrypi.org/forums/viewtopic.php?f=98&t=74098

Embora seja bastante limitado apenas ao uso como dispositivo de armazenamento em massa (cartão SD) - sem acesso ao GPIO, exibição ou até uso da CPU do ARM.

Mike Redrobe
fonte
1

Sim, você pode usar um Controlador Periférico USB com interface SPI como MAX3420E e escrever um driver para ele, se ainda não for suportado no Linux, e lidar com a classe USB específica que deseja implementar.

avra
fonte
1

Muito trabalho foi feito desde o momento em que a pergunta foi feita. Agora, é possível usar alguns modelos Rasberry Pi como um dispositivo periférico USB (por exemplo, armazenamento em massa, serial, Ethernet, teclado, mouse). Veja esta essência e este guia .

Diomidis Spinellis
fonte
-2

Você pode fazer uma conexão de rede simples do seu PC ao Raspberry Pi e usar o Pulse Audio para transferir som pela rede. O Pulse Audio é um servidor de som que oferece transparência de rede. Assim, você pode reproduzir arquivos de som no seu PC e ouvi-los com os alto-falantes conectados ao seu Raspberry Pi.

MrBlues
fonte