Hello Perla
I took a look at the HID boot loader today and saw that there are a number of copies of the source code in the project (depending on the board type used). Some of the boards are reporting their device descriptor correctly and some are sending an invalid USB version, depending on which files they use for the Device_Descriptor[]:
const uint_8 Device_Descriptor[18]=
{
0x12, //blength
0x01, //bDescriptor
0x01,0x01, //bcdUSB ver R=1.10
0x00, //bDeviceClass
0x00, //bDeviceSubClass
0x00, //bDeviceProtocol
0x40, //bMaxPacketSize0
0xA2,0x15, //idVendor - 0x15A2(freescale Vendor ID)
0x03,0xFF, //idProduct
0x00,0x01, //bcdDevice - Version 1.00
0x01, //iManufacturer - Index to string Manufacturer descriptor
0x02, //iProduct - Index to string product descriptor
0x03, //iSerialNumber - Index to string serial number
0x01 //bNumConfigurations - # of config. at current speed,
};
This is incorrect and they report themselves as a USB 1.0.1 device rather than a USB 1.1 device, This doesn't stop them working (at least not on the PC OS that I checked with) but it looks rather strange.
Some of the sources have the value as
| 0x10,0x01, | //bcdUSB ver R=2.00 |
which is correct for USB1.1 (the comment for USB 2 is however incorrect since it would be 0x00, 0x02).
A second minor point is that the HID boot loader says that it is self powered (which can be true but not always) and then requests 100mA maximum power. I believe that the specification requires the max power to be set to 0 when self powered so it is sending possibly incorrect details. I think that it would be best to not report that it is self powered so that the 100mA report is indeed valid and this should cover the non-self-powered case correctly.
Maybe someone would like to clean it up a bit.
Regards
Mark