- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I write here because I am new to Cypress devices and I would like to clarify a few doubts.
For a project I am working on I need to transfer (without loss of information) data at 48 MB/s (32 bits - 12 MSPS from an ADC) to an external USB mass storage device.
For these kind of data writing rates, I must use at least a 3.0 standard and as far as I know, I could use the
and the only interface port that I can use with an FPGA (a Xilinx Zynq device in this case) is the GPIF 2.
Could you confirm that this is the right kit I need to achieve this kind of lossless transfer ?
Regards.
s.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Simon,
Please confirm that you are aware that FX3S is also a peripheral controller and cannot be configured as USB 3.0 Host controller.
Also confirm that you have gone through the FX3S datasheet and the functionalities and you are fine with it.
- Yes you can get data through GPIF lines and store the data to storage ports
- The maximum GPIF bus width supported by FX3S is 16 bits
- FX3S Supports up to 2 memory cards - SD 3.0, eMMC 4.41, SDIO 3.0
- The SDK 1.3.4 includes msc_examples. You can install the SDK from https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
You need to combine the slavefifo example (AN65974) and the storage class example for your application.
Path for the examples: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\msc_examples
You can also refer to RAID applications. Please refer to the atached zip files in these links
https://www.cypress.com/documentation/code-examples/ez-usb-fx3s-sdmmc-backed-raid-0-example
- S0 and S1 ports can be configured for 8 bits data bus maximum
- Both the ports S0 and S1 can be enabled from the firmware itself (io_matrix). The reading/writing to ports can be selected in the APIs by passing argument like PORT_ID
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Yes, EzUSB FX3 would be right for this application.
The maximum frequency supported for the GPIF II interface clock is 100 MHz. And maximum bus width supported is 32 bits. So, the maximum bandwidth supported by GPIF II interface is (32 bits*100 MHz) = 3.2Gbps / 400 MBps which would be enough for your application.
You can refer to this application note Designing with the EZ-USB FX3 Slave FIFO Interface https://www.cypress.com/file/136056/download
You can refer to section 11.1 Hardware setup (in app note). If you are having similar setup, you can use the Super speed explorer kit
(CYUSB3KIT-003). You can also develop a custom board using EzUSB FX3 (CYUSB301x) if FX3 explorer kit doesn't match up to your application.
Please let me know if any other queries.
Regard,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Rashi,
We have already purchased a CYUSB3KIT for our project.
I was quiet sure this is the right kit to interface in my design, but it always fine to have someone more experirenced that assures about any doubt.
Thank you very for yor reply.
s.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello RashiV_61,
I have another question. The AN65974 you indicated to me specifies an USB Host as a destination, and I need to write into an USB device such as a pen drive .
Isn't it possible to store data into an USB storage device with CYUSB3KIT-003 Starter Kit ? I am strongly doubting about it because I could not power up the kit if I just plug a pen drive to it, unless I supply the board with an external power supply from pin headers with appropriate voltage levels...
If not, could you suggest a solution ?
Thanks.
Regards,
s.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Apologies for missing out an important point.
CyUSB3KIT-003 Superspeed Explorer Kit cannot be used for storing data to USB storage device (pen drive).
For storing data to USB storage device, FX3 should be configured as host controller.
FX3 (CYUSB3014) can be used as high speed (USB 2.0) host controller https://www.cypress.com/documentation/application-notes/an77960-introduction-ez-usb-fx3-high-speed-u...
But as per your application, FX3 high speed controller won't be able to match up the throughput requirements.
Please confirm that you need FX3 in USB host mode or device mode.
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello RashiV_61,
Please confirm that you need FX3 in USB host mode or device mode.
Since this is the flow I need: FPGA → USB HOST → USB Device I deduce that FX3 should work as in USB host mode.
Is there any solution to my problem for the mentioned throughput requirements ?
Regards,
Simon
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Simon,
FX3 can be configured to be in USB2.0 (High speed) host controller as well as High-speed On-The-Go (HS-OTG) host and peripheral compliant with OTG Supplement Version 2.0. This will not fulfill bandwidth requirements.
FX3 cannot be configured as USB 3.0 host controller.
FX3 family also includes FX3S which is also a peripheral controller. FX3S's integrated storage host controllers enable developers to add support for SD/eMMC memories and SDIO devices to their system.
You can refer to these links for its details:
- https://www.cypress.com/file/139246/download
- https://www.cypress.com/products/ez-usb-fx3s
but FX3S can have max GPIF bus width of 16 bits.
Please do through these links and let me know if this would help.
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello RashiV_61,
Good to know that I can use FX3S with S-Port. In case could split 32 bit data into 2 channel, using one SD card each.
The datasheet says that the ports are independent, so to not fall into any mistake, I have additional questions:
So I can achieve FPGA to SD device data transfer using the GPIF II port ? This is what I understand from Logic Block Diagram on page 1 of the CYUSB303X datasheet. Could you confirm it ?
If this is right, how can I select at any time which of the two S-Ports write to ?
Do you have design examples about FPGA to SD cards data transfer ? AN65974 does not mention USB host destination device.
Regards,
Simon
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Simon,
Please confirm that you are aware that FX3S is also a peripheral controller and cannot be configured as USB 3.0 Host controller.
Also confirm that you have gone through the FX3S datasheet and the functionalities and you are fine with it.
- Yes you can get data through GPIF lines and store the data to storage ports
- The maximum GPIF bus width supported by FX3S is 16 bits
- FX3S Supports up to 2 memory cards - SD 3.0, eMMC 4.41, SDIO 3.0
- The SDK 1.3.4 includes msc_examples. You can install the SDK from https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
You need to combine the slavefifo example (AN65974) and the storage class example for your application.
Path for the examples: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\msc_examples
You can also refer to RAID applications. Please refer to the atached zip files in these links
https://www.cypress.com/documentation/code-examples/ez-usb-fx3s-sdmmc-backed-raid-0-example
- S0 and S1 ports can be configured for 8 bits data bus maximum
- Both the ports S0 and S1 can be enabled from the firmware itself (io_matrix). The reading/writing to ports can be selected in the APIs by passing argument like PORT_ID
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello RashiV_61
Please confirm that you are aware that FX3S is also a peripheral controller and cannot be configured as USB 3.0 Host controller.
Also confirm that you have gone through the FX3S datasheet and the functionalities and you are fine with it.
OK, I confirm and I understand it, I think I am fine with your last explanation.
Thanks.
Regards,
Simon