4 Replies Latest reply on Jan 30, 2015 9:44 AM by userc_39612

    PSOC5LP Dev Kit Data Acquisition 500Ksps

      Hey PSOC Forums!




      I am wanting to know if it's feasable for a PSOC5lp dev kit to be used in a situation where data is sampled at 500 Ksps and transfered to a PC without dropping any samples. Over a span of lets say 30 minutes. USB UART is ruled out because the sample rate is to high, but I was thinking i could instead try and use USB Bulk Transfers protocol to send the data over. I am very new to USB and don't have very much time to learn right now,  so I don't know if this is realistic or not..


      If it is feasabile, Any sugestions torwards an implementation? I was thinking about starting with one of the example projects that uses DMA to move data from the ADC to the USB TX Buffer, any sugestios on what I should do on the receiving end? 





        • 1. Re: PSOC5LP Dev Kit Data Acquisition 500Ksps

          A PC has usually got an operating system that will serve several different processes quasi-parallel (look into your task manager)


          This will hinder a contineous data stream accepted from the PC side. When the data width and thus the precision is 8 bits you will get a transfer-rate of 0,5 MB/s which is well within the transfer-rate of USB 2.0. With techniques as double buffering and DMA on the PSoC side you might be able to reach your wanted performance.





          • 2. Re: PSOC5LP Dev Kit Data Acquisition 500Ksps

            The USBUART is Full Speed, 12 Mb/s, so possibly could handle 12 bits


            at a 1 MB/s rate.




            USB UART is ruled out because the sample rate is to high,




            Build a protocol to handle that problem......?




            Do you need this to be sychronous over the local net ?



            Regards, Dana.






                 Related Application Notes and Example Projects


            USB Peripheral Basics - AN57294
            PSoC® 3 / PSoC 5 USB HID Fundamentals - AN57473
            PSoC® 3 / PSoC 5 USB HID Intermediate - AN58726
            USB Bulk Loopback With PSoC® 3 - AN56718
            USB Vendor Commands with PSoC® 3 - AN56377
            Interrupt Loopback - PSoC® 3 / PSoC 5
            Isochronous Transfers in PSoC® 3 / PSoC 5

            • 3. Re: PSOC5LP Dev Kit Data Acquisition 500Ksps

              On host side, at least you have to write a descriptor for your device and use the OS drivers APIs in your application. I know some litterature on this and at least the following pointers could be usefull :


              - Using WinUSB Functions


              - USB Descriptors, the whole site is interesting




              I think, the throughput with USB-FS in Bulk mode is OK (effective throughput of 1MB/s > 0.75) if you pay attention to limit protocol overhead but there is no guarantee of latency (the host can send IN packet whenever it wants). Latency could conduce you to implement some buffering on device and accept to hazardously loose some data. At least you should be able to detect when it happens. Perhaps, you can implement some compressions depending on your signal characteristics and make a feasability.







              • 4. Re: PSOC5LP Dev Kit Data Acquisition 500Ksps



                This link should help implement bulk USB transfer PSoC5LP - PC






                There were many requests here similar to yours. Please post demo project if successful.



                • 5. Re: PSOC5LP Dev Kit Data Acquisition 500Ksps

                   I would if I had ended up using my PSoC to solve the problem. In the end since this was for getting data inside of the lab and not the field, so we ended up going with some data aquistion tools that we had already developed.