FX3 BulkSourceSink can't be read Ubuntu 18.04

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

cross mob
LiNg_4684446
Level 1
Level 1

Hi,

My problem is same as: cyfxbulksrcsink bulk read from 0x81 not working on linux .

I use FX3_SDK_1.3.4 on Ubuntu 18.04, use cyusb_linux_1.0.5 to flash USBBulkSourceSink example from https://www.cypress.com/file/140061/download into FX3 board (tested with both pre-built image, and clean/build by ezUsbSuite). After firmware is flashed, I can send data to FX3, but it returns 0 bytes when I read from Bulk OUT.

The USBBulkAuto example (https://www.cypress.com/documentation/code-examples/ez-usb-fx3-usb-bulkloop-auto-example ) works, I can write & read using cyusb_linux application.

I'm using SuperSpeed Explorer Kit FX3 board.

Please see images in my shared album, I can't insert images in the post https://photos.app.goo.gl/v2ip6uRnPHddMGKD9

0 Likes
1 Solution

Hello,

Please make sure the the Size(bytes) is specified properly and is not refreshed when you receive the data.

Refer to this thread: cyusb_linux does not receive bulk transfers.

Thanks,

Yatheesh

View solution in original post

0 Likes
5 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

Can you please check and let me know the terminal prints (Check the opened terminal window) when you click the Receive Button in the UI?

The terminal should output the number of Bytes actually transferred and print "Data Read Error" and the error value.

Also, please do test the same in windows as well.

To add an image, you can just paste the image when typing the response and wait for it to be displayed in the response screen.

Thanks,

Yatheesh

0 Likes

Thank you for your reply.

The output of cyusb_linux:

Bytes sent to device = 512

Bytes sent to device = 512

Bytes sent to device = 512

Bytes read from device = 0

Bytes read from device = 0

Bytes read from device = 0

The line "Bytes read from device = 0" appears whenever I clicked on "Receive" button.

On FX3 terminal window, there is no new log printed when "Receive" button is clicked.
I tried to add a line in DMA callback function, to print the callback type, but only PROD_EVENT is received when I press "Send" button, no event printed when I press "Receive" button.

pastedImage_2.png

I don't have Windows right now to verify this

0 Likes

Hello,

In the firmware please change the dmaCfg.size to 512 and try the same. The consumer event will be generated when the DMA buffer is complete read from the host.

pastedImage_1.png

I tried this on my side and it works.

pastedImage_3.png

pastedImage_2.png

Thanks,

Yatheesh

0 Likes

Hello,

Please make sure the the Size(bytes) is specified properly and is not refreshed when you receive the data.

Refer to this thread: cyusb_linux does not receive bulk transfers.

Thanks,

Yatheesh

0 Likes

Thank you so much YatheeshK_36​. The dma size for SS is 32768 bytes, and in cyusb_linux app, I use 32768 for receiving size and now it can receive data from FX3 correctly.
Thanks again. Have a nice day

0 Likes