Come posso interrompere l'alimentazione proveniente dalle porte USB del Pi?


10

Ho un semplice dispositivo collegato al Raspberry Pi, una piccola ventola USB. Il problema è che la ventola non ha un interruttore on / off, quindi devo scollegarla ogni volta che voglio che si fermi.

La mia domanda è: esiste un modo per interrompere l'alimentazione proveniente dalle porte USB del Pi?


Intendi la potenza in uscita, vuoi essere in grado di spegnere la ventola ma non il pi, o la potenza in entrata, per cui l'alimentazione della ventola sta backpowering il pi, anche se l'alimentazione del pi è stata scollegata?
René Wolferink,

Voglio spegnere il ventilatore che il pi deve funzionare normalmente.
opc0de,

Risposte:


4

No, l'alimentazione USB è cablata direttamente all'alimentazione RPi.

Puoi interrompere l'alimentazione della ventola con un transistor o un relè, ma dovrai tagliare il filo rosso.


1
Buona risposta, gnibbler e abbastanza corretta da quello che ho letto sui forum di raspberrypi.org. Posso aggiungere che ho provato a farlo su altre macchine (ARM e x86) ed è raramente possibile - solo alcuni controller USB consentono il controllo dell'alimentazione del software. stackoverflow.com/questions/4702216/… stackoverflow.com/questions/1163824/… Quindi non mi sorprende che ciò non sia possibile con l'USB minimo nel Pi.
Tai Viinikka,

Spesso è possibile attivare e disattivare l'alimentazione nelle porte di un hub USB. Potrebbe provare con la ventola sull'hub su pi, quindi accendere / spegnere la porta dell'hub. Potrebbe essere necessario un hub alimentato esterno, dipende da quanto è densa la tua aria e da quanto deve funzionare la ventola.
lornix,

3
Questa risposta è sbagliata È possibile controllare l'alimentazione USB per i modelli Raspberry Pi B, 2B, 3B - vedi la mia risposta su come farlo esattamente.
MVP

@mvp, posso anche dire che la tua risposta è esattamente sbagliata per tutto il lampone PI che esisteva quando è stata posta la domanda. Non cambierò questa risposta in quanto è ancora vero per milioni di IP lampone originali. È facile per qualcuno con un PI prodotto dopo il 2014 vedere anche la tua risposta.
John La Rooy,

11

Puoi usare il mio strumento uhubctl , supporta i modelli Raspberry Pi B +, 2B, 3B, 3B + e 4B - questi modelli hanno la capacità hardware di spegnere e accendere l'USB.

Usalo in questo modo:

Spegnere tutte le porte USB (è necessario utilizzare la porta 2):

sudo uhubctl -p 2 -a 0

Accendi tutte le porte USB (devi utilizzare la porta 2):

sudo uhubctl -p 2 -a 1

Spegni Wi-Fi + Ethernet (devi utilizzare la porta 1):

sudo uhubctl -p 1 -a 0

Si noti che Raspberry Pi 4 è molto diverso dai modelli precedenti in quanto ha un chip USB3. Non supporta lo spegnimento di Wifi + Ethernet e per USB dovrai usare qualcosa del genere per spegnere (devi usare la porta 4):

sudo uhubctl -l 2 -p 4 -a 0

Se Raspberry Pi non supporta la commutazione dell'alimentazione USB, è possibile collegare un hub USB esterno (consultare l'elenco dei modelli compatibili ) e controllare l'alimentazione su tale hub esterno tramite uhubctl.


Lo strumento rimane spento dopo il riavvio?
Dstonek,

@dstonek, ovviamente no. ma puoi invocarlo su /etc/rc.local per disabilitare l'alimentazione all'avvio
mvp

4

6
caspita non ci avevo pensato !!
opc0de,

Non capisco davvero perché il tuo commento sia così scortese? Non hai mai detto di aver pensato al passaggio! Ho cercato di aiutarti (aiuto: non è quello che hai chiesto). Ma capisco la tua frustrazione, vedi la mia modifica. Sembra che alla domanda sia già stata posta una risposta.
David

2
Non preoccuparti David - Forse non era la risposta per l'OP - Ma a qualcun altro potrebbe piacere per un'altra circostanza. La tua risposta è buona +1 - Non so perché sei stato sottratto al voto- L'OP ha detto che non ha un interruttore on.off e tu gli hai mostrato dove comprarne uno con un on / off :) -1 non era necessario qui e un po 'maleducato. si: P
Piotr Kula

1
David, in effetti non dovresti preoccuparti, ma la tua risposta non risponde alla domanda, che è come tagliare la potenza proveniente dalle porte USB del PI. Quindi non è una buona risposta. Sono sorpreso che tu abbia ottenuto voti positivi.
Jaap Versteegh,

1
Questo non ha risposto alla domanda.
Dr. McKay,

0

Questo funziona anche per me sul Raspberry Pi 3. È stato copiato da qui .

   sudo apt-get update
   sudo apt-get install libusb-dev
   git clone https://github.com/codazoda/hub-ctrl.c
   cd hub-ctrl.c
   gcc -o hub-ctrl hub-ctrl.c -lusb

Questo creerà un eseguibile chiamato hub-ctrl. È quindi possibile eseguirlo per eseguire le seguenti operazioni:

  • Spegnere tutte le porte USB

    sudo ./hub-ctrl -h 0 -P 2 -p 0
    
  • Accendi tutte le porte USB

    sudo ./hub-ctrl -h 0 -P 2 -p 1 
    

Segui il collegamento per attivare / disattivare la porta Ethernet.

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.