
Tengo un equipo que se comunica por un puerto COM y se alimenta por el puerto USB. Mi problema es que cuando se reinicia la PC se mantiene la energía pero se corta la comunicación con el puerto COM. La única forma de reiniciar es quitar e insertar el cable USB.
Estoy desarrollando una aplicación Delphi que apaga la alimentación del USB. Intenté usar devcon para hacerlo:
devcon.exe disable *ID*
devcon.exe enable *ID*
devcon.exe restarts *ID*
Pero sólo detiene la comunicación con el puerto COM. La alimentación USB se mantiene.
¿Hay alguna forma de apagar el puerto USB para que el equipo también se apague?
Cualquier consejo será de gran ayuda.
Respuesta1
Para la mayoría de las PC, la alimentación USB VBUS en los puertos ROOT no tiene ningún interruptor de hardware alto para controlar VBUS, por lo que no hay forma de encender/apagar VBUS mediante software. El VBUS está conectado casi directamente a la PS del sistema, al riel +5VSB (en espera), por lo que incluso si la PC está apagada, el VBUS permanece. Esto se hace de esta manera para que un teclado o un mouse puedan reactivar la PC. (Las computadoras portátiles son algo diferentes, depende). Por tanto, tienes tres opciones:
(1) Utilice un concentrador bueno (certificado y costoso) con puertos que tengan interruptores de lado alto para conectarse a sus dispositivos COM. Cuando la PC se reinicia, el nuevo ciclo de enumeración para el concentrador USB tendrá el estado USB_RESET y los interruptores del lado alto se apagarán y luego se encenderán. Puede que no sea fácil encontrar este tipo de concentrador, ya que los fabricantes generalmente tienen opciones de relleno en sus PCB, ya sea para usar interruptores de lado alto (costo adicional) o para evitarlos con un polifusible reiniciable (barato) en el punto de ensamblaje.
(2) Utilice una fuente de alimentación controlada separada como estaInterruptor SPDT controlado por USBentre el puerto USB y su equipo.
(3) Repare su equipo de puerto COM y/o controlador de host para implementar el protocolo "restablecer/inicializar".