FX3S as USB flash drive

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

cross mob
JeHu_3414236
Level 5
Level 5
10 likes received First like received

I would like to use the FX3S as a USB flash drive backed by a SD card.  I see there is an example app and devkit FX3S DVK by Pactron to demonstrate this.

https://www.cypress.com/documentation/code-examples/ez-usb-fx3s-sdmmc-backed-mass-storage-class-exam...

Is this example suitable for production?  If not, how much more work is needed on the firmware side?  I would like the product to support all file systems supported by Windows and MacOS and not need any custom drivers.  Are there any performance numbers for read/write based on this example and DVK?

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

Hi,

This example can be used as a reference for your production firmware which requires testing from your side. The example when used as is can enumerate two SD cards connected to two S-ports of FX3S as 4 logical units - each SD card is partitioned into 2 logical units using CyU3PSibPartitionStorage() API - please refer to FX3 API Guide for more details on this API - This API only needs to used only

when there is no need for the storage device to be read through another SD host controller.

When this firmware is used, the USB device reports USB Mass storage class as it's interface class - So device driver on the Host side(Windows or MacOS) which supports USB Mass storage device class should be okay.

We have seen sustainable throughput of 43MBps(Read) and 40MBps(Write) when SD 3.0 cards are used on USB 3.0

(8-bit SD bus width and 52MHz DDR clock are used)

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,

This example can be used as a reference for your production firmware which requires testing from your side. The example when used as is can enumerate two SD cards connected to two S-ports of FX3S as 4 logical units - each SD card is partitioned into 2 logical units using CyU3PSibPartitionStorage() API - please refer to FX3 API Guide for more details on this API - This API only needs to used only

when there is no need for the storage device to be read through another SD host controller.

When this firmware is used, the USB device reports USB Mass storage class as it's interface class - So device driver on the Host side(Windows or MacOS) which supports USB Mass storage device class should be okay.

We have seen sustainable throughput of 43MBps(Read) and 40MBps(Write) when SD 3.0 cards are used on USB 3.0

(8-bit SD bus width and 52MHz DDR clock are used)

Regards,

Hemanth

Hemanth
0 Likes

I looked at dedicated USB flash drive ICs and it seems there are some important features like bad block management and wear leveling that are not mentioned in the example firmware.  Is there some example for these features?

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

Usually the bad block management and wear leveling are handled by the controller within SD card itself.

Regards,

Hemanth

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

Regarding the throughput numbers given above Extreme Pro SD cards from SanDisk were used.

Regards,

Hemanth

Hemanth
0 Likes

Thank you for the info.  Are there any commercially available products that use FX3S and SD card as a USB flash drive?  I would like to evaluate an actual product instead of using the devkit.

0 Likes