- 0xE3 vendor command puts the FX3 device into SUSPEND mode with UART CTS as the wake-up source. The Control Center displays error code 997 because the firmware is written such that this vendor command does not have any data phase. Please modify the "Bytes to transfer" field to 0 and perform the vendor command.
- Disconnection of device from the PC is an expected behavior as per the LowPowerTest firmware. Please ground the CTS pin of FX3 before initiating the vendor command and release the same when the device needs to be taken out of SUSPEND. This vendor command (0xE3) does not initiate wake-up from USB.
Thanks for the reply.
3 more questions:
1. Is there any low power mode without disconnecting from the host?
2. If so, what should I do to correctly put the FX3s in this mode and wake up by the host sending any USB command?
3. Only the 0xE3 command has effect in my setup, is it normal?
- To perform low power entry without disconnecting from the host, modify the code as below:
else if (glTriggerSuspend)
/* Enter suspend mode. */
glTriggerSuspend = CyFalse;
CyU3PDebugPrint (4,"Entering Suspend Mode with Wake-Up Source %d\r\n", glWakeUpSrc);
if (glCurVendorCmd == CY_FX_LP_UART_SUSPEND_RQT)
//CyU3PConnectState (CyFalse, CyTrue); /*This line is commented out*/
- Please let me know what happens on other vendor commands? The vendor command 0xE1 (STANDBY mode with UART-CTS as wakeup source) should also show similar behavior except that the power consumption will be lesser than in SUSPEND mode and the firmware runs from the start unlike the SUSPEND mode in which the firmware resumes from the point before entering SUSPEND.
1. Is it mandatory to have the USB disconnected in the L2 suspend mode?
I just want to know whether the 0xE3 behavior is designed to be this or it is needed to be this.
Will keeping the USB connected affect the power consumption in L2 suspend mode?
2. I use the CyU3PDebugPrint to trace the lowpowertest example and found out the Fx3 only print out the "Entering Suspend Mode with Wake-Up Source....." with command 0xE3. And there's not certain message with command 0xE4, 0xE5.
3. Again, my goal is to have the Fx3 enter L2 suspend mode and wake up by the host by sending USB packers.
- It is not mandatory to disconnect the USB during SUSPEND mode. In fact, when using USB bus activity as the wake up source, the USB must NOT be disconnected.
- To test the working of vendor command 0xE5, modify the configuration descriptors (SuperSpeed, High Speed and Full Speed) in the LowPowerTest firmware as follows. This modification enables the driver to put the device into U3 (USB Suspend) mode. When the device enters the U3 mode, the CY_U3P_USB_EVENT_SUSPEND event gets generated, which in turn sets the glTriggerSuspend parameter to CyTrue. Now, the UART logs can be seen to indicate the device entering the L2 suspend mode with USB bus activity as the wake-up source. Any activity on the USB Control Center/ communication with the device will result in waking up the device.
0x80, /* Config characteristics - Bus powered */
0xA0, /* Config characteristics - Bus powered */