Desconecte o dispositivo USB sem desconectar e reconectar

Desconecte o dispositivo USB sem desconectar e reconectar

Eu tenho um IRTOY comprado de protótipos perigosos. Eu executo no windows 7 x64 com WinLirc 0.9c. Mas às vezes os dispositivos travam de repente e preciso removê-los e recolocá-los para que funcionem novamente. Desativar e ativar a porta de comunicação do gerenciador de dispositivos pode resultar em uma mensagem de erro do Windows informando que o dispositivo não pôde ser ativado.

Portanto, parece um problema de hardware relacionado ao IRTOY. Agora estou procurando um dispositivo para cortar a energia do USB. Deve ser capaz de desligar a energia do dispositivo remotamente. Na verdade, ele deveria simular uma remoção física do dispositivo da porta USB, como um relé com conectores USB macho e fêmea.

Existe alguma solução para esse problema?

Responder1

Aparentemente o IRTOY tem um bug e precisa de reinicialização total, e desligar é o único meio de fazer isso. Ruim.

Uma solução para alternar a alimentação do VBUS por software seria usar um hub USB com controladores de alimentação de porta comutáveis ​​(geralmente são difíceis de encontrar, mas ainda mais fáceis do que encontrar uma placa-mãe de PC com controladores de alimentação de porta). Então você deve conseguir emitir ClearPortFeature(PORT_POWER) para a porta com IRTOY conectado e, em seguida, SetPortFeature(PORT_POWER).

Não tenho certeza de como exatamente fazer isso no espaço do aplicativo, mas o USB Device Tree Viewer gratuito (porUwe Sieber) pode ativar e desativar a porta VBUS usando a opção pop-up "Reiniciar dispositivo". Tenha em mente que uma porta USB geralmente tem um capacitor considerável conectado, então pode levar algum tempo para sangrar o VBUS, então os comandos Clear e Set devem ser devidamente separados no tempo. Infelizmente, o USBTreeView faz isso muito rápido. Como alternativa, você pode reiniciar todo o hub; leva tempo suficiente para desligar o VBUS em suas portas downstream.

Se Uwe não tiver seu código-fonte aberto, você precisará acessarSDK da Microsoftpara o código-fonte principal do USBView e descubra como emitir os comandos de desabilitar/habilitar porta para o driver.

informação relacionada