How to achieve the more throughput from Full speed USB

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

cross mob
Anonymous
Not applicable

Hi,

   

I am writing program on psoc3 microcontroller for USB communication. In this application i want to send maximum data from microcontroller to PC(VC++ program).  I wrote program using one Bulk In endpoint  and achieved speed of 0.25Mbps. I understand about usb that it sends 1 frame/msec. Each frame having 14-19 transactions(or packets). But one bulk in endpoint sends 64 bytes each time. I don't know how to increase no. of transactions per frame using bulk in endpoint and at the same time how to get entire frame with XferData using from CyUSBAPI  in VC++. Can you help how to improve my throughput in full speed usb microcontroller with bulk inendpoints.

   

with regards,

   

y v subba rao

0 Likes
2 Replies
Anonymous
Not applicable

Hi subba,

   

 

   

Try using more than 1 bulkIN endpoints and read them using asynchronous xferdata calls.

   

-shub

0 Likes
Anonymous
Not applicable

subba,

   

Speed can be increased by using the asynchronous calls begindataxfer / waitforxfer / finishdataxfer and implementing buffering on the device side. Increasing the number of endpoints may not help since the interface used is going to remain the same so the IN packets will go one after the other. If the device is not capable of filling data at that speed it is not going to be able to do it with 2 endpoints as well since you've to service both.

   

Regards,

   

Anand

0 Likes