getting 1 MSPS samples off of the PSoC

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

cross mob
WaMa_286156
Level 5
Level 5
First comment on blog 100 replies posted 50 replies posted

  We have done some tests internally.

   

  Using block transfers, we can only get about 500,000 bytes per second over the USB, using libUSB in Linux.  This works out to 250,000 samples per second for a 12 bit SAR.

   

  Using isochronous transfers with libUSB, we can get 1,100,000 bytes per second over the USB using libUSB in Linux. (You have to google a lot to get the isochronous transfer examples for LibUSB.)   This works out to about 550,000 samples per second from a 12 bit SAR.

   

   Using build in SPI, we can get about 1,200,000 samples per second (without DMA) off of the device.  We are using 18 mhz clock, which we just found out is a no-no for 16 bit transfers, according to the data sheet for high speed.

   

   We are currently seeing about 1us between data packets on the SPI.  We will be attempting DMA.  The DMA wizard refuses to recognize the SPI device (I guess because it is UDB based), and so we stole from the SPIM example project.

   

  I will update this post with the results soon.

   

  Any suggestions?

15 Replies