Can I send multiple transactions to EP0 per one Frame(1mSec)?

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

cross mob
Anonymous
Not applicable

- TEST Condition -
Deive : CY7C63310, Low Speed USB device.
PSoC Designer 5.2 for device Firmware.
CYUSB.SYS for driver.
CYUSB.lib for Windows Application.

   

My question is about EP0 Transaction schedule of CYUSB.SYS.
I just need a 26Kbyte/Sec data rate on Low Speed USB.
So,  I deciede to use a control enpoint.
(because interrupt endpoint has 1KB/Sec rate)

-- My code in VC with CYUSB.lib --

 ept0 = USBDevice->ControlEndPt;
 ept0->Target = TGT_DEVICE;
 ept0->ReqType = REQ_VENDOR;
 ept0->Direction = DIR_TO_DEVICE;
 ept0->ReqCode = 0x01;  // <= there is my service code.
 ept0->Value = 0x0000;
 ept0->Index = 0x00;
 buflen = 256;                      // <= it means 32 transaction (32*8).   8 = maxpacket size of EP0 of CY7C63310
 ZeroMemory(buf,buflen);

  UCHAR  *inContext = ept0->BeginDataXfer(buf,buflen,&inOvLap);
  ept0->WaitForXfer(&inOvLap,2000); 
  ept0->FinishDataXfer(buf,buflen, &inOvLap,inContext);

// ept0->Read(buf,buflen);  // this has same result with BeginDataXfer
-------------------------------------------------
And it works with my specific firmware.

However, above code takes 35mSec to transfer like next.

START
1st Frame has one Setup transaction.(8byte)
2nd Frame has only one  DATA1 transaction.(8byte)   // =  buf[0]
3rd Frame has only one  DATA0 transaction.(8byte)   //  = buf[1]
4th Frame has only one  DATA1 transaction.(8byte)   //  = buf[2]
...

It looks like CYUSB.SYS reuqest only one transaction per Frame.(So data rate is 8KB/Sec)
And I test with other USB driver(not free), I can take about 56KB/Sec(90% bandwidth) with same device and firmware.
So, it is not a USB specific impact.
Can I send multiple transactions to EP0 per one Frame(1mSec) with CYUSB.SYS?
 

0 Likes
3 Replies
Anonymous
Not applicable

 Hi,

   

  Yes, multiple transactions to EP0 per one Frame(1mSec) with CYUSB.SYS is possible. Please take  the trace of USB traffic and post it here so that we can have a look at it.

   

Thanks

   

Prajith

0 Likes
Anonymous
Not applicable

Thanks for quick answer.
I'm appreciateing about Cypress's technical support.
And I'm sorry, it was not a problem caused by CYUSB.sys
I found a correct condition by UHCI-HUB.
Thank you.
 

0 Likes
Anonymous
Not applicable

 You are welcome

0 Likes