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

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

cross mob
Anonymous
Not applicable

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 

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

   

Fx3 supports bytes less than 512 for high speed. The error is specific to the host side. So the work around you found seems to be the only option as this is out of FX3's scope. Any device, other than FX3 would also face the same issue with those descriptors.

   

Regards,

   

- Madhu Sudhan

View solution in original post

0 Likes
2 Replies
Anonymous
Not applicable

Hi,

   

Fx3 supports bytes less than 512 for high speed. The error is specific to the host side. So the work around you found seems to be the only option as this is out of FX3's scope. Any device, other than FX3 would also face the same issue with those descriptors.

   

Regards,

   

- Madhu Sudhan

0 Likes
Anonymous
Not applicable

Host is the motherboard Asus H170-PRO with installed Windows 8.1
I think this is not the worst set 🙂

0 Likes