|
Мужики, подскажите в чем может быть прикол -неделю не могу разрюхать.
короче происходит процесc enumeration:
host мне шлет Get_Descriptor(DEVICE) 18 байт
я ему дескриптор отсылаю.
потом он мне шлет Set_Address
я значит этот АДДРЕСС устанавливаю и шлю хосту нулевой пакетик - типа все ок.
потом хост мне шлет Get_Descriptor(DEVICE) 64 байт
я ему опять 18-байтный дескриптор отсылаю (по всем правилам с тоглами и дополнением нулевыми байтами) но блин, после того как отсылаю последний 8-ми байтный пакет дескриптора (т.е. байты 17-й, 18-й и шесть нулей) - происходит TX_EVENT, а ACK мне хост не присылает (гад) и вообще он потом затыкается и молчит как последний партизан. Правда через секунду опять enumeration начинается - но там все так же.
вот мой дескриптор на всякий случай:
usb_device_desc =
{
0x12, /* size of descriptor 18 bytes*/
DEVICE_DESCRIPTOR, /* =0x01 */
0x0110, /* SPEC_VERSION, также пробовал 0x0100 и 0x0101*/
0, /* CLASS_NOT_DEFINED также пробовал HID_CLASS*/
0, /* Device Sub-Class */
0, /* Device Protocol */
8, /* Max Packet Size for EndPoint Zero*/
0x1234,
0x5678,
0x0001, /* device release number: 0.01 */
0, /* iManufacturer */
0, /* iProduct */
0, /* Device's serial number */
1 /* Num of configurations */
};
Буду признателен за любые отзывы по делу :-)
E-mail: info@telesys.ru