Activar PC desde el modo de suspensión usando PIC24FJ256GB106

3

Estoy intentando reactivar la PC desde el modo de suspensión, usando PIC24FJ256GB106.

Estoy usando Windows 7. He instalado "Microchip Solutions v2012-04-03" y utilicé el firmware del directorio "Dispositivo - HID - Demostraciones personalizadas" como punto de partida.

Cuando conecto mi dispositivo USB, aparece en el Administrador de dispositivos, en el árbol "Dispositivos de interfaz humana". (Estoy usando Windows 7) Pero no hay una pestaña de "Administración de energía" desde la cual puedo marcar "Permitir que este dispositivo active el equipo".

De todos modos, descubrí algún tipo de solución para que mi dispositivo despierte la computadora del modo de suspensión. Así que tengo que:

  • conecte un mouse USB en el mismo concentrador raíz con el dispositivo

  • Tengo que marcar "Permitir que este dispositivo active la computadora" para el mouse

  • y en la función USBCBSendResume (), tuve que eliminar la condición if(USBGetRemoteWakeupStatus() == TRUE)

¿Cómo puedo activar la PC solo con el dispositivo, sin el mouse conectado en el mismo concentrador raíz?

    
pregunta adrianalin

1 respuesta

2

Deberá modificar el descriptor de configuración para permitir que el dispositivo despierte la PC del estado de suspensión. Específicamente, esto significa establecer el bit 5 en el byte bmAttributes . Eche un vistazo a la pila USB del Microchip (por ejemplo, config_desc.c o como se llame en este momento), hay muchos comentarios para guiarlo.

  

wTotalLengthequalselnúmerodebyteseneldescriptordeconfiguracióny  todossusdescriptoressubordinados.
bNumInterfacesequalselnúmerodeinterfacesenlaconfiguración.los  elmínimoes01h.
bConfigurationValueidentificalaconfiguraciónparaObtenerconfiguracióny  Establecerlassolicitudesdeconfiguraciónydebeser01hosuperior.Unaconfiguracióndeconjunto  lasolicitudconunvalordecerohacequeeldispositivoingresealestadoNoconfigurado.
iConfigurationesuníndicedeunacadenaquedescribelaconfiguración.Esta  elvalorescerosinohayundescriptordecadena.
bmAttributesestableceelbit6=1sieldispositivoesautoalimentadoycerosielbussealimenta.Bit5=1sieldispositivoadmitelafuncióndeactivaciónremota,quehabilita  undispositivoUSBsuspendidoparadecirlealhostqueeldispositivoquierecomunicarse.  Losotrosbitsenelcamponoseutilizan.Losbits4..0debensercero.Elbit7debeseriguala1  paracompatibilidadconUSB1.0
bMaxPower.Especificacuántacorrientedebusrequiereundispositivo.ParaUSB2.0,  bMaxPowerestáenunidadesde2mA.Sieldispositivorequiere200mA,bMax-Power=64h.ParaSuperSpeed,bMaxPowerestáenunidadesde8mA.

Tablasuperioreinformaciónde"USB Complete" de Jan Axelson - un excelente libro sobre todo lo relacionado con USB.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas