1 Reply Latest reply on Aug 1, 2012 2:03 AM by rama.sai.krishna.vakkantula

    Extending USB2.0 code to SuperSpeed

    mauro.raineri

       Hello. I am working on extending the host software of an old FX2 application to make it work with an FX3 device. I have some questions for which the documentation is not so explicit about, and unfortunately I can't test the code with the device until September.

         
              
         
          1) First of all I was wondering if there is any issue with bulk endpoints, that is, if there are any bulk endpoints designed specifically for working in SuperSpeed mode. If not, then I can just set a couple of IN/OUT bulk endpoints and use them independently of the port (USB 2.0 or 3.0) I connect the device to?    
         
              
         
          2) The Alternate Interfaces. Let's say I have a USBDevice (CCyUSBDevice*) and I set the EndPoint 4 for IN transfers and EndPoint 6 for OUT transfers. Then I do a USBDevice->setAltIntfc(new_interface). Should I set a new pair of EndPoints or the alternative interface will just use the previous ones? And if so, each alternative interface is bound to its EndPoints or I just have to set them up everytime I switch to another interface?   
         
              
         
          3) I saw that SetXferSize() and GetXferSize() methods are obsolete and no longer supported. Does this mean that the only way to play with the transfer size is how described in      msdn.microsoft.com/en-us/library/ff538112.aspx?   
         
              
         
              
         
          Thanks a lot for your time.   
         
              
         
              
         
          Regards,   
         
          m.   
         
              
        • 1. Re: Extending USB2.0 code to SuperSpeed
          rama.sai.krishna.vakkantula

          Please find the answers to your questions below:

             
              1) First of all I was wondering if there is any issue with bulk endpoints, that is, if there are any bulk endpoints designed specifically for working in SuperSpeed mode. If not, then I can just set a couple of IN/OUT bulk endpoints and use them independently of the port (USB 2.0 or 3.0) I connect the device to?    
             
                  
             
              <RSKV>   
             
              Yes. You can configure endpoints to IN/OUT bulk endpoints and use them independently of the port.   
             
              Suppose you have developed your application firmware for FX3 device based on the example projects that we provide then it works independent of the port that you connect it to.   
             
              <RSKV>   
             
                  
             
              2) The Alternate Interfaces. Let's say I have a USBDevice (CCyUSBDevice*) and I set the EndPoint 4 for IN transfers and EndPoint 6 for OUT transfers. Then I do a USBDevice->setAltIntfc(new_interface). Should I set a new pair of EndPoints or the alternative interface will just use the previous ones? And if so, each alternative interface is bound to its EndPoints or I just have to set them up everytime I switch to another interface?   
             
                  
             
              <RSKV>   
             
              When you are using alternate interface then you can use the same endpoint numbers or different endpoints. Basically this information you need to mention in the descriptor tables. Please refer to the example project that comes with the Cypress SuiteUSB installation. (C:\Cypress\Cypress Suite USB 3.4.5\Firmware\CyStreamer)   
                 
              <RSKV>   
             
                  
             
                  
             

          Regards,

             

          sai kirshna.