cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

rasu_4591691
New Contributor

Hi,

I am using FX3S chipset for my project. Exactly what we are doing is, coping from one SD card1 to another SD card2 without affecting the old data

We have done the copying from SD1 to SD2, but the copying speed is bit slow. my requirement is 1.5 Gb per second need to complete in one min. we have achieved almost 0.9Gb/s. we are using EXFAT file system and the SD card type is SDXC UHS 1. Speed of the card is 170mb/s mention card label

Fx3s clock speed 384mhz we tried with 404 MHz also but its not much difference

Please suggest me to come out from this problem

THANKS & REGARDS

S.RAVI CHANDRIKA

0 Likes
1 Solution
Hemanth
Moderator
Moderator

Hi Ravi chandrika,

As you might know, in the implementation of f_read/f_write there will be calls to disk_read/disk_write respectively which are implemented in the block driver of fx3s. If you see the implementations of the same, you can find that we make use of CyU3PDmaChannelSetupRecvBuffer and CyU3PSibReadWriteRequest (for disk_read). So, there's nothing that can be done to increase the data transfer rate. However I will further see if there is any other possibility and let you know.

Currently are you just trying to copy 32KB from one card to another?

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
9 Replies
Hemanth
Moderator
Moderator

Hi Ravi Chankdrika,

Please let me know how you are currently implementing the copy from one card to another? Can you share the firmware?

Regards,

Hemanth

Hemanth
0 Likes
rasu_4591691
New Contributor

Hi,

I am using fatfs file system to copy one sd card to another. And I have attached my firmware in this.

THANKS & REGARDS

S.RAVI CHANDRIKA

0 Likes
Hemanth
Moderator
Moderator

Hi Ravi chandrika,

As you might know, in the implementation of f_read/f_write there will be calls to disk_read/disk_write respectively which are implemented in the block driver of fx3s. If you see the implementations of the same, you can find that we make use of CyU3PDmaChannelSetupRecvBuffer and CyU3PSibReadWriteRequest (for disk_read). So, there's nothing that can be done to increase the data transfer rate. However I will further see if there is any other possibility and let you know.

Currently are you just trying to copy 32KB from one card to another?

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
rasu_4591691
New Contributor

Hi,

I am trying to 512mb file to copy from one card to another.

THANKS & REGARDS

S.RAVI CHANDRIKA

0 Likes
Hemanth
Moderator
Moderator

Hi,

From what I see in the code, you are reading and  writing in chunks of 32KB. Am I correct?

Regards,

Hemanth

Hemanth
0 Likes
rasu_4591691
New Contributor

Hi,

I am doing for testing purpose only. I used only IMG file . And the read and write buffer size is 32kb.

0 Likes
Hemanth
Moderator
Moderator

Can you increase the buffer size and check the difference in transfer rate?

Regards,

Hemanth

Hemanth
0 Likes
rasu_4591691
New Contributor

If I increase the buffer size ,the file copy time also increased.

Regards,

S.Ravi chandrika

0 Likes
Hemanth
Moderator
Moderator

Hi,

As I mentioned above, apart from experimenting with different buffer sizes, nothing can be done to improve the transfer rate in your application.

Regards,

Hemanth

Hemanth
0 Likes