2008-12-31 75 views
25

Tôi muốn cấp nguồn cho thiết bị USB thông qua phần mềm trên Windows.Tắt nguồn thiết bị USB trong phần mềm trên Windows

Tôi đang phát triển trên bộ vi điều khiển nguồn USB nhỏ. Chip này sẽ hoàn nguyên về hành vi gốc trên một chu kỳ nguồn và cho phép tải xuống mã. Kể từ khi mã của tôi sẽ sụp đổ các thiết bị khi mọi thứ đi sai - làm cho nó bỏ qua tất cả các lệnh USB - Tôi phải vật lý rút phích cắm điện thoại từ hệ thống.

Tôi muốn phát triển từ xa và không cần phải có mặt.

Cho đến giờ tôi đã thử sử dụng "devcon" để vô hiệu hóa các phần của ngăn xếp USB. Trong khi điều này đưa các trung tâm vào D3 (nên được tắt nguồn!), Vẫn có điện được cung cấp cho thiết bị.

Có bất kỳ giải pháp từ trước hoặc thủ thuật SetupAPI nào có thể hữu ích không?

Trả lời

0

Rất tiếc, không thể thực hiện trên máy tính cá nhân.

Máy chủ lưu trữ USB không có khả năng tắt hoàn toàn. Có một số tín hiệu mà bạn có thể thực hiện trong USB 2.0 hoặc 3.0 để yêu cầu thiết bị chuyển sang trạng thái ngủ, nhưng cổng sẽ cấp nguồn ngay cả khi PC bị tắt. (Vì vậy, các thiết bị như iPod và whatnot vẫn có thể sạc nếu cần.)

+1

Điều này không chính xác và phụ thuộc vào phần cứng cụ thể. Có một tùy chọn để tắt/bật nguồn cho trung tâm gốc đôi khi bạn không thể làm điều đó cho mỗi cổng và chỉ cho tất cả các cổng trung tâm gốc. Nhưng bạn chắc chắn có thể tắt nguồn cổng – Ilya

3

Vì nó là để phát triển/thử nghiệm thay vì sản xuất, tôi khuyên bạn nên có một thiết bị thứ hai và sử dụng kết nối USB.

+0

Chúng tôi sử dụng phương pháp này, chỉ cần chuyển tiếp công suất thay thế điện, chúng tôi vbus cáp và chèn nó vào tiếp sức. Tôi biết rằng có chuyển tiếp USB chuyên dụng cho chính xác mục đích này, nhưng tôi cho rằng chúng đắt tiền. – Ilya

+1

Đã tồn tại các hub USB tắt nguồn thiết bị khi máy chủ lưu trữ hub vào chế độ nguồn điện thấp? Vì đây là môi trường trong phòng thí nghiệm, việc sử dụng phần cứng tùy chỉnh sẽ yêu cầu một trận chiến khó khăn. –

+0

tôi đã đăng liên kết dưới dạng câu trả lời riêng. – Ilya

1

Bạn có thể thực hiện với rơle phần cứng và điều khiển thông qua phần mềm: http://pintant.cat/2012/05/12/power-off-usb-device/ (tất nhiên, sẽ sử dụng 2 cổng USB :-) một cho thiết bị, một cho relay).

+3

Tại sao bạn đăng câu trả lời trùng lặp một câu trả lời đã được đăng hơn 3 năm trước? –

3

Một số hub USB có khả năng tắt nguồn cho các thiết bị hạ lưu của nó.

"Có thể cấp nguồn cho cổng trên cổng USB từ Ubuntu không?" https://askubuntu.com/questions/149242/is-it-possible-to-power-up-ports-on-a-usb-hub-from-ubuntu nào trỏ tới một số nguồn c cho hub-ctrl.c

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

Tôi thử nghiệm này trên Ubuntu với một đơn vị Dream-Cheeky USB LED, và nó dường như để tắt nguồn - mặc dù khi bật lại, thiết bị đã nhớ (!) trạng thái bật/tắt LED của nó ??? - Điều này không xảy ra khi tôi rút phích cắm và cắm lại dây dẫn USB vào đèn LED ...

Có vẻ như ai đó đã xem xét việc biên dịch này cho Windows, nhưng tôi không thể tìm thấy kết quả, xin lỗi.

0

Có một giải pháp đơn giản cho điều này trên Windows nếu bạn mua this external USB hub. Nó có một tính năng không có giấy tờ mà chu kỳ năng lượng cho tất cả các thiết bị USB được kết nối bất cứ khi nào hub được "kích hoạt" trong Windows Device Manager. Bạn có thể làm điều này bằng tay:

  1. Run "Device Manager"
  2. Mở rộng "Universal Serial Bus controllers"
  3. mở Properties cho "Hub USB Generic" thích hợp
  4. Chọn "Driver"
  5. Nhấp vào nút "Tắt"
  6. Nhấp vào nút "Bật".Trung tâm sẽ vô hiệu hóa một cách nhanh chóng đầu ra nguồn cho tất cả 4 cổng USB của nó, và sau đó kích hoạt lại nó.

Bạn cũng có thể làm điều này theo chương trình từ bất kỳ ứng dụng Windows nào đang chạy với quản trị viên riêng tư. Đây là an example in C#.

Tôi đã sử dụng thành công kỹ thuật này để cấp nguồn cho thiết bị USB đã bị "khóa". Nó chắc chắn nhịp đập các thiết bị tháo gỡ vật lý, đặc biệt là trên các máy tính từ xa hoặc không người lái.

Các vấn đề liên quan