Please find my understanding of your query below:
1. On a Windows 7 PC, you were able to stream data correctly with your custom firmware and C# Application. For Windows 7 PC:
a. FX3 SDK version: 1.2.3
b. CyUSB.dll version: 22.214.171.124
2. On a Windows 10 PC, you are not able to stream data correctly with your custom firmware and C# Application. For Windows 10 PC:
a. FX3 SDK version: 1.3.4
b. CyUSB.dll version: 126.96.36.199
Please correct me if my understanding is wrong. If my understanding is correct, then please try the following:
1. Use CyUSB.dll v188.8.131.52 for Windows 10 PC also. The dll can be found in the following location of FX3 SDK:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\library\c_sharp\lib
2. If (1) does not help or if my understanding is wrong, please try increasing the timeout parameter of WaitForXfer method and let us know if you see any improvements.
3. If both (1) and (2) does not help, please share the UART debug logs along with USB event logs to understand more details on this issue. For understanding how to obtain USB event logs, please refer to the SDK example USB Bulk Source Sink. The project can be found in the following location:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxbulksrcsink
Please print the USB event logs in the infinite for loop. Please le us know if you have any queries on this.
Thank you Jayakrishna for your email. On Win 7 PC, we are able to run correctly with FX3 SDK 1.2.3 and CyUSB.dll v184.108.40.206. On upgrading both to versions to FX3 SDK 1.3.4 and CyUSB.dll 220.127.116.11 for Win 10, we see issues. We tried rolling back the FX3 SDK version to v1.2.3 from v1.3.4 on the Win 10 but still saw the issues (not sure if v1.2.3 works with Win 10?).
We will try increasing the timeout parameter as you have suggested and try to get the USB logs out using the example you sent.
Thanks for the update. I understand that with the firmware built using FX3 SDK 1.3.4 and using CyUSB.dll v18.104.22.168 for the host application, you are facing issues on Win10 PC. We do not recommend using an older version of FX3 SDK for development. So you can use SDK 1.3.4 itself. Please share a snapshot of the Project Properties so that I can double check if the Build variable is 1_3_4. This can be done by right clicking on the Project in the Project Explorer menu of EZ-USB Suite and selecting Properties. In properties, select the drop down C/C++ Build and select Build Variables. A snapshot of the same is given below for your reference:
Please share a snapshot of the same of your project.
Can you please let me know which firmware you are using for the tests? Is it the one mentioned in the following thread?
Also, in addition to the tests that I recommended in my previous response, please try testing the firmware by running the streamer application (C#). This application comes along with FX3 SDK and can be found in the following location:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\streamer\bin\Debug
Please share a snapshot of the streamer application after running it for a while. If streamer reports a failure, then there can be some problems in the firmware. This test will help us to isolate the cause of the problem i.e if it is a firmware problem or if it is a problem on the host application.
Thanks for your email. We are working on gathering the answers to the questions you asked in your last email. Meanwhile I would like to share some wireshark generated snapshots of the usb data transfer in progress. We set up wireshark to monitor usb data transmission while our device was sending images to the host Win 10 PC. As we mentioned previously our issue appears sporadically and unpredictably i.e. sometimes we don’t seem to get any failures and at other times the data transmission stops abruptly. When we see an error where the data transfer stops abruptly, we have noticed a URB_FUNCTION_PIPE_ERROR on wireshark.
I am sharing a few snapshots here with you to see if you can provide more insight on why this may be happening?
Designing better care.™
Midmark Corporation| D: 310.516.5129 | C: 732.476.7812
As mentioned in the following link, transfers can fail due to various reasons, such as a stall condition in the endpoint. If the transfer fails, the associated pipe cannot process requests until the error condition is cleared.
We need to understand what caused the transfer to fail. For this, please let me know which firmware is used as the base for your development. Is it the one mentioned in the following link?
Please let us know if you have a hardware protocol analyzer like Lecroy for debugging. If not, we will try to debug the issue by looking into the Wireshark traces, UART traces and the firmware. As I understood that the failure does not occur every time and is random in nature, please share me the UART debug logs and wireshark traces (from the start of streaming) along with the firmware so that I can debug the issue better.