WaitForXfer function doesn't work properly, when the FX3 is in U2 state.

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

cross mob
Anonymous
Not applicable
        I'm using EZ-USB FX3 SDK verson 1.3. The target board is Cypress FX3 DVK Device board Rev.3. FX3's firmware is "cyfxbulklpmaninout" in dma_examples. The host application program is "bulkloop.exe". The host OS is Windows7 Professional 64bit (Japanese) with Service Pack 1. 1. Program the FX3 using "USB Control Center". 2. Run bulkloop.exe. Select device, OUT EP and IN EP. Check "Stop on Error". Push "Start" button. It stops within a few seconds, because a transfer failed. However, it works properly if U1/U2 state is disabled in FX3 firmware. (using CyU3PUsbLPMDisable function.) But I don't want to make U1/U2 state disabled. So, I used an In-Circuit debugger(JTAG-ICE) for FX3 firmware and VisualStudio for BulkLoop application program. Then, I think that WaitForXfer accessing doesn't work properly when the FX3 is in U2 state. Do you know the solution for this problem? Is there a bug in BeginDataXfer or WaitForXfer? Can the host application program know which status the FX3 is in? If so, which API? Or, the USB device driver is responsible for this problem? Help me, please.   
0 Likes
7 Replies
Anonymous
Not applicable
        WaitForXfer function doesn't work properly, when the FX3 is in U2 state.   
   
I'm using EZ-USB FX3 SDK verson 1.3.   
The target board is Cypress FX3 DVK Device board Rev.3.   
FX3's firmware is "cyfxbulklpmaninout" in dma_examples.   
The host application program is "bulkloop.exe".   
The host OS is Windows7 Professional 64bit (Japanese) with Service Pack 1.   
   
1. Program the FX3 using "USB Control Center".   
2. Run bulkloop.exe.   
Select device, OUT EP and IN EP.   
Check "Stop on Error".   
Push "Start" button.   
It stops within a few seconds, because a transfer failed.   
   
However, it works properly if U1/U2 state is disabled in FX3 firmware.   
(using CyU3PUsbLPMDisable function.)   
But I don't want to make U1/U2 state disabled.   
   
So, I used an In-Circuit debugger(JTAG-ICE) for FX3 firmware and   
VisualStudio for BulkLoop application program.   
Then, I think that WaitForXfer accessing doesn't work properly   
when the FX3 is in U2 state.   
   
Do you know the solution for this problem?   
   
Is there a bug in BeginDataXfer or WaitForXfer?   
Can the host application program know which status the FX3 is in?   
If so, which API?   
Or, the USB device driver is responsible for this problem?   
   
Help me, please.   
0 Likes
Anonymous
Not applicable

 Hi,

   

 

   

Please create tech support case at www.cypress.com-> Support-> Technical support. One of our engineers can assist you through.

   

 

   

Regards,

   

Gayathri

0 Likes
Anonymous
Not applicable

 Hi,

   

Is it possible to take the USB trace of the failure case and post here?

   

-PRJI

0 Likes
Anonymous
Not applicable
        To Gayathri.   
   
Thank you for your reply.   
I'll try it.   
   
Actually, we decided to allow our system to make U1/U2 states disabled this time.   
Although I think it's not a good option, it's our choice.   
Because we have to move on to higher-priority tasks.   
0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable
        To PRJI.   
   
Thank you for your reply.   
   
I didn't take the USB trace of hardware signals using   
a protocol analyzer and/or an oscilloscope.   
I used USB event logging feature, using CyU3PUsbInitEventLog,   
but there was no error.   
   
I think the hardware part has no problem.   
I think there might be a trouble around asynchronous file I/O accessing.   
However, I'm not sure which layer has a bug that causes this problem.   
(Windows OS, USB driver, CyAPI, or the application program.)   
   
I'll create a tech-support case with the attachment file.   
0 Likes
Anonymous
Not applicable

Hi,

   

Has this been solved?

0 Likes
Anonymous
Not applicable

Technically I couldn't solve it.

   

Just made U1/U2 states disabled.

   

I think it's NOT good enough to acquire a USB logo certification.

0 Likes