FX3 Selective suspend mode

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
spchc_1344561
Level 1
Level 1

Hi,

   

Does FX3 device go to suspend mode after 3ms of inactivity on the bus?

   

Is there any documents about it?

   

https://blogs.msdn.microsoft.com/usbcoreblog/2011/05/10/demystifying-usb-selective-suspend/

0 Likes
6 Replies
Anonymous
Not applicable

The FX3 (Device on USB 2.0 connection) begins the transition to the Suspend state after it sees a constant Idle state on its upstream facing bus lines for more than 3.0 ms. The device will actually be suspended, drawing only suspend current from the bus after  10 ms of bus inactivity on all its ports. 
 

0 Likes
spchc_1344561
Level 1
Level 1

OK, Do you mean FX3 device go to suspend mode more than 3ms of inactivity on the bus?

0 Likes
Anonymous
Not applicable

Yes, this happens on USB2.0 connection when there is no activity on the bus. 

0 Likes

Thanks, how about USB3.0?

0 Likes
Anonymous
Not applicable

By default, the USB 3.0 link usually goes to U1 (low-power) state after some period of inactivity. I believe this is at the request of the host and governed by its PORT_U1_TIMEOUT value; see Figure 10-10 of the USB 3.0 specification.

   

We ran into problems because of this - some short Bulk-Only Mass Storage transactions to our device would time out because the host would never be informed of the STALL condition that the device tried to set on the pipe (because the link had gone into U1). We ended up using CyU3PUsbLPMDisable() / CyU3PUsbLPMEnable() to control when the FX3 would accept a transition to U1. In writing this post I see that we could also have used CyU3PUsbRegisterLPMRequestCallback() to register an application routine that would accept or deny the request.

0 Likes

In USB3.0 the host orders the device to enter suspend-state. If the host sends a LinkCommand LGO_U3 the device has to enter the suspend-state.

0 Likes