In the callback, please stall the endpoint 0x80. Now when the host sends a clear feature, it will be internally handled by the library which will remove the stall and reset the endpoint. Now you will be able to use 0x80
Thank you for your reply.
I tried to call CyU3PUsbStall(0x80, CyTrue, CyFalse) from the callback as soon as the EP_UNDERRUN event is detected but this did not make the EP0 (Device-to-Host) usable again. The SendEP0 function always returns with a success code.
Please provide me with more information on what is causing the EP_UNDERRUN event error to be able to debug this problem.
Do you already have an update to my question about the circumstances causing the EP_UNDERRUN ?
Your help is very much appreciated,
Can you try using the following API and check for the issue:
Can be used when you get the clear feature request from the host.
Thank you for your help.
Using this API call in the USB event Callback upon receiving EP_UNDERRUN does not corrupt data anymore.
Meanwhile i tried to use the new 1.3.3 SDK Version which also fixed the problem but lead to following problem:
If the fx3 bootloader after powerup enumerates with the host using Product ID 0x00F3, then everything works fine.
In the case, the fx3 bootloader enumerates with 0x00BC, the device complete crashes after downloading the user application.
I know the different product ids are due to PMODE pins, but i when i only want USB download, the F11 is the correct connection as stated in the datasheet. In other words PMODE2 must be floating.
Can you comment on this issue ?