AnsweredAssumed Answered

Slow usb bulk transfert using BF525

Question asked by Julien on Mar 4, 2011
Latest reply on Mar 15, 2011 by Julien

Hi Analog,


I have a little problem of speed while using USB device bulk tx transfert with BF525 : it seems that the blackfin controler is able to send only 2 or sometimes three packets (512 bytes) per micro-frame (125 µs), limiting the bandwidth to about 8000 kbytes / seconds.


For my application, I need to reach at least 15 Mbytes/seconds (video transfert).


You can find attached to this post a capture of my usb protocol analyser demonstrating that the Blackfin "nacks" too many transactions each micro-frame, as if the USB DMA was not able to fill  data as fast as needed.


I use DMA mode 1 for large packets, and DMA mode 0 for small packets (less than 512 bytes), and observe the same slowness in either case.


My configuration is as folllow (DMA mode 1) :


USB_TXCSR = bit 15 (AUTOSET_T), bit 12 (DMA_REQ_ENABLE), bit 10 (DMA mode 1)


USB_TXCOUNT = large packet size in bytes.


USB_DMAx_CONTROL(ep) = (ep << 4) | DMA_ENA | INT_ENA | bit 1 (direction = TX) | bit 2 (DMA mode 1)




So my questions are the followings:

- Have you ever seen this kind of problem before ?

- Have you any suggestions that could help me to improve the overall data rate ?

- Do you think it could be related to a SDRAM bottleneck ? In which case, what do you think I could do ? (the system clock is already running at 115,2 MHz, which seems very sufficient to me, and I already tried to disable other processing in the application while transmitting over usb -- without results) ?


I would be very gratefull for any suggestions,


Thanks by advance,


Best regards,