Page 1 of 1

USB remote wakeup

Posted: Wed Feb 11, 2009 2:44 am
by RobertW
Hello,

ive got a question concerning the usb suspend/wakeup methods.

i need to configure a (slave) device, which is capable of setting the DEVICE_REMOTE_WAKEUP feature. How can i edit the configuration queried by GET_CONFIGURATION?

Another thing is that i dont know what to do if my device has recognized an external wakeup event. Somehow i have to notify the host system (if DEVICE_REMOTE_WAKEUP set). How exactly can i set RESUME and SUSEN in the host's usb register?

thanks for helping me out,
rob

Posted: Mon Feb 16, 2009 4:18 pm
by christian
The value returned by GET_CONFIGURATION is the same as set with SET_CONFIGURATION. See the implementation in usbdrv.c.

If the host is in sleep mode (you know that the host is sleeping when there are no frame pulses every 1 ms on D-), you can wake it with a SE0 condition: Tie D+ and D- to 0 for (I think) two low speed USB clocks (667 ns each). For details see the USB sepc.