Can you please specify that the FX3 SDK Version that you have used in your firmware?
Have you tried SDK 1.3.4? If not, please buld the firmware with SDK 1.3.4 and check the functionality.
Hi thanks for the answer. I did the test to switch to SDK v1.3.4 and effectively it solved the issue, but I noticed a difference in the BulkLpAutoCpp Firmware for the cyfxbulklpauto.cpp file: in the CyFxBulkLpApplnUSBEventCB function for the event CY_U3P_USB_EVENT_SETCONF, there was added a call to CyU3PUsbLPMDisable();
/* Disable the low power entry to optimize USB throughput */
CyU3PUsbLPMDisable(); <= HERE
But, if you remove "CyU3PUsbLPMDisable()" there is still the issue.
My question is: if we also add CyU3PUsbLPMDisable(), what is the impact to forbid switch to U1/U2 state ? is there any side effects ?
The CyU3PUsbLPMDisable description says: "Indiscriminate use of this function can result in USB compliance test failures. Please ensure that the LPM functionality
is enabled every time an USB connect or reset event is received. This can be disabled again after ensuring
that the device is functioning in a performance critical mode."
As you can see in firmware examples section in page 5 of FX3 SDK release notes, we have disabled USB 3.0 LPM support in most of the generic USB examples which do not have a well-defined data transfer protocol. LPM support is still enabled and controlled properly in real use cases like UVC, MSC and HID applications.
If you call CyU3PUsbLPMDisable in CY_U3P_USB_EVENT_SETCONF, it will fail the USB compliance test.
The best part to use CyU3PUsbLPMDisable in CyFxUvcApplnStart as used in AN75779 UVC example firmware. This way, the device does not have any side effects.
Ensure that you have called CyU3PUsbLPMEnable API in CyFxUvcApplnStop.