Posso usare Raspberry Pi come dispositivo periferico USB?


44

Raspberry Pi ha una porta Micro USB per l'alimentazione. La mia domanda è se questa porta è solo a scopo di alimentazione o può essere utilizzata anche per i dati? Vorrei poter collegare il mio Raspberry Pi come periferica USB a un altro computer. È possibile tramite una porta di alimentazione? In caso contrario, questo può essere fatto in un altro modo?


So che questa domanda è chiusa da tempo, ma una cosa che potresti fare se volessi davvero è programmare un Arduino con due porte seriali per passare semplicemente i messaggi. Un po 'hacker, ma dovresti riuscire a far funzionare qualcosa in quel modo.
Ryan Kennedy,

La nuova scheda IO fornita con il kit di sviluppo del modulo di calcolo sembra avere un connettore USB slave ... come si fa a farlo funzionare?
Kozuch,

La porta sul Pi è solo a scopo di alimentazione, ma tramite un adattatore è possibile connettersi al Pi tramite una connessione seriale per avere un accesso di base al Pi
Wilf

Risposte:


29

Ho dato un'occhiata allo schema ; i pin di dati per la connessione micro USB non sono collegati a nulla. Pertanto, non è possibile montare l'RPi come dispositivo esterno.

Potrebbe essere possibile montare il disco rigido di RPi o accedere alla rete usando SSH.

I pin GPIO includono una serie di linee dati UART, che potrebbero essere utilizzate per formare una connessione seriale a RPi dal PC.

USB a sbattere di bit

L'USB bit banging è stato eseguito ( AVR V-USB ), tuttavia, è necessario progettare la propria scheda di espansione che ha aggiunto un'altra porta USB. È ipotizzabile che questa porta possa alimentare l'RPi. Fatto ciò, dovresti scrivere una specie di driver. In bocca al lupo.

Se sei pronto ad affrontare tutti questi problemi, potrebbe valere la pena guardare un chip FTDI . Collegheresti questo ai pin UART di RPi. Dal punto di vista del software, si comunica con il computer come se fosse un dispositivo seriale.


Tranne forse reimplementare USB con GPIO?

2
Non c'è speranza lì. Non è possibile bit-bang USB.
Alex Chamberlain,

Quel diagramma era quello che stavo cercando. Bella risposta.
Jivings,

1
@Alex, USB a sbattere di bit è stata eseguita. Un PIC a 40 MHz può eseguire USB a bassa velocità. Forse un ARM a 700 MHz potrebbe fare una velocità normale?
Finnw,

3
dicks.home.xs4all.nl/avr/usbtiny - un'altra USB sbattuta per AVR a 12 MHz. Nota che è possibile solo perché nei microcontrollori hai il pieno controllo dell'orologio e degli interrupt. Dovresti eseguire RTLinux almeno per ottenere quel tipo di controllo. Inoltre, dovresti usare SPI non GPIO per fare questo.
Alistair Buxton,

8

Poiché i pin dei dati della porta micro USB non sono collegati al PHY USB del SoC, non è possibile utilizzare questa porta per i dati (in modalità host o slave).

Dovrebbe essere possibile tuttavia utilizzare la porta USB di tipo A sul modello A in modalità slave.

Alcuni ulteriori dettagli;

Il modello B utilizza un hub USB 2.0 LAN9512 SMSC e un IC controller Ethernet 10/100 per fornire più porte host USB fisiche dalla singola porta USB OTG disponibile sul SoC Broadcom. (Vedi lo schema qui: http://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf )

La presenza di questo hub IC impedisce l'utilizzo delle porte USB in modalità slave. Tuttavia, poiché il Modello A non ha questo IC presente e invece ha solo una singola porta USB collegata direttamente alla porta OTG del SoC, dovrebbe essere possibile configurarlo per agire in modalità slave tramite software.

Poiché il modello A ha una porta USB host femmina, sarà necessario un cavo di conversione da HOST a HOST.

Per ulteriori dettagli, consulta questa discussione sul forum Raspberry Pi: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696


5

Il modello A sarà in grado di utilizzare l'interfaccia standard del gadget poiché l'USB sul PI è OTG, quindi è possibile forzarlo in modalità dispositivo.

Ma questo significa che perdi Ethernet e qualsiasi altra USB


5

I modelli Rasberry PI A / A + / B / B + hanno la modalità OTG disabilitata per vari motivi:

  • Porta USB occupata con hub USB (Ethernet),
  • 5o pin OTG mancante (collegato a terra) o
  • i pin dei dati non sono collegati (porta di alimentazione).

Avresti bisogno di Raspberry PI Zero per OTG o la cosiddetta modalità Gadget. La porta USB dati può essere utilizzata per OTG e "alimentazione". Al momento della stesura di questo articolo Serial ed Ethernet sono stati testati, ma altri dovrebbero funzionare con la giusta quantità di sforzi (tastiera, disco, fotocamera, ecc.) Anche i dispositivi compositi dovrebbero funzionare. Vedi maggiori informazioni su

Il lavoro dovrebbe essere unito alla versione rpy-4.4 del kernel per rendere disponibile la funzionalità OTG OOTB per un hacking più semplice.

La maggior parte del sollevamento pesi è stata condotta nel numero 1212 di Github raspberrypi / linux .


Ciao e Benvenuto. Grazie per il tuo contributo. Potresti voler contribuire anche qui: raspberrypi.stackexchange.com/questions/38576/…
Ghanima


Posso usare la porta di alimentazione come Client-Device e l'altra porta come Host-Port? Sarebbe bello usare la porta di alimentazione come Ethernet virtuale per la connessione al PC e l'altra porta per collegare dispositivi USB al pi.
allo

Questa risposta è confusa, soprattutto perché i collegamenti non forniscono alcuna prova a sostegno dell'affermazione che il jack di alimentazione può essere utilizzato per i dati. La maggior parte di essi riguarda semplicemente l'implementazione della modalità gadget OTG nel kernel, che è ora standard e può essere fatto ma non tramite il jack di alimentazione. C'è solo un jack che può essere utilizzato sia per l' alimentazione che per i dati, non due.
riccioli d'oro

Avevo corretto la risposta. Il fatto è che la porta dati può essere utilizzata per alimentare Raspberry PI Zero e come porta OTG
myroslav

4

Sfortunatamente, le porte di alimentazione in genere non funzionano in questo modo, quindi non sarà possibile utilizzare la porta micro USB per scopi diversi dall'alimentazione.

Al momento non riesco a pensare a un modo in cui puoi usare il Pi come dispositivo periferico, tuttavia ci sono molti altri modi in cui puoi accedere al Pi tra cui SSH, FTP o condivisione samba.

Se approfondisci ciò che stai cercando di ottenere, possiamo consigliarti il ​​metodo migliore per farlo.


Solo un esempio ipotetico, vorrei usare Raspberry Pi come scheda audio. Ovviamente scriverei i driver per entrambe le estremità, ma in qualche modo devo collegarlo al PC.

1
Una soluzione elegante sarebbe quella di convogliare l'audio attraverso SSH. Ovviamente potresti anche provare a usare GPIO!
Jivings,


1

Sì, è possibile se si utilizza un controller periferico USB con interfaccia SPI come MAX3420E e si scrive un driver per esso se non è ancora supportato in Linux e si gestisce una specifica classe USB che si desidera implementare.


1

Molto lavoro è stato fatto dal momento in cui è stata posta la domanda. È ora possibile utilizzare alcuni modelli di Rasberry Pi come dispositivo periferico USB (ad es. Archiviazione di massa, seriale, Ethernet, tastiera, mouse). Vedi questo riassunto e questa guida .



-2

È possibile effettuare una semplice connessione di rete dal PC a Raspberry Pi e utilizzare Pulse Audio per trasferire l'audio sulla rete. Pulse Audio è un Sound Server che offre trasparenza di rete. Quindi puoi riprodurre file audio sul tuo PC e ascoltarli con gli altoparlanti collegati a Raspberry Pi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.