USB (enumeration) чип USBN9604
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Eliseev 21 сентября 2003 г. 17:59

Мужики, подскажите в чем может быть прикол -неделю не могу разрюхать.
короче происходит процес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