In the firmware, when do you add LPMDisable?
Actually we use your application to disable the LPM.
/* Disable the low power entry to optimize USB throughput */
CyU3PUsbLPMDisable(); <= HERE
As mentioned in the last comment in the above thread, if you call CyU3PUsbLPMDisable() when SET_CONF is received, then USB Compliance test will fail.
So, can you please refer to source code of AN75779
In the source code, you will see that CyU3PUsbLPMDisable() is called in CyFxUvcApplnStart() and this is called only video streaming starts.
Please let me know if you have any questions.
I think we don’t understand each other:
With some type of host controller (for example: Renesas USB 3.0 eXtensible Host
Controler) we face some issue
in our camera using FX3 while doing basic bulk out write in loop on control
endpoint 0 => After a while, the Host (PC Win10 v1803 64bit) sends a warm
reset which makes camera to reenumerate, and an unplug event is sent to the PC
With USB3 analyzer, we saw some errors with flow control between FX3 and Host
Controler which make the PC to generate a warm reset.
In order to find the root cause we tried to reproduce the issue with EZ-USB FX3
development board and the Bulkloop example Firmware & software
(Cypress USB suite v1.3.4) without any modifications. We know that in this this
example LPM is disabled in the FW, and we are agree it is not USB compliant,
but our interest for now is just to check if our issue still occurs or not. Of
course in our final FW we will manage correctly LPM.
So Tests Results:
With Bulkloop example Firmware (unmodified code, so with LPM disabled) =>
The warm reset issue is solved but only for some Host Controlers Renesas.
With Bulkloop example Firmware (we modify code to remove CyU3PUsbLPMDisable, so LPM is
always enable) => The warm reset issue occurs with every Host
- Finally managing
LPM seems not to be the solution
One more time, we are only interested in solving our issue, as it seems to be
linked to flow control between FX3 and Host Controler, we don’t know how to
solve it in the FW.
We think that if we can solve the issue with EZ-USB FX3 development board and the
Bulkloop example Firmware, we will also solve it in our camera, and moreover it
will more easy for you to reproduce it on your side. And of course we want to
be USB compliant.
So do you think it is the good way to proceed or do you think we should
follow another track ?
- Finally managing
- You have mentioned that - ' By using unmodified SDK 1.3.4 Bulkloop example - where LPM is disabled - the issue is still present in few Renesas Host Controller'
We need to understand why the issue occurs when LPM is disabled.
- So, can you provide 2 USB traces under following conditions:
a. Use unmodified SDK 1.3.4 Bulkloop example with the Host controller where you see the issue.
b. Remove DisableLPM in SDK 1.3.4 Bulkloop example and test with the same Host Controller.
Please provide both the above traces and also the PC information where you do the above test.
We will provide you the 2 USB traces but it will take a few days just because another problem with our setup.
Please don't close this case.
We succeeded to reproduce the issue with the EZ-USB FX3 development board and the BulkloopAuto Cypress examples (Firmware & software) using Cypress USB suite v1.3.4.
As already said, in you FW example if we run it without modification, we don’t see the issue, but if we comment “CyU3PUsbLPMDisable();” the issue occurred => we got
a warm reset when we look with a USB analyser.
/* Disable the low power entry to optimize
USB throughput */
But, if you remove "CyU3PUsbLPMDisable()" there is still the issue.
Once again, our intention is not to disable LPM as it is not anymore USB compliant, it is just the only way we succeed to reproduce the issue we have in our camera, with Cypress board and softwares.
In attachments, I put:
- USB Analyser trace with LPM disable and no issue (BulkLoop_LPM_Disable_No_Issue.usb) => it corresponds to your case a)
- USB Analyser traces (BulkLoop_WarmReset_Packet_11041272.usb) The USB analyser used is : Teledyne Lecroy Analyser USB protocol Suite Suite (USB Protocol Analyser 7.65) it corresponds to your case b)
The war reset occurs at packet 11011272
- The full configuration (BulkLoop_WarmReset.HTM & Renesas_XHCI_USB3_HostControler.png) of the PC on which the issue occured : (Win10 64bit 1803, with external Renesas PCIe USB3 card)
- A screen shot of the test : BulkLoop_WarmReset_Packet_11041272.png
When issue occurs, the C++ application stops and we see a remuneration of the device in the Control Center
- A screen shot of the Bulkloop auto project (BulkLoopAuto.png)
WARM_REST_G4038T.zip 83.1 MB