2008-12-31 23 views
25

Chciałbym włączyć zasilanie urządzenia USB przez oprogramowanie w systemie Windows.Wyłączanie urządzenia USB za pomocą oprogramowania w systemie Windows

Pracuję nad małym mikrokontrolerem USB. Układ ten powróci do natywnego zachowania w cyklu zasilania i umożliwi pobranie kodu. Ponieważ mój kod spowoduje awarię urządzenia, gdy coś pójdzie nie tak - ignorując wszystkie polecenia USB - muszę fizycznie odłączyć urządzenie od systemu.

Chcę rozwijać się zdalnie i nie trzeba być fizycznie obecnym.

Do tej pory próbowałem użyć "devcon", aby wyłączyć części stosu USB. Chociaż przenosi to koncentratory do D3 (powinno być wyłączone!), Do urządzenia jest nadal dostarczane zasilanie.

Czy istnieją jakieś istniejące rozwiązania lub sztuczki SetupID, które mogą pomóc?

Odpowiedz

0

Niestety, nie jest to możliwe na komputerach PC.

Zestawy układów hosta USB nie mają możliwości całkowitego wyłączenia zasilania. Istnieje kilka sygnałów, które można wprowadzić w USB 2.0 lub 3.0, aby urządzenie mogło przejść w stan uśpienia, ale port zapewni zasilanie nawet po wyłączeniu komputera. (To znaczy, że urządzenia takie jak iPody i tak dalej mogą być ładowane w razie potrzeby.)

+1

To nie jest poprawne i zależy od konkretnego sprzętu. Istnieje możliwość wyłączenia/włączenia zasilania głównego koncentratora, gdy nie można tego zrobić dla jednego portu i tylko dla wszystkich głównych portów centrali. Ale na pewno można wyleczyć port – Ilya

3

Ponieważ jest przeznaczony do programowania/testowania zamiast do produkcji, zaleciłbym posiadanie urządzenia solid-state_relay jako części drugiego urządzenia i użycie go do włączenia zasilania połączenie USB.

+0

Korzystamy z tej metody, wystarczy przekaźnik mocy zamiast prądu elektrycznego, a następnie kabla Vbus i wstawić go do przekaźnika mocy. Wiem, że w tym celu są dedykowane przekaźniki USB, ale zakładam, że są drogie. – Ilya

+1

Czy istniałyby już huby USB, które wyłączają urządzenia, gdy host przejmuje hub w tryb niskiego poboru mocy? Ponieważ jest to w środowisku laboratoryjnym, użycie niestandardowego sprzętu będzie wymagało ciężkiej bitwy. –

+0

Umieściłem link jako oddzielną odpowiedź. – Ilya

1

Można to zrobić za pomocą przekaźnika sprzętowego i sterując nim za pomocą oprogramowania: http://pintant.cat/2012/05/12/power-off-usb-device/ (oczywiście będą używane dwa porty USB :-) jeden dla urządzenia, drugi dla przekaźnika).

+3

Dlaczego publikujesz odpowiedź, która powtarza odpowiedź wysłaną ponad 3 lata temu? –

3

Niektóre koncentratory USB mogą wyłączyć zasilanie swoich urządzeń końcowych.

"Czy można uruchomić porty USB w systemie Ubuntu?" https://askubuntu.com/questions/149242/is-it-possible-to-power-up-ports-on-a-usb-hub-from-ubuntu co wskazuje na pewnego źródła C przez hub-ctrl.c

zobacz: http://www.gniibe.org/development/ac-power-control-by-USB-hub/index

Przetestowałem to na Ubuntu ze snu-Cheeky USB LED jednostki, i to nie wydaje się wyłączyć zasilanie - chociaż po ponownym włączeniu urządzenie zapamiętało (!) swój stan włączenia/wyłączenia diody LED? - Tak się nie stało, gdy odłączyłem i ponownie napiąłem przewód USB do diody LED ...

Wygląda na to, że ktoś szukał kompilacji dla Windows, ale nie mogłem znaleźć rezultatu, przepraszam.

0

Jest to proste rozwiązanie w Windows, jeśli kupisz this external USB hub. Ma nieudokumentowaną funkcję, która przełącza zasilanie na wszystkie podłączone urządzenia USB, gdy hub jest "włączony" w Menedżerze urządzeń systemu Windows. Można to zrobić ręcznie:

  1. Run "Device Manager"
  2. Rozwiń "Kontrolery uniwersalnej magistrali szeregowej"
  3. otworzyć Właściwości dla odpowiedniego "Generic USB hub"
  4. wybierz "Sterownik" Zakładka
  5. Kliknij przycisk "Wyłącz"
  6. Kliknij przycisk "Włącz".Koncentrator na krótko wyłączy wyjście zasilania do wszystkich 4 portów USB, a następnie ponownie go uruchomi.

Można to również zrobić programowo z dowolnej aplikacji systemu Windows, która działa z ograniczeniami administratora. Oto an example in C#.

Z powodzeniem używam tej techniki do przełączania zasilania na urządzenia USB, które były "zablokowane". Z pewnością pokonuje fizyczne odłączanie urządzeń, zwłaszcza na komputerach zdalnych lub bezzałogowych.

Powiązane problemy