ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
152154 Топик полностью
Ксения (29.03.2009 20:28, просмотров: 235) ответил IgorV на Всем привет! AT90USB1287 - Всё не могу успокоиться...
А вы не мучайтесь, а поставьте USBTrace, и она вам покажет, что думает хост по поводу вашего устройства. http://sysnucleus.com/usbtrace_download.html
> таки хост меня не понимает? > а в списке устройств - USB\VID_0000&PID_0000\5&35F5BB7B&0&2 Скорее всего, вы ему выдаете плохие 18 байт дескриптора. Чем подробно описывать байты, приходящие от хоста, вы бы лучше написали свои 18 байт, которые посылаете в качестве дескриптора. А если же вы свой псевдокод имеете ввиду .equ bLength =$12; ;.equ bDescriptorType =$01; .equ bcdUSB =$0200 ; .equ bDeviceClass =$02 ; .equ bDeviceSubClass =$00 ; .equ bDeviceProtocol =$00 ; .equ bMaxPackedSize0 =$40 ; .equ idVendor =$03EB ; .equ idProduct =$201F ; .equ bcdDevice =$1000 ; .equ iManufacturer =$00 ; .equ iProduct =$00 ; .equ iSerialNumber =$00 ; .equ bNumConfiguration =$01 ; то я его не понимаю, поскольку вы не пишете, каким ассеблером пользуетесь. По моим же представлениям об ассемблерах, точка с запятой является комментарием (в отличие от C), блокирующим всё, что написано справа от нее. Но тогда у вас bDescriptorType закомментирован. Даже эта конференция залила ваш bDescriptorType голубым цветом (подкрашивание здесь не мое, а производится автоматом), будучи солидарной со мной в этом вопросе. Поэтому очень возможно, что вы посылаете не 18 байт, а на один меньше. Из-за чего все поля оказываются не на своих местах. Кроме того, инструкция .equ не порождает кода, а используется для задания метки. Поэтому прошу предъявить все ваши 18 байт, которые вы посылаете в ответ на запрос дескриптора. Причем именно посылаете, а не хотите послать. Желательно в столбик, чтобы не ломать голову над вопросом слева или справа у вас записан первый байт. Если пользоваться USB-трассировщиком (см. ссылку), то можно видеть реально посланные байты.