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.