1 2 3 Previous Next 34 Replies Latest reply on Jun 27, 2011 12:32 AM by anand.srinivasan.asokan Go to original post
      • 30. Re: win7 cyusb.sys speed performance diff
        christian.bouvier

        Say you trigger a 884736 byte transfer, are you always receiving 884736 bytes in response to the transfer?

           

         

           

         

           

        -> Not always, above a certain a Frame rate, for some frame fewer bytes are received by the host.

        • 31. Re: win7 cyusb.sys speed performance diff
          anand.srinivasan.asokan

          Hi bicool,

             

          This means that your device is sending short packets i.e. a packet less than 512 bytes. When this happens it will end the transfer. This is why you're seeing less than 884736 bytes being reported in transfers.

             

          The fact that you're seeing this screamer/streamer suggests that there is a issue with your hardware interface (slaveFIFO/GPIF) or your firmware (Win7 sends tokens faster than WinXP from what I've seen).

             

          Can you please create a tech support case (MyAccount -> MyCases) with the details that we've deduced so far so that the issue can be analysed deeper.

             

          Regards,

             

          Anand

          • 32. Re: win7 cyusb.sys speed performance diff
            zhang.yong

            dear bicool and Anand,

               

            i think i have solved the problem, it seems that SetXferSize(len) is the main cause. FOR XP if i set len = VGASIZE(640*480*2) it can reach 30fps, but for win7 i find it must be set a smaller size(640*480) .and set time=2 to finish one frame transfer.So try to set a small size and to multi-transfer .this is my code for reference:

               

            LONG len=256000; 

               

            int time = 2;

               

            for(i=0;i<time;i++)inContext[i] = USBDevice->BulkInEndPt->BeginDataXfer(pOut+i*len, len, &inOvLap[i]); 

               

              for(i=0;i<time;i++)
              {
               if(!USBDevice->BulkInEndPt->WaitForXfer(&inOvLap[i],5000)) 

               

               USBDevice->BulkInEndPt->Abort();
              }
              for(i=0;i<time;i++) 
               bRequest=USBDevice->BulkInEndPt->FinishDataXfer(pOut+i*len, len, &inOvLap[i],inContext[i]);

               

              for(i=0;i<time;i++)CloseHandle(inOvLap[i].hEvent);

               

            Best Request

            • 33. Re: win7 cyusb.sys speed performance diff
              zhang.yong

              there is someting wrong with posting code .

                 

              but the key is  setXfersize tosolve the problem

              • 34. Re: win7 cyusb.sys speed performance diff
                anand.srinivasan.asokan

                zyjustice,

                   

                What is the issue you are seeing in posting code?

                   

                Regards,

                   

                Anand

                1 2 3 Previous Next