9 Replies Latest reply on Nov 15, 2019 7:43 AM by sizz_4567056

    Lossless data storing

    sizz_4567056

      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

       

      https://www.cypress.com/documentation/development-kitsboards/cyusb3kit-003-ez-usb-fx3-superspeed-explorer-kit

       

      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.

        • 1. Re: Lossless data storing
          RashiV_61

          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

          • 2. Re: Lossless data storing
            sizz_4567056

            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.

            • 3. Re: Lossless data storing
              sizz_4567056

              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.

              • 4. Re: Lossless data storing
                RashiV_61

                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-usb-host-controller

                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

                • 5. Re: Lossless data storing
                  sizz_4567056

                  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

                  • 6. Re: Lossless data storing
                    RashiV_61

                    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

                    • 7. Re: Lossless data storing
                      sizz_4567056

                      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

                      • 8. Re: Lossless data storing
                        RashiV_61

                        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

                        https://www.cypress.com/documentation/application-notes/an89661-usb-raid-1-disk-design-using-ez-usbr-fx3stm 

                         

                        - 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

                        • 9. Re: Lossless data storing
                          sizz_4567056

                          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