2 Replies Latest reply on May 25, 2017 4:56 AM by yura.k

    Max packet size in the endpoint descriptor in USB 2.1 mode error.

    yura.k

      Hello!
      I'm trying to program a CYUSB3KET-003 Demo module to work with the Windows driver written for FX2LP. The driver for Windows wrote itself. it works. I wanted a compatibility mode.
      I need the wMaxPacketSize parameter in the CY_U3P_USB_ENDPNT_DESCR descriptor of the CyFxUSBHSConfigDscr structure to be less than 512 bytes (for example, 64) for BULK  EP.
      However, when connecting, Windows generates an invalid handle error (xHCI  & Windows 8.1).
      CONFIGURATION_DESCRIPTOR_VALIDATION_FAILURE!
      The error applies to all descriptors and even the VID & PID does not match the ones specified in CyFxUSB20DeviceDscr.
      The working code from the example, with a value of 512 - everything works. With any other value - does not work.

         

      How to solve this problem?
      Does the chip support values other than those specified by default?

         

      PS
      If in the descriptor to change the Endpoint Type  from BULK  to Interrupt it works with any length Max packet size.

      PPS 
       

         

      So far I've found one way. But not the best it seems to me:

         

      It is necessary in the CyFxUSB20 descriptorDeviceDisc to change the version
           // 0x10,0x02, / * USB 2.10 * /
      on
           0x00,0x02, / * USB 2.00 * /

         

      Then you can set any length of Max packet size in USB 2.0 mode.

         

      SDK\1.3\firmware\basic_examples\cyfxbulksrcsink\cyfxbulkdscr.c