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.