Data rate of High-Speed High-Bandwidth Interrupt Endpoint

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

cross mob
Anonymous
Not applicable
        I'm running a testing firmware in CY7C68013A, witch rendering data to my PC host continuously through an Interrupt Endpoint(USB 2.0 High-Speed, High-Bandwidth, 3 packet per microframe). The program runs ok, but the data rate is only 8MB/S, not 24M/S. Is there any problem with my settings?   
0 Likes
1 Solution
Anonymous
Not applicable

Hi

   

 

   

Could you please share the firmware? Please take a trace and check whether you could able to see the three Interrupt IN request per microframe or not.

   

 

   

Regards,

   

Vikas

View solution in original post

0 Likes
5 Replies
Anonymous
Not applicable

Hi

   

 

   

Could you please share the firmware? Please take a trace and check whether you could able to see the three Interrupt IN request per microframe or not.

   

 

   

Regards,

   

Vikas

0 Likes
Anonymous
Not applicable
        Hi Vikas Thanks for reply! I don't have a hardware usb-analyzer, so I'm not able to check whether there are three IN requests in one microframe or not, the only way I can debug is BusHound, and it shows the data rate is 8.1MB/S. But I think my program is simple enough because it's migrated from CyStreamer, and I've just done some little modifications. P.S: 1.The PC driver is base on CyUsb.sys and CyUsb.Lib 2.When I use the BULK IN endpoint, it seems the data rate is ok, about 40M/S 3.Sorry for my poor English 🙂 Below is the FIFO initialization codes: void FIFO_Init( void ) { // CPU Freq = 48MHz,CLKOUT Enable CPUCS = 0x12; // Enhanced Packet Handling GC_SyncDelay(); REVCTL = 0x03; GC_SyncDelay(); // No external FIFO master, the CPU generates all the data IFCONFIG = 0x40; // Reset FIFOs GC_SyncDelay(); FIFORESET = 0x80; GC_SyncDelay(); FIFORESET = 0x02; GC_SyncDelay(); FIFORESET = 0x04; GC_SyncDelay(); FIFORESET = 0x06; GC_SyncDelay(); FIFORESET = 0x08; GC_SyncDelay(); FIFORESET = 0x00; GC_SyncDelay(); // Setup FIFO EP2CFG = 0xF8; // EP2, IN INT, 1024Bytes, Quad GC_SyncDelay(); EP4CFG = 0x00; // Disable EP4 GC_SyncDelay(); EP6CFG = 0x00; // Disable EP6 GC_SyncDelay(); EP8CFG = 0x00; // Disable EP8 GC_SyncDelay(); EP2FIFOCFG = 0x00; // EP2, 8bit, Manual IN GC_SyncDelay(); EP4FIFOCFG = 0x00; GC_SyncDelay(); EP6FIFOCFG = 0x00; GC_SyncDelay(); EP8FIFOCFG = 0x00; GC_SyncDelay(); FIFOPINPOLAR = 0x14; GC_SyncDelay(); } And below is the main function: void main( void ) { EA = 0; FIFO_Init(); Usb_Init(); EA = 1; while (TRUE) { Usb_Proc(); // Render data to host while(!(EP2468STAT & bmEP2FULL)) { EP2BCH = 0x04; SYNCDELAY; EP2BCL = 0x00; SYNCDELAY; } } }   
0 Likes
Anonymous
Not applicable
        omg, why my post is in a mess?   
0 Likes
Anonymous
Not applicable

Hi

   

 

   

Please share the entire firmware and host application. If you have problems in sharing here please send a mail to vavc@cypress.com

   

 

   

Regards,

   

Vikas

0 Likes
Anonymous
Not applicable

Did you find any solution for this problem. I am facing the same problem?? any help or suggestion is highly appreciated

0 Likes