I am working on Cypress FX3 USB3.0.I am using EZ USB FX3 SDK/1.3/Application/cpp/Streamer.In streamer.h code ,there is one function called "Xferloop()".I collected the data of "buffer" stored in "myfile.txt".The throughput of the streamer decreased from 3

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

cross mob
shduc_3538066
Level 1
Level 1
First like given

I am working on Cypress FX3 USB3.0.I am using EZ USB FX3 SDK/1.3/Application/cpp/Streamer.In streamer.h code ,there is one function called "Xferloop()".I collected the data of "buffer" stored in "myfile.txt".The throughput of the streamer decreased from 395MBps to 110MBps because of writing data into the myfile.I think if I write data into disk using different thread then speed could increase.How to do this? Please help.

0 Likes
1 Solution

Hello,

- The older project had a dependency in the include directory. Please view the Streamer application attached in this interaction. Password: cypress

- What is the sustained throughput that is expected for your application?

Best regards,
Srinath S

View solution in original post

0 Likes
5 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

You can create a new thread using the "Thread" class as it has been implemented in the Streamer example. The data that is received from the device gets stored in the address pointed by "buffers". This data has to be copied onto a global buffer which can then be stored on to the disk using the other thread. Please try this and let me know if you face any difficulties in implementation.

Best regards,

Srinath S

I created globel_buffers

PUCHAR *globel_buffers = new PUCHAR[QueueSize];

but the following error is coming.

Error 1 error C3845: 'Streams::Form1::globel_buffers': only static data members can be initialized inside a ref class or value type d:\skd\cypress\ez-usb fx3 sdk\1.3\application\cpp\2usb_back_up - copy\Streamer.h 658 Streamer

0 Likes

Hello,

Please find the attached project which has got the implementation of two threads, one for reading the data (XferThread) and one for saving the data onto disk (CollectionThread). Even with two threads, the throughput will not increase significantly because, the XferThread has to wait for the global buffer to empty the data into the disk and then has to copy the newly read data onto the global buffer.

Password for the attachment: cypress

NOTE: This is only a test application and has not been tested exhaustively.

Best regards,

Srinath S

Hi Srinath,

Thanks for the project.

1)When i try to execute ,it is showing error "CyAPI.h : No such file or directory"

2)Srinath,We are trying to write data into a file the data recieved by USB with get 3GSPS sustained rate.How to achieve that if two saparate threads could not increase the throughput significantly.Please help.

Thanks

0 Likes

Hello,

- The older project had a dependency in the include directory. Please view the Streamer application attached in this interaction. Password: cypress

- What is the sustained throughput that is expected for your application?

Best regards,
Srinath S

0 Likes