5 Replies Latest reply on Apr 22, 2014 1:05 PM by vavc

    Data rate of High-Speed High-Bandwidth Interrupt Endpoint

    eric.hunt
              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?   
        • 1. Re: Data rate of High-Speed High-Bandwidth Interrupt Endpoint
          vavc

          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

          • 2. Re: Data rate of High-Speed High-Bandwidth Interrupt Endpoint
            eric.hunt
                    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; } } }   
            • 3. Re: Data rate of High-Speed High-Bandwidth Interrupt Endpoint
              eric.hunt
                      omg, why my post is in a mess?   
              • 4. Re: Data rate of High-Speed High-Bandwidth Interrupt Endpoint
                vavc

                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

                • 5. Re: Data rate of High-Speed High-Bandwidth Interrupt Endpoint
                  waqasehsanbutt_1928081

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