Cyusb3 v1.2.3.20 load depending data lost issue?

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

cross mob
winic_291911
Level 1
Level 1
First like given

Dear Cypress Community,

Background:

we are working with the CY7C6813A since 15 Years without any issues. We have used Cyusb3.sys driver version from 2016 until end of 2018 (last version was: 1.2.3.10).

We switched to version 1.2.3.20 couple of weeks ago since we had to resigning our driver package anyway and therefore we like to use the latest version (1.2.3.20).

Issue:

After installing the new driver package (version 1.2.3.20) we discovered a strange effect on bursty bulk transfers. When the CPU load (on the host PC, where our application runs..) increases, some data packets seemed to be lost sporadically. Since we transfer huge image data chunks over bulk endpoints, image data gots shifted at the receiving end. We never had this issue with the former version of cyusb3.sys (1.2.3.10).

We can simply enforce the issue by starting the internet Explorer while bursting data --> data packets get sporadically lost..

It seems to be, that the size of the lost data block is always the same (unfortunately we have no data byte counter on the receiving side but the data position wrap (image-shift) looks always the same).

So actually it looks like that there may be a potential (thread..) timimg issue with bulk package management inside the driver when Host-CPU-load increases.

Is this possible? or is there something wrong on our side which may raise this behaviour only on the latest CyUsb3.sys-version?

We are generally communicating through the drivers IOCTL interface in overlapped mode (using: IOCTL_ADAPT_SEND_NON_EP0_DIRECT).

Our software hasn't change between the two different Cyusb3.sys-versions.

So we are at a loss actually and appreciate your support.

Thanks a lot in advance,

Wilhelm

0 Likes
1 Solution
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

For USB2 device, the maximum transfer size over Bulk Endpoint would be 4MB even with this new driver.

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
5 Replies
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

HI Wihelm,

Can you please let me know if there is a point where you make transfers larger than 4MB in one transfer? What is the Windows build number in which you are testing?

Regards,

Hemanth

Hemanth
winic_291911
Level 1
Level 1
First like given

Hi Hemanth,

first, thanks for the quick respone!

We ran the tests on two different PC's with getting the same result (sporadic data lost).

Build No. of PC#1 is: 17763.379 / PC#2 is 17763.253.

Our transfer size is normally around 5MByte (but I did also up to 10MByte in the past with cyUSB3.sys-version 1.2.3.10 without any problems)...

But here seems to be a possible reason for the issue...I am just running a test with 4MByte transfer size and a heavy loaded CPU...no data lost (actually..) appears!!...

So my question is: what is the reason for the 4MByte limit?..because there is no information at all in the Cypress driver documentation about this limitation.

And where is the difference regarding transfer size limitation between the two CyUSB.sys versions (1.2.3.10 vs. 1.2.3.20)?

Thanks a lot in advance for your effort!

Best regards,

Wilhelm

0 Likes
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Can you please try the driver posted in the last response of the below thread:

Maximum transfer size for BeginDataXfer() / FinishDataXfer() with bulk endpoint

As mentioned in the above thread, this driver is not yet Microsoft certified and is only for Windows 10 x64 machine.

It only has Cypress digital signature.

Kindly test with this driver and let me know the result.

Regards,

Hemanth

Hemanth
0 Likes

Hi Hemanth,

with the driver you've sent to me (1.2.3.25) , I have the following results:

- when using transfer size 4MByte, the behaviour is normal (like 1.2.3.10/1.2.3.20)

- when using larger sizes (5MB), there will be no data transferred at all and the function returns immediately without any errors.

We also discoverd that our second testbench (with the windows-build 17763.253) still has the issue on CyUsb3.sys-V1.2.3.20 even when using maximum transfer size of 4MByte...this is strange..

Best regards,

Wilhelm

0 Likes
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

For USB2 device, the maximum transfer size over Bulk Endpoint would be 4MB even with this new driver.

Regards,

Hemanth

Hemanth
0 Likes