Здравствуйте.
Собрал схему ATMega16+PDIUSBD12D (просьба не иронизировать, просто микросхемы уже все были).
На контроллере пока только пара светодиодов, в конечном варианте будет LCD, 2-й контроллер на USART и пр.
С обычными дескрипторами (если надо, выложу), самописным драйвером и софтиной шарманка работает.
Но хочу сделать HID, чтобы не париться с драйверами под кучу разный виндов

. Скорость и объёмы данных там такие, что и возможностей HID там выше крыши. Раньше оно вообще работало на USB OBDEV, но контроллер регулярно терял байты из USART и пр.
Выдрал дескрипторы из того ObDev, подправил размер конечных точек - см. вложение.
Устройство опознаётся как HID, пишет его имя, светодиодик GoodLink (на PDIUSBD) несколько раз мигает, но потом в диспетчере устройств появляется воскл. знак - "Запуск этого устройства невозможен. (Код 10)".
Диагностическая прога USBLyzer (скрин) пишет, что размер конечной точки д. б. 8 байт для low speed устройств.
Но PDIUSBD12D FullSpeed, резюк у неё на D+, а размер конечной точки 16 байт.
Я пытался туда написать 8 - девайс вообще не опознаётся, даже дескриптор устройства не считывается.
Смотрел также сниффером USBSnoop (лог прилагаю) - видна ошибка:
DescriptorType = 00000022 (<illegal descriptor type!>)
Но не могу понять, откуда лезет этот дескриптор типом 22h

.
Помогите пожалуйста понять, в чём я ошибся.
Спасибо.
Сообщение отредактировал hd44780 - May 25 2012, 16:39
Эскизы прикрепленных изображений
 Уменьшено до 54%
373 x 429 (13.3 килобайт)
|
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда