Desligar o USB do Windows

0

Eu tenho um equipamento que se comunica através de uma porta COM e é alimentado pela porta USB. Meu problema é que quando o PC é reiniciado, a energia é mantida, mas a comunicação com a porta COM pára. A única maneira de reiniciar é remover e inserir o cabo USB.

Estou desenvolvendo um aplicativo Delphi que desativa a energia USB. Eu tentei usar devcon para fazer isso:

devcon.exe disable *ID*
devcon.exe enable *ID*
devcon.exe restarts *ID*

Mas isso só interrompe a comunicação com a porta COM. A energia USB é mantida.

Existe uma maneira de desligar a porta USB, para que o equipamento também desligue?

Qualquer dica será muito útil.

    
por marcosbontempo 05.09.2016 / 21:00

1 resposta

0

Para a maioria dos PCs, as portas de energia USB VBUS nas portas ROOT não possuem chaves de hardware high-side para controlar o VBUS; portanto, não há meios de ligar / desligar o software VBUS por software. O VBUS é conectado quase diretamente ao sistema PS, a um barramento de + 5VSB (em espera), portanto, mesmo se o PC estiver desligado, o VBUS permanece. Isso é feito dessa maneira para que um teclado ou mouse possa acordar o PC. (Laptops são um pouco diferentes, depende). Portanto, você tem três opções:

(1) Use um hub bom (certificado e caro) com portas que possuam chaves high-side para se conectar aos seus dispositivos COM. Quando o PC for reinicializado, o novo ciclo de enumeração do hub USB terá o estado USB_RESET, e os switches high-side serão desligados e ligados. Pode não ser fácil encontrar esse tipo de hub, já que os fabricantes geralmente têm opções de preenchimento em suas PCBs para usar switches high-side (adicionando custo) ou contorná-los com polyfuse reajustável (barato) no ponto de montagem.

(2) Use uma fonte de energia controlada separada como esta Switch controlada por USB SPDT entre a porta USB e o seu equipamento.

(3) Corrigir o seu equipamento COM-port e / ou driver de host para implementar o protocolo "reset / initialize".

    
por 06.09.2016 / 18:15